最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL主备库切换记录

来源:动视网 责编:小采 时间:2020-11-09 15:14:47
文档

MySQL主备库切换记录

MySQL主备库切换记录:旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysqlgt; flush tables with read lock; 旧备库: mysqlgt; show p 旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysql> flush tables with read lo
推荐度:
导读MySQL主备库切换记录:旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysqlgt; flush tables with read lock; 旧备库: mysqlgt; show p 旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysql> flush tables with read lo


旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysqlgt; flush tables with read lock; 旧备库: mysqlgt; show p

旧主库:

切换前将主库的表上锁,防止切换期间数据写到主库

mysql> flush tables with read lock;

旧备库:

mysql> show processlist ;

Slave has read all relay log; waiting for the slave I/O thread to update it

mysql> show slave status \G

旧主库:

mysql> show processlist ;

Master has sent all binlog to slave; waiting for binlog to be updated

旧从库

mysql> STOP SLAVE IO_THREAD;

mysql> SHOW PROCESSLIST;

确保状态为:has read all relay log

旧主库:

mysql> show master status


旧从库变主库
mysql> STOP SLAVE;

mysql> RESET MASTER;

mysql> RESET SLAVE;

mysql> show master status \G

关闭旧主库

/etc/init.d/mysql stop

待主库应用切到备库,关闭原主库的表lock状态
unlock tables;

从库变主库
mysql> RESET MASTER;

mysql> RESET SLAVE;

主库重新做备库

新主库:

mysql> grant replication slave on *.* to 'root'@'192.168.1.29' identified by 'test123';

vi /etc/my.cnf

log-bin=mysql-masterbin

service mysql restart

mysql> flush tables with read lock;

mysql> show master status; 记下file和positon

/usr/bin/mysqldump -uroot -ptest123 --log-error=mysqldump47.log --all-databases > mysqldump47.sql

mysql> unlock tables;

scp mysqldump47.sql 192.168.234.29:/root/

新备库:

mysql> stop slave;

mysql> /usr/bin/mysql -uroot -ptest123 < mysqldump47.sql

mysql> change master to master_host='192.168.1.47',master_user='root',master_password='test123',master_log_file='mysql-masterbin.00001' ,master_log_pos=65238;

mysql> start slave;

新主库操作数据,,新备库验证一下

附录:

不重启MySQL修改配置参数(万不得已使用)

system gdb -p $(pidof mysqld) -ex "set log_bin = mysql-masterbin47" -batch
gdb -p $(pidof mysqld) -ex "set log_bin = mysql-masterbin47" -batch

数据库只读锁定命令,防止导出数据库的时候有数据写入

flush tables with read lock;

解除锁定

unlock tables;

备份或者准备主备切换前设置数据为只读状态(具有超级管理权限的用户仍然可以DML操作表)

SET GLOBAL READ_ONLY = ON;

SET GLOBAL READ_ONLY = OFF;

SHOW VARIABLES LIKE '%read_only%';

set global read_only=on/off是DBA经常用的一个操作:进行主备切换的时候,一般都会先对主库进行只读操作(on),然后主备同步完成后,再把备库置为可读写(off)。这样可以避免切换的过程中双写引起脏数据。

mysqld.cc中同时定义了2个变量:my_bool read_only= 0, opt_readonly= 0; opt_readonly是当前系统的read_only状态,read_only是要把read_only设置成的值。

本文永久更新链接地址:

文档

MySQL主备库切换记录

MySQL主备库切换记录:旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysqlgt; flush tables with read lock; 旧备库: mysqlgt; show p 旧主库: 切换前将主库的表上锁,防止切换期间数据写到主库 mysql> flush tables with read lo
推荐度:
标签: 记录 切换 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top