1.如果出现同步错误,需要忽略错误,进行下条语句继续同步。
[plain] view plain copy
- mysql> stop slave;
- mysql> set global sql_slave_skip_counter =1;
- mysql> start slave
2.通过配置文件自动忽略同步错误“1007”,生产环境主从分离要用:
vim /data/3307/my.cnf
slave-skip-errors = 1032,1062,1007,1008
3.让从库开启bin_log的办法:
vim /data/3307/my.cnf
[plain] view plain copy
- log-slave-updates
- log-bin = /data/3307/mysql-bin
- expire_logs_days = 7 #日志只保留7天
4,.双主库同步方案:
a.让表的ID自增,让主1写1,3,5 主2 写2,4,6。
[plain] view plain copy
- A增加:
- auto_increment_increment = 2
- auto_increment_offset=1
- B增加:
b.不让表的ID自增,通过WEB程序去seq服务器取ID,写入双主。
5.读写分离的方案:
a.通过开发的程序控制读写的位置。 (推荐)
b.通过开源软件实现。(Amoeba,Mysql_proxy)
c.自己开发DAL层。(大公司用)
6.增量备份步骤:
一。选择一台从库,不对外提供业务,专门用了做备份。此从库开启bin_log功能,做增量备份。
二。备份的时候需要停止sql线程,在用mysqldump备份:
stop slave sql_thread; #停止sql线程,不会停止同步IO进程
三。然后将备份文件和bin_log文件远程保存起来。
下面命令可以用来远程备份bin_log:
mysqlbinlog --read-from-remote-server --raw --host=172.16.1.214 --port=3306 --user=rep --password=Root1234 --stop-never mysql-bin.000001
7.主从复制延时原因:
a.从库太多,一般要3-5个
b.从库配置太低。
c.慢sql过多。
d.高版本mysql支持多线程复制
8.同一账号在主从库拥有不同权限方案:
a.在主库上创建拥有读写权限账号,然后再从库上面收回写入权限。
mysql> grant insert,update,delete,select on *.* to web@'172.16.1.%' identified by '123'; #创建web用户对所有表拥有读写权限,主库执行。
mysql> show grants form web@'172.16.1.%'; #查看用户权限
mysql> REVOKE insert,update,delete ON *.* FROM 'web'@'172.16.1.%'; #回收web用户写入权限,从库执行
b.从库不同步mysql授权表:(推荐方案)
my.cnf 里面加:
replicate-ignore-db = mysql
binlog-ignore-db = mysql
c.在从库设置read-only:
mysql> set global read_only=1;
或者 my.cnf 加 read-only