Mysql主從建構---基于innobackupex備份,親測可以完成

mysql建構主從往往基于mysqldump進行備份主庫再Copy到從庫進行備份恢複之後啟動主從,但是對于資料量大的場景就完全不适用,因為基于邏輯sql,是以導入時間久,速度很慢。

是以針對比較大的資料庫建議使用innobackupex進行主庫的備份,然後複制到從庫建構主從

以下為我實際生産使用為案例:

資料庫版本:5.7
資料庫架構:主從同步
資料量:其中一個主庫粗略統計40GB
IP:已經存在的主庫:10.2.22.162  ,以下稱為主庫A
   需要資料導入的主庫:10.2.22.31,以下稱為主庫B      

一、資料庫搭建步驟略

二、在主庫A、B安裝innobackupex備份的用戶端

1.安裝依賴包
      yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
      2.安裝
      3.下載下傳xbk源
      wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
      4.下載下傳xbk軟體
      yum -y install percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
      在步驟4可能遇到缺少libev依賴的報錯:
      解決:
      安裝:libev-4.15-1.el6.rf.x86_64.rpm
      rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm      

三、主庫A實體備份

//資料庫全備
innobackupex --defaults-file=/etc/my.cnf --user=root --password='xxxxx'  --stream=tar /data/backup_rf/|gzip|ssh [email protected] \ "cat - > /data/backup/im_prod/im_backup_`date +"%Y-%m-%d_%H:%M:%S"`.tar.gz"
--defaults-file:指定配置檔案
--user=root:指定使用者
--password='xxx' 指定密碼
--stream=tar  壓縮方式
ssh [email protected]  遠端備份到其他資料
/data/backup_rf/im_backup_`date +"%Y-%m-%d_%H:%M:%S"`.tar.gz" 備份包名字
/data/backup_rf該路徑需要提前存在      

四、主庫B恢複

1.解壓備份
cd /tmp
tar -zxvf /tmp/im_backup_2022-11-09_00\:30\:01.tar.gz -C /tmp/restore/

2.準備階段 recover
 innobackupex --apply-log /tmp/restore
 
3.關閉資料庫
/etc/init.d/mysqld stop

