ITPub博客

首页 > 数据库 > MySQL > 【Mysql】利用xtraceback备份搭建从库

【Mysql】利用xtraceback备份搭建从库

原创 MySQL 作者:小亮520cl 时间:2015-11-09 09:43:30 0 删除 编辑

1.使用innobackupx

(克隆的master)
1.未使用GTID特性
http://navyaijm.blog.51cto.com/4647068/1422229

2 使用了GTID的新特性
https://www.percona.com/doc/percona-xtrabackup/2.2/howtos/recipes_ibkx_gtid.html



(克隆slave)构建强壮的数据中心
克隆slave好处就是不影响master的业务,所以不管是给master添加slave还是给slave添加下级salve最好都是用克隆slave的方法吧,与克隆master一样的,只是log里面记录的多了一条上级的信息,安全!!!
innobackupex给slave做一个全备份

没开gtid像这种
[root@bj151 2015-12-23_05-00-08]# more xtrabackup_binlog_info
mysql-bin.000033        102109174    --搭建slave的slave选这个
[root@bj151 2015-12-23_05-00-08]# more xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000048', MASTER_LOG_POS=492295858    --搭建master的slave选这个


开了gtid就像这种
[root@HaoDai_App_DB02 2015-12-23_04-00-02]# more xtrabackup_binlog_info
6c8a10ed-ed0b-11e4-91eb-00163ec546aa:1-24,   
6c8a10ed-ed0b-11e4-91eb-00163ec546ca:1-96083689 --搭建master的slave选这个
[root@HaoDai_App_DB02 2015-12-23_04-00-02]# more xtrabackup_slave_info
SET GLOBAL gtid_purged='6c8a10ed-ed0b-11e4-91eb-00163ec546aa:1-24, 6c8a10ed-ed0b-11e4-91eb-00163ec546ca:1-96083689';   --搭建slave的slave选这句话,因为要接受两级的日志
CHANGE MASTER TO MASTER_AUTO_POSITION=1


2.使用mysqldump
  1. 如果是利用mysqldump的全备来搭建从库也行,
    那么全被时必须打开了--master-data=2(或者--dump-slave) 参数啊。。他会以注释的方式记录下,全备的pos点,不然怎么做主从呢?
    master-data记录是本机mysql的pos以及file,也就是让自己当主    --克隆slave
    dump-slave记录是本机的主的mysql的pos和file ,也就是搭建一个和自己平级的slave  --克隆master

    如:
    /home/data/mysql/bin/mysqldump -uroot -pESBecs00 -h127.0.0.1 -P3308 --master-data=1 --all-database>aal.sql

    1. SET @@GLOBAL.GTID_PURGED='c9b3d7c0-891f-11e5-8bb0-00163ec09859:1-20,
    2. f1105849-82d6-11e5-a2b5-00163e005dc8:58461-58471';

    3. --
    4. -- Position to start replication or point-in-time recovery from
    5. --

    6. --CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=231;

    7. --
    8. -- Current Database: `gtid`
    9. --

    10. CREATE DATABASE /*!32312 IF NOT EXISTS*/ `gtid` /*!40100 DEFAULT CHARACTER SET utf8 */;

    11. USE `gtid`


实操:
  1. 线上需求 :10.2主库 10.4从库, 现在需要给10.2再搭建一个从库,只同步其中一些库!

方式一:
  1. 从现有的从库10.4上拷贝每日innobackupx备份的,然后Replicate_Wild_Do_Table搭建,set gtid_purged时用主库的,然后change 到 10.2即可!     -------成功

方式二:
  1. mysqldump的方式:
  2. 1.主库10.2上dump需要的库,拷贝,然后Replicate_Wild_Do_Table的方式搭建!set gtid_purged时用主库的,然后change master到主库10.2时如果Auto_Position=1
  3. 注意:此时Exec_Master_Log_Pos Read_Master_Log_Pos始终不变!进程也不报错,反正就是不同步数据                                                                                          ----失败 
  4. ---后续:过了几天再次实验一次,发现又可以了!??????????????????????????????                                                                                                                                                                                                      
  1. 2.主库10.2上dump需要的库,拷贝,然后Replicate_Wild_Do_Table的方式搭建!set gtid_purged, 然后change master 到主库10.2,Auto_Position=0,并指定master_log_file 和master_log_pos
  2. CHANGE MASTER TO master_host='192.168.10.2',master_user='xxx',master_password='xssss',MASTER_LOG_FILE='mysql-bin.000358', MASTER_LOG_POS=472206029,master_Auto_Position=0;   ----成功

  1. 3.从库10.4上dump需要的库,拷贝,然后Replicate_Wild_Do_Table的方式搭建!set gtid_purged时用主库和从库的,然后change master到从库10.4即可!,搭建从库的从了                                 ----成功

  4.从库10.4上dump需要的库,拷贝,然后Replicate_Wild_Do_Table的方式搭建!set gtid_purged时用主库和从库的,然后change master到主库10.2时如果Auto_Position=1                                  ---失败       

总结:
如果使用innobackpx搭建从库部分复制,就安装常规步骤来,指定master 或者slave都可以
如果使用mysqldump 搭建从库部分复制,指定master时,如果Auto_Position=1就会有问题,只能Auto_Position=0 并指定文件和位置,  或者指定slave,搭建slave的slave也行,后续,如果用Auto_Position=1也可以了???????????奇怪中!




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-1825865/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
毕业以后专业任职数据库工程师职位,itpub一直作为自己的笔记记录的地方,blog写的不详细,草书笔记,仅供参考!

注册时间:2013-09-12

  • 博文量
    530
  • 访问量
    971262