ubuntu14.04 Mysql5.6主从,使用percona保证数据一致
2017-07-13 15:50
323 查看
主数据库配置
[mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M
从数据库配置
[mysqld] server-id = 2 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M replicate-do-db=jitui_ad replicate-do-db=percona slave-skip-errors = 1062
启动SLAVE
# 查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复 SHOW MASTER STATUS; # 从数据库添加主从 CHANGE MASTER TO MASTER_HOST='192.168.3.91', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=8043; # 启动主从 START SLAVE; # 停止主从 STOP STLAVE; # 查看主从状态 SHOW SLAVE STATUS\G; # 查看slave的状态,如果下面两项值为YES,则表示配置正确: Slave_IO_Running: Yes Slave_SQL_Running: Yes
主从数据库创建用户
INSERT INTO mysql.user(Host,User,Password) VALUES("localhost","repl",password("slavepass")); GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'repl'@localhost IDENTIFIED BY 'slavepass'; GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass'; FLUSH PRIVILEGES;
主从数据库,添加数据库给保存检查数据
CREATE DATABASE percona CHARACTER SET utf8; GRANT ALL ON percona.* TO 'repl'@localhost IDENTIFIED BY 'slavepass'; GRANT ALL ON percona.* TO 'repl'@'%' IDENTIFIED BY 'slavepass'; FLUSH PRIVILEGES;
repl添加主从数据库添加数据库权限
GRANT ALL PRIVILEGES ON jitui_ad.* TO repl@localhost IDENTIFIED BY 'slavepass'; GRANT ALL PRIVILEGES ON jitui_ad.* TO repl@'%' IDENTIFIED BY 'slavepass'; FLUSH PRIVILEGES;
pt-table-checksum检查表是否一致
pt-table-checksum --nocheck-replication-filters --databases=jitui_ad --replicate=percona.checksums --create-replicate-table --host=127.0.0.1 --port 3306 -urepl -pslavepass
重启从库做主从
# 跳过一个错误 pt-slave-restart --user=repl --password=slavepass --host=127.0.0.1 --skip-count=1 # 跳过某些类型错误 pt-slave-restart --user=repl --password=slavepass --host=127.0.0.1 --error-numbers=1062
pt-table-sync保存数据一致
# 将主的jitui_ad数据库同步到 192.168.3.92,使从上具有一样的 数据,使用--print将结果输出 pt-table-sync --print --sync-to-master --user=repl --password=slavepass h=192.168.3.92 --database jitui_ad # 根据 pt-table-checksum 使从的数据和主的数据一致 pt-table-sync --execute --replicate percona.checksums --user=repl --password=slavepass --sync-to-master h=192.168.3.92
删除从库
mysql> STOP SLAVE; mysql> STOP SLAVE IO_THREAD; mysql> STOP SLAVE SQL_THREAD; mysql> RESET SLAVE ALL;
cd /var/lib/mysql service mysql stop rm -f master.info relay-*` service mysql start
参考
percona-toolkit 使用教程配置MySQL Replication
Mysql 复制过滤详解
高性能Mysql主从架构的复制原理及配置详解
生产环境使用 pt-table-checksum 检查MySQL数据一致性
percona-tookit官方安装
相关文章推荐
- 使用pt-table-checksum与pt-table-sync修复mysql主从数据不一致
- ubuntu14.04中caffe下使用自己的数据集训练FCN
- 大数据基础(七) Ubuntu 14.04安装MySQL 5.7.14
- 使用percona组织的xtrabackup实现mysql的数据备份
- ubuntu14.04下安装mysql,hive使用
- 如何使用Percona Data Recovery Tool恢复mysql 被delete的数据
- Ubuntu使用mysql添加数据异常解决办法
- MySQL 在Ubuntu14.04上的安装和基本使用(带步骤截图)
- 修复MySQL数据表永远都在“使用中”
- mysql中DATETIME、DATE 和 TIMESTAMP 类型数据使用
- [转]使用Excel分析MySQL数据[http://database.ctocio.com.cn/tips/145/7138145_3.shtml]
- MYSQL使用存储过程插入中文数据的疑似bug(UTF8)
- MySQL数据备份利器mysqldump的使用
- 在ubuntu7.10中安装和使用MySQL
- ubuntu linux主机中使用Virtualbox安装虚拟机,让宿主机和虚拟机之间实现数据共享
- 如何使用加密工具保证企业数据安全
- MySQL日期数据类型、MySQL时间类型使用总结
- 使用MYSQL备份数据恢复
- rails与mysql之间中文数据显示不一致的问题
- mysql 插入多条数据如何使用INSERT插入多条记录