数据库同步自动断开问题的处理
2014-12-29 15:42
405 查看
堡垒机的实施过程中,因为做了双机,所以要对两台堡垒机进行数据库的主从同步和HA配置。
在部署完mysql主从同步以后,发现同步会有中断的现象。
中断表现为
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
经过排查,发现了引起这一问题的原因。由于在在实施阶段,每次对堡垒机进行测试,都要分别对两台机器进行访问操作,执行相应的堡垒机功能。在配置mysql主从同步的时候,将wssg_system_params这张表里面的linux-hos 改为了10.2.29.216(HA的VIP)。由于两个库里面全是216这个地址,且HA活动在209机器上面,在直接访问210的时候,这个表里面的地址是失效的,但是访问记录还是会产生,导致wssg_dcmdhis这张表里面的主键自增长,不能正常同步。
解决办法1(有效,但是不能再对wssg_system_params和wssg_serverregister这两张表进行修改,不然数据会同步以后出错)
# A B
服务器停止同步
STOP SLAVE;
# A B
服务器清空Master日志
RESET MASTER;
# A B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
FLUSH TABLES WITH READ LOCK;
将209的数据导入到210.
# 查看A 服务器主机状态(记录二进制开始文件,位置,下面需要用到)
SHOW MASTER STATUS;
# 修改B 服务器配置
CHANGE MASTER TO
MASTER_HOST='10.2.29.209',MASTER_USER=’backup’,
MASTER_PASSWORD='itc123',MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;
# 开启B 服务器同步进程
START SLAVE;
# 查看B 服务器同步状态是否正常
SHOW SLAVE STATUS;
#查看B 服务器主机(记录二进制开始文件,位置)
SHOW MASTER STATUS;
# 修改A 服务器配置
CHANGE MASTER TO MASTER_HOST=’10.2.29.210′,MASTER_USER=’backup’,MASTER_PASSWORD=’itc1
23′,MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;
# 开启A 服务器同步进程
START SLAVE;
# 分别查看A B
服务器同步状态,确定是否成功
SHOW SLAVE STATUS;SHOW MASTER STATUS;
# 解锁A B 服务器
UNLOCK TABLES;
通过这个办法能是同步从当前时刻开始,两台机器里面的表数据,有改动的,就会有被同步。所以这个办法要求不能修改以上相关的那两张表
解决办法2(采取忽略掉关键表的方式进行同步。理论上最合适的方案,但我做的时候会将我忽略的表删除掉,很诡异,等我熟悉了mysql同步表忽略机制以后,在进行补充)
在部署完mysql主从同步以后,发现同步会有中断的现象。
中断表现为
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
经过排查,发现了引起这一问题的原因。由于在在实施阶段,每次对堡垒机进行测试,都要分别对两台机器进行访问操作,执行相应的堡垒机功能。在配置mysql主从同步的时候,将wssg_system_params这张表里面的linux-hos 改为了10.2.29.216(HA的VIP)。由于两个库里面全是216这个地址,且HA活动在209机器上面,在直接访问210的时候,这个表里面的地址是失效的,但是访问记录还是会产生,导致wssg_dcmdhis这张表里面的主键自增长,不能正常同步。
解决办法1(有效,但是不能再对wssg_system_params和wssg_serverregister这两张表进行修改,不然数据会同步以后出错)
# A B
服务器停止同步
STOP SLAVE;
# A B
服务器清空Master日志
RESET MASTER;
# A B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
FLUSH TABLES WITH READ LOCK;
将209的数据导入到210.
# 查看A 服务器主机状态(记录二进制开始文件,位置,下面需要用到)
SHOW MASTER STATUS;
# 修改B 服务器配置
CHANGE MASTER TO
MASTER_HOST='10.2.29.209',MASTER_USER=’backup’,
MASTER_PASSWORD='itc123',MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;
# 开启B 服务器同步进程
START SLAVE;
# 查看B 服务器同步状态是否正常
SHOW SLAVE STATUS;
#查看B 服务器主机(记录二进制开始文件,位置)
SHOW MASTER STATUS;
# 修改A 服务器配置
CHANGE MASTER TO MASTER_HOST=’10.2.29.210′,MASTER_USER=’backup’,MASTER_PASSWORD=’itc1
23′,MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;
# 开启A 服务器同步进程
START SLAVE;
# 分别查看A B
服务器同步状态,确定是否成功
SHOW SLAVE STATUS;SHOW MASTER STATUS;
# 解锁A B 服务器
UNLOCK TABLES;
通过这个办法能是同步从当前时刻开始,两台机器里面的表数据,有改动的,就会有被同步。所以这个办法要求不能修改以上相关的那两张表
解决办法2(采取忽略掉关键表的方式进行同步。理论上最合适的方案,但我做的时候会将我忽略的表删除掉,很诡异,等我熟悉了mysql同步表忽略机制以后,在进行补充)
相关文章推荐
- 数据库同步自动断开问题的处理
- 同步复制数据库,当网络问题,服务器间断开连接,复制中断后,自动继续复制的设置
- 处理数据库镜像问题的一个案例——数据库主体与镜像断开连接
- mysql超时设置的问题,如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat
- mysql自动断开连接的问题(从数据库端处理方案)
- 批处理-自动同步数据库
- 数据库会自动清除掉超时的空闲连接造成中间件连接池中连接断开的问题
- mysql自动断开连接的问题处理
- 关于oracle设置不活动自动断开连接导致java访问数据库时发生异常的问题
- 数据库连接超时(数据池自动断开问题解决)
- 关于因和数据库库断开数据源没有自动重连变无效的问题
- 解决数据库长时间不访问自动断开连接问题
- 数据库会自动清除掉超时的空闲连接造成中间件连接池中连接断开的问题
- web程序通过dbcp连接池处理自动重新连接数据库问题(通过连接池dbcp处理方案)
- hibernate 使用连接池连接数据库时 自动断开处理
- [VB.NET][求助]有关ACCESS表中 主键/关键字 为 自动编号 时与实际数据库同步的问题????
- 使用POI处理Excel中公式不能自动计算出来的问题
- 解决PEAR::DB类处理多数据库问题
- 系统自动登录及盘符无法双击打开问题处理 推荐
- 利用oracle快照dblink解决数据库表同步问题