【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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL主從備份MySql
- 利用RMAN備份重建資料庫資料庫
- mysql 資料庫 備份MySql資料庫
- mysql的分庫備份MySql
- mysql 資料庫備份MySql資料庫
- MySQL備份之分庫分表備份指令碼MySql指令碼
- mysql 利用binlog增量備份、恢復MySql
- 【備份恢復】從備份恢復資料庫資料庫
- 利用innobackupex備份集恢復指定庫
- innobackupex 備份MySQL資料庫MySql資料庫
- mysql 備份資料庫 mysqldumpMySql資料庫
- MySQL主從配置及mysqldump備份MySql
- 【MYSQL實時備份】主從模式MySql模式
- 從MySQL全庫備份中恢復某個庫和某張表MySql
- 利用percona-xtrabackup快速搭建MySQL資料庫主從複製MySql資料庫
- 【RMAN】利用備份片還原資料庫資料庫
- 怎樣在SQL Server搭建主從備份SQLServer
- MySQL資料庫的基本備份MySql資料庫
- 1. 備份MySQL資料庫MySql資料庫
- Mysql資料庫自動備份MySql資料庫
- 備份mysql資料庫報告MySql資料庫
- 配置xtrabackup備份mysql資料庫MySql資料庫
- 使用innobackupex備份mysql資料庫MySql資料庫
- 使用Xtrabackup備份mysql資料庫MySql資料庫
- mysql資料庫備份命令大全MySql資料庫
- mysql利用binlog增量備份,還原例項MySql
- 在容器環境搭建mysql備庫MySql
- 從遠端把mysql透過mysqldump備份資料庫到本地MySql資料庫
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- 【RMAN】利用備份片還原資料庫(上)資料庫
- 【RMAN】利用備份片還原資料庫(中)資料庫
- 【RMAN】利用備份片還原資料庫(下)資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL資料庫常用的備份方法MySql資料庫
- (7) MySQL資料庫備份詳解MySql資料庫
- 「MySQL」資料庫備份和還原MySql資料庫