档案软件主从部署全流程实操指南 高可用配置零基础可直接落地

前置准备

软硬件环境要求

本次部署使用2台服务器,主节点IP示例:192.168.1.10,从节点IP示例:192.168.1.11,两者配置统一要求:2核4G及以上,CentOS7.9操作系统,开放端口3306(MySQL)、8080(档案服务)、873(rsync同步)、22(SSH)。所有操作默认使用root账户执行,非root账户需在命令前加sudo前缀

依赖组件预安装(主从节点均执行)

先执行系统源更新:

``` yum update -y ```

安装JDK1.8:

``` yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y ```

安装MySQL8.0:

``` wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-server -y systemctl start mysqld && systemctl enable mysqld ```

获取MySQL初始密码并修改root密码:

``` grep 'temporary password' /var/log/mysqld.log 用查询到的初始密码登录MySQL,执行以下命令修改密码,示例密码可自行替换 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456'; FLUSH PRIVILEGES; ```

安装rsync同步工具:

``` yum install rsync -y ```

主节点配置步骤

1. 档案主服务部署

下载通用开源档案软件包并解压:

``` wget https://github.com/opensource-archive/archive-system/releases/download/v1.0/archive-system.tar.gz tar -zxvf archive-system.tar.gz -C /opt/ ```

修改服务配置文件/opt/archive-system/application.yml,完整可复制配置如下:

``` server: port: 8080 spring: datasource: url: jdbc:mysql://192.168.1.10:3306/archive_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: root password: Root@123456 driver-class-name: com.mysql.cj.jdbc.Driver servlet: multipart: max-file-size: 100MB attach: path: /opt/archive-system/attach ```

创建档案数据库:登录MySQL执行`CREATE DATABASE archive_db DEFAULT CHARACTER SET utf8mb4;`,然后启动服务:

``` cd /opt/archive-system nohup java -jar archive-system.jar > log.out 2>&1 & ```

验证启动:执行`curl http://127.0.0.1:8080/health`返回200,或`netstat -tunlp|grep 8080`看到端口监听即为成功。

2. MySQL主库同步配置

修改MySQL配置文件/etc/my.cnf,在[mysqld]块下添加以下内容:

``` server-id=1 log-bin=mysql-bin binlog-format=ROW expire_logs_days=7 max_binlog_size=1G binlog-do-db=archive_db ```

重启MySQL:`systemctl restart mysqld`,登录MySQL创建从库同步账号:

``` CREATE USER 'slave'@'%' IDENTIFIED BY 'Slave@123456'; GRANT REPLICATION SLAVE ON . TO 'slave'@'%'; FLUSH PRIVILEGES; ```

锁表导出全量数据:

``` FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ```

档案软件主从部署全流程实操指南 高可用配置零基础可直接落地

务必记录返回结果中的File和Position字段值,示例为mysql-bin.000001、1560,后续从库配置必须完全一致。导出数据库后解锁表:

``` mysqldump -u root -p archive_db > /opt/archive_db.sql UNLOCK TABLES; ```

3. 附件同步rsync服务配置

创建rsync配置文件/etc/rsyncd.conf,完整内容如下:

``` uid = root gid = root use chroot = no max connections = 10 timeout = 300 [archive_attach] path = /opt/archive-system/attach comment = archive system attachment read only = no hosts allow = 192.168.1.11/32 auth users = rsync_user secrets file = /etc/rsyncd.secrets ```

创建密码文件并启动服务:

``` echo "rsync_user:Rsync@123456" > /etc/rsyncd.secrets chmod 600 /etc/rsyncd.secrets systemctl start rsyncd && systemctl enable rsyncd ```

从节点配置步骤

1. 主从同步配置

同步主节点导出的数据库文件到从节点:`scp root@192.168.1.10:/opt/archive_db.sql /opt/`,登录从节点MySQL创建数据库并导入:

``` CREATE DATABASE archive_db DEFAULT CHARACTER SET utf8mb4; mysql -u root -p archive_db < /opt/archive_db.sql ```

修改从节点MySQL配置文件/etc/my.cnf,[mysqld]块下添加:

``` server-id=2 relay-log=relay-bin read_only=1 replicate-do-db=archive_db ```

主从节点server-id必须唯一,不可重复。重启MySQL后登录执行同步命令,替换为之前记录的主节点File和Position值:

``` CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='slave',MASTER_PASSWORD='Slave@123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1560; START SLAVE; ```

验证同步:执行`SHOW SLAVE STATUS\G;`,返回结果中Slave_IO_Running和Slave_SQL_Running均为Yes即为配置成功。

2. 从节点服务与附件同步配置

和主节点一致,下载解压档案软件包,修改application.yml中的数据库地址为192.168.1.11,其余配置不变,启动服务并验证启动成功。

配置附件定时同步:创建rsync密码文件,添加定时任务每分钟同步一次主节点附件:

``` echo "Rsync@123456" > /etc/rsyncd.secrets chmod 600 /etc/rsyncd.secrets crontab -e 添加以下定时任务 /1 rsync -avz --delete rsync_user@192.168.1.10::archive_attach /opt/archive-system/attach --password-file=/etc/rsyncd.secrets > /dev/null 2>&1 ```

流量负载与故障切换配置

1. Nginx负载配置

在入口服务器安装Nginx,修改nginx.conf配置文件的http块,添加上游服务和代理规则:

``` upstream archive_server { server 192.168.1.10:8080 weight=10 max_fails=2 fail_timeout=30s; server 192.168.1.11:8080 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name your-domain.com; location / { proxy_pass http://archive_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ```

执行`nginx -s reload`重载配置,访问域名即可正常访问档案服务。

2. 故障切换验证

手动停止主节点档案服务:`ps -ef|grep archive-system|grep -v grep|awk '{print $2}'|xargs kill`,刷新页面确认服务可正常访问,请求已自动切换到从节点;重启主节点服务后,流量会自动切回主节点。

常见问题排查

  • 主从同步失败:检查主从server-id是否重复,从节点的MASTER_LOG_FILE、Position值是否和主节点一致,主节点3306端口是否开放
  • 附件同步失败:检查rsync密码文件权限是否为600,主节点873端口是否开放,从节点IP是否在主节点rsync的allow列表中
  • 服务启动失败:查看/opt/archive-system/log.out日志,确认JDK版本为1.8,数据库连接配置、附件目录权限是否正确

所有示例密码请自行替换为强密码,避免安全风险。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统