使用mysqldump备份来实现在线添加新的从机

   更多博文请关注:没有伞的孩子必须努力奔跑 (www.xuchanggang.cn)


   在上一篇博文中,提到使用xtrabackup工具来实现热备,这篇我通过mysqldump来实现在线添加从机

一.目前的基本环境:
 主DB:192.168.1.101
 从DB1:192.168.1.102
 从DB2:192.168.1.100(准备在线添加做为从机的mysql数据库)
 数据库版本:mysql 5.1.61(select  version())
 服务器版本:red hat linux 6
       注:目前主从正常(show slave status\G),同步的数据库为 login
              同步的表为innodb引擎的表
       注:思路是备份,可是用mysqldump备份会锁表,如果数据量很大的话,线上环境肯定不允许使用mysqldump备份
              所以,我们采用的xtrabackup来进行在线热备,至于,它的原理,请各位自行google
二.部署实例:
1.主DB,线上数据正常写入的同时我实施备份
# 使用mysqldump进行备份,使用--master-data参数:此值有1和2,大家可以自己google以下
[root@client101 ~]# mysqldump -uroot -pkongzhong --opt --hex-blob --single_transaction -R --default-character-set=utf8 --master-data=2 login>/tmp/login.sql
# 再开一个端口,插入数据
mysql> insert into a select * from a;
# 备份完毕后,我们查看刚才的备份发现,master的日志文件和pos号
[root@client101 ~]# grep -i  "change master"  /tmp/login.sql
-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-101-bin.000007‘, MASTER_LOG_POS=107;
# 我刚才在备份的时候也插入数据的,我再看看主上实际的日志文件和pos号
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| mysql-101-bin.000007 |      532 |              |                  |
+----------------------+----------+--------------+------------------+
# 现在我们利用备份还原,利用备份的里的pos号,看能否追上主
2.备份完成后,将数据传送到需要作为新从机的DB server(192.168.1.100)上用于在上面进行还原
[root@client101 ~]# scp /tmp/login.sql  192.168.1.100:/tmp
3.从DB2上,使用刚才的备份,并用于恢复
[root@client100 tmp]# mysql -uroot -pkongzhong  login </tmp/login.sql
# 修改配置文件:/etc/my.cnf
replicate-wild-do-table=login.%
innodb_file_per_table=1
report-host=192.168.1.100
innodb_lock_wait_timeout=1
expire_logs_days= 3
max_binlog_size= 100M
server-id=100
# 重新启动数据库
[root@client103 mysql]# /etc/init.d/mysqld restart
4.将从DB2的主机指向主DB1
# 备份文件里有备份时的master日志文件和pos号
[root@client100 ~]# grep -i  "change master"  /tmp/login.sql
-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-101-bin.000007‘, MASTER_LOG_POS=107;
# 建立主从关系
mysql> change master to master_host=‘192.168.1.101‘,
    -> master_user=‘slave‘,
    -> master_password=‘slave‘,
    -> master_log_file=‘mysql-101-bin.000007‘,
    -> master_log_pos=107;
# 开启同步
mysql> start slave;
# 查看同步状态
mysql> show slave status\G;
5.此时如果都为yes,则主从则建立完毕!发现数据已经追上从机了
  大家可以自行测试!


本文出自 “没有伞的孩子必须努力奔跑” 博客,请务必保留此出处http://634871.blog.51cto.com/624871/1364141

使用mysqldump备份来实现在线添加新的从机,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。