4.删除指定的目錄
rm -fr /data/mysql/*

5.copy階段
innobackupex --copy-back /tmp/restore/

6.改權限
chown -R mysql. /data/mysql

8.啟動資料庫
/etc/init.d/mysqld start

此時沒有異常資料庫應該已經啟動,接下來就是建構主從      

五、建構主從架構

主A和主B建立主主同步的使用者:

grant replication slave on *.* to repl@'10.%.%.%' identified by '123456';      
1.登入資料庫B
mysql -uroot -p 
2.purged gtid,如果報錯,先reset master;
purge的資訊來自于xtrabackup_binlog_info
set global gtid_purged='3618f301-78d0-11ea-aa7c-005056a6318a:1-586925444'
3.建構主從
restart slave;
resetart master;
CHANGE MASTER TO
  MASTER_HOST='10.2.22.162',
  MASTER_USER='repl',
  MASTER_PASSWORD='123456',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.001763',    
  MASTER_LOG_POS= 353272893,
  MASTER_CONNECT_RETRY=10;
  
 注意:
 其中MASTER_LOG_FILE和MASTER_LOG_POS來源于innobackupex備份log,
 xtrabackup_binlog_info,該log記錄了備份開始時主庫A的binlog起點
4.啟動主從
start slaves;
5,檢視主從狀态
show slave status\G
      

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

1407年的某天,得知皇后病危的明成祖朱棣不顾满堂朝臣的奏折,急忙忙跑到皇后徐妙云的寝宫,看到病榻上面容憔悴、奄奄一息的嫡妻,这位经历了无数次战场厮杀、见惯了生死无常的皇帝不由得眼中落泪,回想起他们共同走过的峥嵘岁月,他紧紧拉着徐皇后的手,倾听她最后的嘱托,感受着她最后的温度……

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云,又名“仪华”,(史称孝仁皇后)是明成祖朱棣的原配嫡后,也是现在正在热播的《山河月明》中朱元璋的四皇子朱棣嫡妻徐妙云的原型。她出身名门,父亲是大明第一战神徐达,因为出身高贵又自幼聪慧机智被冠以“女诸生”称号,早早就引起了明太祖朱元璋和马皇后的重视,在洪武九年,14岁的徐妙云便被朱元璋亲自册封给自己四皇子燕王朱棣做正妃。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云饱读诗书又温柔贤惠,而四皇子朱棣又威武有力人品贵重,两人并不像《山河月明》电视剧中所演:被双方父母强令指婚,先婚后爱,而是双方强强联姻,在婚前就互相爱慕敬重对方,是一对门当户对、般配的好婚姻。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

婚后小两口伉俪情深,机智聪敏的徐妙云在众多的儿媳中很快就脱颖而出,给公婆留下了非常好的印象,因此也深受朱元璋与马皇后的疼爱,即便性情孔武豪迈的朱棣对这个懂进退、明事理的妻子也是十分敬重并且宠爱有加——朱棣一生九个子女,七个皆出自于嫡妻徐妙云,这足以证明:朱棣与徐妙云的感情十分融洽和谐——即便后来朱棣当了皇帝,也是对徐妙云情有独钟,这在嫔妃成群的后宫十分罕见,对一个佳丽三千的帝王来说也是十分难得的。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云对朱棣的好不仅表现在机智聪敏性格讨巧上,她还不愧是徐达的后代——内心勇敢坚定,颇有“将门虎女”之风。“靖难之役”中,徐妙云坚定地站在丈夫朱棣一边,与丈夫共生死、同进退。当李景隆的大军逼近朱棣老家北京城时候,此时丈夫率兵在外,城内皆是老弱妇孺,被攻下城池就是谋逆罪成、人头落地!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

危急时刻徐妙云临危不乱,亲自披上战袍指挥军士守城,并且把早年和父亲徐达学的兵书战策应用于实际,利用冬季天寒地冻的特点,成功利用泼水结冰的计策击退了李景隆的军队,顺利保住北京城,赢得了朱棣回军的战机,为四年“靖难之役”朱棣的胜利奠定了重要基础,所以某种程度上朱棣夺位的成功,有一半是这位“将门虎女”妻子的助攻,他才能够打败侄子皇帝朱允文,成功改写大明历史!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

建文四年,朱棣称帝,登基伊始马上册封爱妻徐妙云为皇后。成为皇后的徐锦云没有得意忘形安于享乐,而是劝诫丈夫:得天下不易,要善待靖难遗孤,休养生息,巩固民生,堪称“一代贤后”。在她的劝解下朱棣停止了大规模杀戮、采取了一系列利国利民的政策,开创了属于自己的“永乐盛世”,这期间,徐妙云功不可没!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

1407年,一代贤后徐妙云在病床上最后一次嘱托丈夫明成祖朱棣善待百姓、善待靖难功臣、善待子孙后永久闭上了眼睛,至此,悲痛欲绝的朱棣再没立后!

永乐十一年,迁都北京的明成祖将爱妻徐妙云的梓宫葬入长陵,十五年后,朱棣驾崩,与爱妻合葬长陵。这一对帝后在芳草萋萋的长陵之下终于团团相会,做到了生同衾死同穴的完美诠释。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云——出身名门的一代贤后,机智、勇敢、贤惠,以卓越的才识成为成祖后宫最靓丽的底色,是朱棣心中永远的红玫瑰!

Mysql主從建構---基于innobackupex備份,親測可以完成

mysql建構主從往往基于mysqldump進行備份主庫再Copy到從庫進行備份恢複之後啟動主從,但是對于資料量大的場景就完全不适用,因為基于邏輯sql,是以導入時間久,速度很慢。

是以針對比較大的資料庫建議使用innobackupex進行主庫的備份,然後複制到從庫建構主從

以下為我實際生産使用為案例:

資料庫版本:5.7
資料庫架構:主從同步
資料量:其中一個主庫粗略統計40GB
IP:已經存在的主庫:10.2.22.162  ,以下稱為主庫A
   需要資料導入的主庫:10.2.22.31,以下稱為主庫B      

一、資料庫搭建步驟略

二、在主庫A、B安裝innobackupex備份的用戶端

1.安裝依賴包
      yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
      2.安裝
      3.下載下傳xbk源
      wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
      4.下載下傳xbk軟體
      yum -y install percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
      在步驟4可能遇到缺少libev依賴的報錯:
      解決:
      安裝:libev-4.15-1.el6.rf.x86_64.rpm
      rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm      

三、主庫A實體備份

//資料庫全備
innobackupex --defaults-file=/etc/my.cnf --user=root --password='xxxxx'  --stream=tar /data/backup_rf/|gzip|ssh [email protected] \ "cat - > /data/backup/im_prod/im_backup_`date +"%Y-%m-%d_%H:%M:%S"`.tar.gz"
--defaults-file:指定配置檔案
--user=root:指定使用者
--password='xxx' 指定密碼
--stream=tar  壓縮方式
ssh [email protected]  遠端備份到其他資料
/data/backup_rf/im_backup_`date +"%Y-%m-%d_%H:%M:%S"`.tar.gz" 備份包名字
/data/backup_rf該路徑需要提前存在      

四、主庫B恢複

1.解壓備份
cd /tmp
tar -zxvf /tmp/im_backup_2022-11-09_00\:30\:01.tar.gz -C /tmp/restore/

2.準備階段 recover
 innobackupex --apply-log /tmp/restore
 
3.關閉資料庫
/etc/init.d/mysqld stop

4.删除指定的目錄
rm -fr /data/mysql/*

5.copy階段
innobackupex --copy-back /tmp/restore/

6.改權限
chown -R mysql. /data/mysql

8.啟動資料庫
/etc/init.d/mysqld start

此時沒有異常資料庫應該已經啟動,接下來就是建構主從      

五、建構主從架構

主A和主B建立主主同步的使用者:

grant replication slave on *.* to repl@'10.%.%.%' identified by '123456';      
1.登入資料庫B
mysql -uroot -p 
2.purged gtid,如果報錯,先reset master;
purge的資訊來自于xtrabackup_binlog_info
set global gtid_purged='3618f301-78d0-11ea-aa7c-005056a6318a:1-586925444'
3.建構主從
restart slave;
resetart master;
CHANGE MASTER TO
  MASTER_HOST='10.2.22.162',
  MASTER_USER='repl',
  MASTER_PASSWORD='123456',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.001763',    
  MASTER_LOG_POS= 353272893,
  MASTER_CONNECT_RETRY=10;
  
 注意:
 其中MASTER_LOG_FILE和MASTER_LOG_POS來源于innobackupex備份log,
 xtrabackup_binlog_info,該log記錄了備份開始時主庫A的binlog起點
4.啟動主從
start slaves;
5,檢視主從狀态
show slave status\G
      

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

1407年的某天,得知皇后病危的明成祖朱棣不顾满堂朝臣的奏折,急忙忙跑到皇后徐妙云的寝宫,看到病榻上面容憔悴、奄奄一息的嫡妻,这位经历了无数次战场厮杀、见惯了生死无常的皇帝不由得眼中落泪,回想起他们共同走过的峥嵘岁月,他紧紧拉着徐皇后的手,倾听她最后的嘱托,感受着她最后的温度……

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云,又名“仪华”,(史称孝仁皇后)是明成祖朱棣的原配嫡后,也是现在正在热播的《山河月明》中朱元璋的四皇子朱棣嫡妻徐妙云的原型。她出身名门,父亲是大明第一战神徐达,因为出身高贵又自幼聪慧机智被冠以“女诸生”称号,早早就引起了明太祖朱元璋和马皇后的重视,在洪武九年,14岁的徐妙云便被朱元璋亲自册封给自己四皇子燕王朱棣做正妃。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云饱读诗书又温柔贤惠,而四皇子朱棣又威武有力人品贵重,两人并不像《山河月明》电视剧中所演:被双方父母强令指婚,先婚后爱,而是双方强强联姻,在婚前就互相爱慕敬重对方,是一对门当户对、般配的好婚姻。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

婚后小两口伉俪情深,机智聪敏的徐妙云在众多的儿媳中很快就脱颖而出,给公婆留下了非常好的印象,因此也深受朱元璋与马皇后的疼爱,即便性情孔武豪迈的朱棣对这个懂进退、明事理的妻子也是十分敬重并且宠爱有加——朱棣一生九个子女,七个皆出自于嫡妻徐妙云,这足以证明:朱棣与徐妙云的感情十分融洽和谐——即便后来朱棣当了皇帝,也是对徐妙云情有独钟,这在嫔妃成群的后宫十分罕见,对一个佳丽三千的帝王来说也是十分难得的。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云对朱棣的好不仅表现在机智聪敏性格讨巧上,她还不愧是徐达的后代——内心勇敢坚定,颇有“将门虎女”之风。“靖难之役”中,徐妙云坚定地站在丈夫朱棣一边,与丈夫共生死、同进退。当李景隆的大军逼近朱棣老家北京城时候,此时丈夫率兵在外,城内皆是老弱妇孺,被攻下城池就是谋逆罪成、人头落地!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

危急时刻徐妙云临危不乱,亲自披上战袍指挥军士守城,并且把早年和父亲徐达学的兵书战策应用于实际,利用冬季天寒地冻的特点,成功利用泼水结冰的计策击退了李景隆的军队,顺利保住北京城,赢得了朱棣回军的战机,为四年“靖难之役”朱棣的胜利奠定了重要基础,所以某种程度上朱棣夺位的成功,有一半是这位“将门虎女”妻子的助攻,他才能够打败侄子皇帝朱允文,成功改写大明历史!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

建文四年,朱棣称帝,登基伊始马上册封爱妻徐妙云为皇后。成为皇后的徐锦云没有得意忘形安于享乐,而是劝诫丈夫:得天下不易,要善待靖难遗孤,休养生息,巩固民生,堪称“一代贤后”。在她的劝解下朱棣停止了大规模杀戮、采取了一系列利国利民的政策,开创了属于自己的“永乐盛世”,这期间,徐妙云功不可没!

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

1407年,一代贤后徐妙云在病床上最后一次嘱托丈夫明成祖朱棣善待百姓、善待靖难功臣、善待子孙后永久闭上了眼睛,至此,悲痛欲绝的朱棣再没立后!

永乐十一年,迁都北京的明成祖将爱妻徐妙云的梓宫葬入长陵,十五年后,朱棣驾崩,与爱妻合葬长陵。这一对帝后在芳草萋萋的长陵之下终于团团相会,做到了生同衾死同穴的完美诠释。

揭秘《山河月明》中的徐妙云:一代贤后——朱棣心中永远的红玫瑰

徐妙云——出身名门的一代贤后,机智、勇敢、贤惠,以卓越的才识成为成祖后宫最靓丽的底色,是朱棣心中永远的红玫瑰!