innobakcupexベースのインスタンス間不完全なリカバリ手順
MySQLは、ホット・スペア・ベースで、既存のインスタンスの完全または不完全なリカバリを実現します.従来のインスタンスにDRBDやMHAなどが配備されている場合が多く、この場合、既存のインスタンスに基づいたリカバリは、元の障害現場やアーキテクチャに影響し、インスタンス間リカバリによって損失や異常データをリカバリすることができます.また、インスタンス・レベル・データベースの移行は、インスタンス全体に基づいて実行できます.次に、インスタンス間での不完全なリカバリに基づいて説明します.
1、主要ステップa、新規インスタンスbの準備、ホット・スペアに基づくprepareおよびrecoverc、完全なバックアップを新規インスタンスにコピー(ホスト間で新規ホストにコピーすべき場合)d、新規インスタンスeの起動、必要に応じてbinlogを障害点fにリカバリ、検証結果
2、実例にまたがる不完全なリカバリのプレゼンテーション
1、主要ステップa、新規インスタンスbの準備、ホット・スペアに基づくprepareおよびrecoverc、完全なバックアップを新規インスタンスにコピー(ホスト間で新規ホストにコピーすべき場合)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 |
+----------------------------+-----------+------------------+-----------+-----------------------+---------------------+