mysql主从复制要点02

…衆ロ難τιáo~ 提交于 2019-12-04 21:48:22

问题汇总
show master status没有结果, binglog没有开关或生效
log_bin
serverid
步骤
1.准备多实例环境
2.配置my.cnf
3登录主库增加用于从库连接主库的同步账号rep并且授权replication slave同步的权限
4登录主库。整库锁表flush table with read lock (窗口关闭失效,超时参数达到也失效),然后show master status 查看binlog的位置状态
5新开窗口linux命令行导出sql拷贝到从库所在的及其
6解锁及其
7把主库导出的sql恢复到从库中
8根据主库的show master status查看binlog的位置状态在从库执行change master to
9从库开启开关start slave
10 show slave status查看同步状态
要点
异步方式同步
逻辑同步模式,多种模式,默认是通过sql语句执行
主库通过记录binlog实现对从库的同步,binlog记录数据库的跟新语句
主库一个线程,从库由1个io线程和一个sql线程来完成
从库关键文件master。info,relay-log,relay info功能
若想完成级联 需要打开logbin和log-slave-updates;
生产环境快速配置mysql主从复制的方案
安装好配置从库的数据库,配置好log-bin和server-id参数
无需登录配置主库my.cnf,主库的log-bin和server-id默认配置好的
登录主库用于从库连接主库同步的账号
使用mysqldump 带--master-data=1无需binlog文件及对应的位置点
从库开启同步开关start slave;
从库show slave status检查同步状态跟新测试

mysql> show processlist;
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
| Id | User | Host                 | db   | Command     | Time | State                                                                 | Info             |
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
|  2 | root | localhost            | NULL | Query       |    0 | NULL                                                                  | show processlist |
| 11 | root | 192.168.88.172:40311 | NULL | Binlog Dump | 3190 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)
mysql> show processlist;
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
| Id | User        | Host      | db   | Command | Time | State                                                                       | Info             |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
|  3 | root        | localhost | NULL | Query   |    0 | NULL                                                                        | show processlist |
|  4 | system user |           | NULL | Connect | 3241 | Waiting for master to send event                                            | NULL             |
|  5 | system user |           | NULL | Connect | 3037 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL             |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)
my.cnf
master端
--binlog-do-db二进制日志记录数据库多个数据库用,分割
--binlog-ignore-db二进制日志胡月数据库多个数据库用,分割
replication的slave端六个参数
--replication-do-db需要制定复制的数据库
--replication-ignore-db设定胡月的数据库=db
--replication-do-table
--replication-ignore-table
--replication-wild-do-table
--replication-wild-ignore-table
生产授权方案
主库 select insert delete update
从库 回收insert delete update
通过readonly

super不限制
[mysqld] readonly
slave-iostatus yes
slave sql running no
second sql behindmaster 是否为0 0为同步
方法一stop slave
set global sql_slave_skip_counter=10
start slave;
方法二
根据错误号跳过制定的错误
slave-skip-errors=1032,1062;
让mysqwl记录binlog
1级联
2把从库作为备份的服务器
log-slave-updates只加这一句话[mysqld]
expire_log_days=7保留七天的binlog
主库down机
show processlist;
查看所有从库的master info看哪个的跟大
选个pos最大的作为主库
1确保所有的relay log全部更新完毕
在每个从库上执行stop slave io_thread;
show processlist;
直到看到has readall relay log
2登录到主库
stop slave;
reset ;
quit
3进到数据库数据目录,删除master。info rtelay——log  info功能
cd /data/3306/data
rm -f master.info relay-log.info
检查授权表readonly参数
4
开启binlog注释 slave-log  readonly
restart
其他冲库
stop slave;
change master 只改ip
解决主键自增长id错误
master1;
auto_increament_increament=2  --1,3,5
auto_increament_offset=1起始位置
master2
auto_increament_increament=2  --2,4,6
auto_increament_offset=2
使用主主的前提,主键自增









易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!