java项目变迁技术文

系统变迁之四--mysql主从同步

2016-09-19  本文已影响101人  AlanKim
主从同步

第一篇文章说过,初始版本的系统一直单库运行,所有的读、写,以及数据存储都放在了同一台dbserver中。出现问题,哭都没地方...于是...增加多个dbserver,单主库多从库,避免出现单库数据文件问题导致的数据损失...

修改数据文件的存储位置

mysql默认的数据库文件是放在安装目录下的(/var/lib/mysql),先把这个路径设定到阿里云数据盘,防止系统更新或者其他问题时造成数据文件损坏。

主库设置成功后,其他的从库也全都按照同样的步骤来操作。

导出及导入数据
在主从库中创建用于同步的数据库用户
配置同步选项
出现数据不同步时的处理方案

当出现数据不同步时,一般执行 show slave status;会有以下结果:

Paste_Image.png
 Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
 Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

一般是出现同步错误或者master_log的info出现了变化,相应的解决方案如下:

  • 同步错误解决方案:
    slave stop;
    set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; //值为1表示跳过一个错误,可以设置为N。不过跳过去的数据就跟主库不同步了,要手动处理
    slave start;
    show slave status; // 查看同步状态是否恢复正常了
  • 主库日志信息变更导致的错误解决方案
       查看主库
    show master status; //记录下File,Position字段,假设为‘mysql-bin.000004’,98;
    在从库中执行以下命令:
    stop slave;
    change master to master_log_file='mysql-bin.000004',master_log_pos=98;
    start slave;
    show slave status; //查看同步状态
上一篇 下一篇

猜你喜欢

热点阅读