【Mysql】利用xtraceback備份搭建從庫
1.使用innobackupx
(克隆的master)1.未使用GTID特性
http://navyaijm.blog.51cto.com/4647068/1422229
2 使用了GTID的新特性
(克隆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
-
如果是利用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
-
SET @@GLOBAL.GTID_PURGED='c9b3d7c0-891f-11e5-8bb0-00163ec09859:1-20,
-
f1105849-82d6-11e5-a2b5-00163e005dc8:58461-58471';
-
-
--
-
-- Position to start replication or point-in-time recovery from
-
--
-
-
--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=231;
-
-
--
-
-- Current Database: `gtid`
-
--
-
-
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `gtid` /*!40100 DEFAULT CHARACTER SET utf8 */;
-
-
USE `gtid`
-
-
如果是利用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
-
SET @@GLOBAL.GTID_PURGED='c9b3d7c0-891f-11e5-8bb0-00163ec09859:1-20,
-
f1105849-82d6-11e5-a2b5-00163e005dc8:58461-58471';
-
-
--
-
-- Position to start replication or point-in-time recovery from
-
--
-
-
--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=231;
-
-
--
-
-- Current Database: `gtid`
-
--
-
-
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `gtid` /*!40100 DEFAULT CHARACTER SET utf8 */;
-
- USE `gtid`
-
-
SET @@GLOBAL.GTID_PURGED='c9b3d7c0-891f-11e5-8bb0-00163ec09859:1-20,
實操:
-
線上需求 :10.2主庫 10.4從庫, 現在需要給10.2再搭建一個從庫,只同步其中一些庫!
方式一:
-
從現有的從庫10.4上複製每日innobackupx備份的,然後Replicate_Wild_Do_Table搭建,set gtid_purged時用主庫的,然後change 到 10.2即可! -------成功
方式二:
-
mysqldump的方式:
-
1.主庫10.2上dump需要的庫,複製,然後Replicate_Wild_Do_Table的方式搭建!set gtid_purged時用主庫的,然後change master到主庫10.2時如果Auto_Position=1
-
注意:此時Exec_Master_Log_Pos Read_Master_Log_Pos始終不變!程式也不報錯,反正就是不同步資料 ----失敗
-
---後續:過了幾天再次實驗一次,發現又可以了!??????????????????????????????
-
2.主庫10.2上dump需要的庫,複製,然後Replicate_Wild_Do_Table的方式搭建!set gtid_purged, 然後change master 到主庫10.2,Auto_Position=0,並指定master_log_file 和master_log_pos
-
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; ----成功
-
-
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也可以了???????????奇怪中!
- 線上需求 :10.2主庫 10.4從庫, 現在需要給10.2再搭建一個從庫,只同步其中一些庫!
方式一:
- 從現有的從庫10.4上複製每日innobackupx備份的,然後Replicate_Wild_Do_Table搭建,set gtid_purged時用主庫的,然後change 到 10.2即可! -------成功
方式二:
- mysqldump的方式:
- 1.主庫10.2上dump需要的庫,複製,然後Replicate_Wild_Do_Table的方式搭建!set gtid_purged時用主庫的,然後change master到主庫10.2時如果Auto_Position=1
- 注意:此時Exec_Master_Log_Pos Read_Master_Log_Pos始終不變!程式也不報錯,反正就是不同步資料 ----失敗
- ---後續:過了幾天再次實驗一次,發現又可以了!??????????????????????????????
- 2.主庫10.2上dump需要的庫,複製,然後Replicate_Wild_Do_Table的方式搭建!set gtid_purged, 然後change master 到主庫10.2,Auto_Position=0,並指定master_log_file 和master_log_pos
- 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; ----成功
-
- 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Centos Mysql 主從備份CentOSMySql
- mysql 資料庫 備份MySql資料庫
- 利用RMAN備份重建資料庫資料庫
- innobackupex 備份MySQL資料庫MySql資料庫
- 利用innobackupex備份集恢復指定庫
- MySQL主從配置及mysqldump備份MySql
- mysql資料庫備份命令大全MySql資料庫
- 備份mysql資料庫報告MySql資料庫
- 1. 備份MySQL資料庫MySql資料庫
- MySQL資料庫的基本備份MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- 定時備份MySQL資料庫MySql資料庫
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- 在容器環境搭建mysql備庫MySql
- 怎樣在SQL Server搭建主從備份SQLServer
- (7) MySQL資料庫備份詳解MySql資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- Mysql資料庫備份及恢復MySql資料庫
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- MySQL資料庫常用的備份方法MySql資料庫
- 「MySQL」資料庫備份和還原MySql資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- MySql資料庫備份的幾種方式MySql資料庫
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- mysql的冷備份與熱備份MySql
- MySQL:xtrabackup備份MySql
- Mysql備份系列MySql
- Java備份MySQLJavaMySql
- 實現MySQL資料庫的實時備份MySql資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- mysql資料庫-備份與還原實操MySql資料庫
- java mysql 資料庫備份和還原操作JavaMySql資料庫
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- 初探MySQL資料備份及備份原理MySql
- Mysql備份與恢復(1)---物理備份MySql