基於innobakcupex跨執行個體不完全恢複步驟

來源:互聯網
上載者:User

基於innobakcupex跨執行個體不完全恢複步驟

MySQL在基於熱備的基礎上,可以實現對原有執行個體的完全或不完全恢複。而很多時候,原有執行個體部署了DRBD或者MHA等,在這種情況下,基於原有執行個體進行恢複會影響原有的故障現場及架構,可以通過跨執行個體恢複來恢複丟失或異常資料。同時跨執行個體恢複也可以實現基於整個執行個體進行執行個體層級資料庫遷移。下文示範了基於跨執行個體的不完全恢複。

1、主要步驟
a、準備新執行個體
b、基於熱備做prepare及recover
c、複製完整的備份到新執行個體(如果跨主機應複製到新主機)
d、啟動新執行個體
e、根據需要恢複binlog到故障點
f、驗證結果

2、示範跨執行個體不完全恢複

-- 說明:以下示範在同一主機上完成
-- 源執行個體連接埠及資料檔案路徑:3306 /data/mysqldata
-- 新執行個體連接埠及資料檔案路徑:3307 /data/recoverdata
a、準備新執行個體
-- 建立新執行個體資料路徑
SHELL# mkdir -p /data/recoverdata   

-- 初始化新執行個體
SHELL# cp /etc/my.cnf /etc/my3307.cnf
SHELL# vi /etc/my3307.cnf            --修改相關配置選項,路徑,連接埠號碼,servier_id等等
SHELL# /app/soft/mysql/scripts/mysql_install_db --user=mysql --ldata=/data/recoverdata --basedir=/app/soft/mysql \
> --defaults-file=/etc/my3307.cnf
 
SHELL# /app/soft/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf &
SHELL# /app/soft/mysql/bin/mysqladmin -u root password '***' -P3307 -S /tmp/mysql3307.sock
SHELL# /app/soft/mysql/bin/mysqladmin -uroot -p*** -P3307 -S /tmp/mysql3307.sock shutdown

b、基於熱備做prepare及recover
--當前的備份情況為:
--20150128 全備,20150129 增備,20150130 增備,20150131 增備,備份時間為每天3點
--需要恢複到2015-01-31 23:53:54
--備份路徑如下:
SHELL# pwd
/backup/hotbak/physical/20150128
SHELL# ls
base_20150128  inc_20150129  inc_20150130  inc_20150131

--prepare 全備
SHELL# innobackupex --apply-log --redo-only --user=root --password=*** --port=3307 \
--socket=/tmp/mysql3307.sock --defaults-file=/etc/my3307.cnf /backup/hotbak/physical/20150128/base_20150128

--prepare 增備
SHELL# innobackupex --apply-log --redo-only --user=root --password=*** --port=3307 \
--socket=/tmp/mysql3307.sock --defaults-file=/etc/my3307.cnf /backup/hotbak/physical/20150128/base_20150128 \
--incremental-dir=/backup/hotbak/physical/20150128/inc_20150129

--prepare 增備
SHELL# innobackupex --apply-log --redo-only --user=root --password=*** --port=3307 \
--socket=/tmp/mysql3307.sock --defaults-file=/etc/my3307.cnf /backup/hotbak/physical/20150128/base_20150128 \
--incremental-dir=/backup/hotbak/physical/20150128/inc_20150130

--prepare 增備,注意,最後一次不需要使用--redo-only選項,未提交的事務將復原
SHELL# innobackupex --apply-log --user=root --password=*** --port=3307 --socket=/tmp/mysql3307.sock \
--defaults-file=/etc/my3307.cnf /backup/hotbak/physical/20150128/base_20150128 \
--incremental-dir=/backup/hotbak/physical/20150128/inc_20150131

c、複製完整的備份到新執行個體
SHELL# cp -R /backup/hotbak/physical/20150128/base_20150128/* /data/recoverdata
SHELL# chown mysql:mysql -R /data/recoverdata

# Author : Leshami
# Blog  : http://blog.csdn.net/leshami

d、啟動新執行個體
-- 啟動新執行個體並驗證完整性
SHELL# /app/soft/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf &

e、根據需要恢複binlog到故障點
--假定我們需要恢複到2015-01-31 23:53:54,則需要提取binlog來進行不完全恢複。
--擷取熱備最後的binlog日誌及位置
SHELL# more /backup/hotbak/physical/20150128/inc_20150131/xtrabackup_binlog_info
mysql-bin.000036        100130712
SHELL# mysqlbinlog /data/mysqldata/mysql-bin.000036 --start-position=100130712 --stop-datetime="2015-01-31 23:53:54" \ 
> |mysql -uroot -p*** -P3307 -S /tmp/mysql3307.sock

f、驗證結果
mysql> select * from test.heartbeat;
+----------------------------+-----------+------------------+-----------+-----------------------+---------------------+
| ts                        | server_id | file            | position  | relay_master_log_file | exec_master_log_pos |
+----------------------------+-----------+------------------+-----------+-----------------------+---------------------+
| 2015-01-31T23:53:53.001690 |        11 | mysql-bin.000459 | 703735593 | NULL                  |                NULL |
+----------------------------+-----------+------------------+-----------+-----------------------+---------------------+

MySQL資料恢複--binlog   

MySQL中binlog日記清理  

如何安全刪除MySQL下的binlog日誌  

MySQL--binlog日誌恢複資料  

MySQL刪除binlog日誌及日誌恢複資料的方法  

MySQL binlog三種格式介紹及分析  

MySQL 利用binlog增量備份+還原執行個體  

MySQL刪除binlog日誌及日誌恢複資料

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.