innobackupex应用:不停master服务做主从同步

栏目: 数据库 · Mysql · 发布时间: 5年前

内容简介:MySQL主从同步是在MySQL主从复制(Master-SlaveReplication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从MasterMySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到SlaveMySQL的数据库中。这样实现了主从数据同步功能。innobackupex在后台线程不断追踪InnoDB的日志文件,然

innobackupex应用:不停master服务做主从同步

MySQL主从同步原理:

MySQL主从同步是在 MySQL 主从复制(Master-SlaveReplication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从MasterMySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的 SQL 线程从中继日志中读取中继日志,然后应用到SlaveMySQL的数据库中。这样实现了主从数据同步功能。

XtraBackup备份原理:

innobackupex在后台线程不断追踪InnoDB的日志文件,然后复制InnoDB的数据文件。数据文件复制完成之后,日志的复制线程也会结束。这样就得到了不在同一时间点的数据副本和开始备份以后的事务日志。完成上面的步骤之后,就可以使用InnoDB崩溃恢复代码执行事务日志(redolog),以达到数据的一致性。

备份分为两个过程:

backup,备份阶段,追踪事务日志和复制数据文件(物理备份)。

preparing,重放事务日志,使所有的数据处于同一个时间点,达到一致性状态。

XtraBackup的优点:

可以快速可靠的完成数据备份(复制数据文件和追踪事务日志)

数据备份过程中不会中断事务的处理(热备份)

节约磁盘空间和网络带宽

自动完成备份鉴定

因更快的恢复时间而提高在线时间

三.在master服务器上在线备份数据库:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf--user=root --password=xxxx   /tmp/backup/

因为我使用的配置文件是默认的 /etc/my.cnf 而且我是直接使用 MySQL root 用户备份的 所以我省略了 --defaults-file 参数和 --user 参数。

执行命令前请先检查 MySQL 的配置文件,查看 [mysqld] 下是否指定了 datadir ,如果没有请自行添加,否则执行命令后会报错。

默认情况下,系统会自动在备份目录下新建一个以当前时间命名的目录(格式: yyyy-mm-dd_HH-MM-SS ),如果你希望自定义目录的名称,就请在命令的末尾加上 --no-timesmtap 参数,加上这个参数后,系统就不会自动新建目录了,所以我们要事先在备份目录下新建一个目录用来存放备份,比如 /backup/full

PS:/tmp/backup/ 为备份目录;

然后通过scp方式把master上的备份文件复制到slave机器上

[root@node6683 full]# scp -r ./2018-11-07_13-47-53 root@192.168.66.162:/data/backup/replication/ [主]创建复制用户  

,授予复制用户replication权限

GRANT REPLICATION SLAVE ON *.*

TO 'rep'@'10.10.6.%' IDENTIFIED BY '123456';

.slave 机器上操作

1)关闭mysql服务;

然后清空mysql数据目录下文件,例如本机mysql的数据目录是:/webser/mysql55/var/  

清空MySQL的数据目录

rm -rf /mysql/*

备注:在生产环境中,如果有足够的空间,建议采用重命名的方式进行备份。

2)开始恢复数据

假设备份文件的路径在:/webser/2015-08-12_13-54-56

回滚日志文件:

innobackupex--defaults-file=/etc/my.cnf --user=root --password=xxxx --apply-log/tmp/backup/2015-08-12_13-49-32/

恢复数据文件:

innobackupex--defaults-file=/etc/my.cnf --user=root --password=xxxx --copy-back/tmp/backup/2015-08-12_13-49-32/

以上操作,请务必按照顺序执行,操作顺序颠倒,会引起mysql服务器启动不了!

3)修改数据目录权限:

chown -R mysql:mysql /webser/mysql55/var  

关闭:selinux

# setenforce 0

4)安全方式启动mysql,查看是否有异常;

/webser/mysql55/bin/mysqld_safe--defaults-file=/webser/mysql55/etc/my.cnf &

如果没有异常报错,就关闭mysql

/webser/mysql55/bin/mysqladmin-uroot -p shutdown

5)在主库备份目录上查看binlog日志文件的位置值,做主从同步:

cat /tmp/backup/2015-08-12_13-49-32/xtrabackup_binlog_info  

wwwmaster.000458     1022022953

6)在slave机器上做主从相关操作:

CHANGE MASTER TO

MASTER_HOST='192.168.1.xxx',

MASTER_USER='rep',

MASTER_PASSWORD='xxxxxx',

MASTER_PORT=3306,

MASTER_LOG_FILE='wwwmaster.000458',

MASTER_LOG_POS=1022022953;

启动主从同步:

start slave;

查看slave状态:

#show slave status\G;

root@mysql668713:37:  [(none)]> show slave status\G;

***************************1. row ***************************

Slave_IO_State: Waiting formaster to send event

Master_Host: 192.168.66.83

Master_User: rep

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 575

Relay_Log_File:node6687-relay-bin.000005

Relay_Log_Pos: 320

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 575

Relay_Log_Space: 530

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert:No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 3306

Master_UUID:ee34958f-ce2a-11e8-96a3-708bcda9e75d

Master_Info_File:/var/lib/mysql/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has readall relay log; waiting for more updates

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

innobackupex应用:不停master服务做主从同步


以上所述就是小编给大家介绍的《innobackupex应用:不停master服务做主从同步》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件随想录

软件随想录

Joel Spolsky / 阮一峰 / 人民邮电出版社 / 2009 / 49.00元

《软件随想录:程序员部落酋长Joel谈软件》是一部关于软件技术、人才、创业和企业管理的随想文集,作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,内容简洁实用。全书分为 36讲,每一讲都是一个独立的专题。 《软件随想录:程序员部落酋长Joel谈软件》从不同侧面满足了软件开发人员、设计人员、管理人员及从事软件相关工作的人员的学习与工作需要。一起来看看 《软件随想录》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具