档案软件高可用实现:从零到上手的全流程实操解决方案

前置环境准备

需要两台同配置CentOS 7.9服务器,内存≥4G、硬盘≥50G,内网互通,IP分别为192.168.1.10、192.168.1.11;同步配置yum源后执行:

``` yum clean all && yum makecache ```

安装所需依赖包:

``` yum install -y keepalived nginx mysql-server ```

数据层高可用:MySQL主从半同步配置

步骤1:主库(192.168.1.10)配置

编辑MySQL配置文件/etc/my.cnf,完整内容:

``` [mysqld] server-id=10 log-bin=mysql-bin binlog-format=ROW sync_binlog=1 innodb_flush_log_at_trx_commit=1 ```

启动MySQL并设置开机自启:

``` systemctl start mysqld && systemctl enable mysqld ```

进入MySQL创建复制专用账号:

``` mysql -u root -p -e "CREATE USER 'repl'@'192.168.1.11' IDENTIFIED BY 'Repl@123456'; GRANT REPLICATION SLAVE ON . TO 'repl'@'192.168.1.11'; FLUSH PRIVILEGES;" ```

查看主库状态,必须记录返回的File(如mysql-bin.000001)和Position(如156)数值,后续从库配置必须使用该值:

``` mysql -u root -p -e "SHOW MASTER STATUS;" ```

步骤2:从库(192.168.1.11)配置

编辑MySQL配置文件/etc/my.cnf,完整内容:

``` [mysqld] server-id=11 log-bin=mysql-bin relay-log=relay-bin binlog-format=ROW read_only=1 ```

启动MySQL并设置开机自启,执行主从同步命令(替换为刚才记录的主库File和Position):

``` systemctl start mysqld && systemctl enable mysqld mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='repl', MASTER_PASSWORD='Repl@123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=156;" ```

启动从库同步线程:

``` mysql -u root -p -e "START SLAVE;" ```

验证同步状态,正常输出为Slave_IO_Running: Yes,Slave_SQL_Running: Yes,若为No则重试启动命令:

``` mysql -u root -p -e "SHOW SLAVE STATUS\G" | grep -E "Slave_IO_Running|Slave_SQL_Running" ```

应用层高可用:Nginx反向代理+Keepalived双机热备

步骤1:Nginx反向代理配置(两台服务器均执行)

档案软件高可用实现:从零到上手的全流程实操解决方案

编辑/etc/nginx/nginx.conf,在http块内添加集群配置(将192.168.1.10:8080和192.168.1.11:8080替换为你的档案软件实际端口),完整内容:

``` http { upstream doc_server { server 192.168.1.10:8080 weight=1 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 _; location / { proxy_pass http://doc_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ```

启动Nginx并设置开机自启:

``` systemctl start nginx && systemctl enable nginx ```

步骤2:Keepalived双机热备配置

主库(192.168.1.10)编辑/etc/keepalived/keepalived.conf,完整内容:

``` ! Configuration File for keepalived global_defs { router_id doc_keepalived } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } } ```

从库(192.168.1.11)编辑/etc/keepalived/keepalived.conf,仅修改state为BACKUP、priority为90,其余内容一致:

``` ! Configuration File for keepalived global_defs { router_id doc_keepalived } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } } ```

两台服务器均启动Keepalived并设置开机自启:

``` systemctl start keepalived && systemctl enable keepalived ```

高可用场景验证

1. 虚拟IP验证:主库执行ip a,应显示192.168.1.100的虚拟网卡;

2. 故障切换验证:主库执行systemctl stop mysqld,等待30秒后,从库执行ip a,应获取192.168.1.100虚拟IP;

3. 故障恢复:主库启动MySQL后,虚拟IP自动切回,从库执行mysql -u root -p -e "START SLAVE;"恢复同步。

可选增强配置:应用进程守护

安装Supervisor管理档案软件进程,确保崩溃后自动重启:

``` yum install -y supervisor && systemctl start supervisord && systemctl enable supervisord ```

创建守护配置文件/etc/supervisord.d/doc.ini,替换/opt/doc-server.jar为你的档案软件启动包路径:

``` [program:doc_server] command=java -jar /opt/doc-server.jar user=root autostart=true autorestart=true stderr_logfile=/var/log/doc_err.log stdout_logfile=/var/log/doc_out.log ```

更新Supervisor配置并启动进程:

``` supervisorctl update && supervisorctl start doc_server ```
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统