MySQLのrelaylog + SQL_THREAD増分リカバリのbinlog

まず、3308の例は、一日フルバックアップの終わりにGTID数のGTID数を実行された設定

ビューのbinlogファイル名xtrabackup日のフルバックアップ終了、ポイントのbinlogのPOS位置を、フルバックアップGTID番号の終了後:

[root@mgr01 backup]# cat /data/backup/db_3306_20190808/xtrabackup_info |grep binlog_pos
binlog_pos = filename 'mysql-bin.000003', position '29571', GTID of the last change 'bde7b592-b966-11e9-8c64-000c294f3e61:1-10296'

新しいMySQL 3308例の日にフルバックアップを復元するためのツールをxtrabackup使用します。

 innobackupex  --apply-log   /data/backup/db_3306_20190808/
 190808 10:31:56 completed OK!
innobackupex --defaults-file=/data/mysql/mysql3308/my3308.cnf --copy-back /data/backup/db_3306_20190808/
 190808 10:41:38 completed OK!

新しい3308の./data許可MySQLのユーザー権限にデータディレクトリの例:

 chown -R mysql.mysql  /data/mysql/mysql3308/data 

MySQLが正常に起動し起動します。

 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3308/my3308.cnf   &

MySQLの3306と3308は、そう3308インスタンスへのフルバックアップデータを復元するために、3308にGTID及び3308のインスタンスが同じではありません開始後の実際xtrabackupフルバックアップGTID番号ので、復元されたフルバックアップの終わりを生成、オープンGTIDあるので後に
スタート3308は、例えばログ電流にマスタクリアGTID 3308をリセットし、その後設定グローバルgtid_purged =「bde7b592-b966-11e9-8c64-000c294f3e61 :1から10296」; 3308は、実行インスタンスの数フルバックアップGTIDにさせGTIDの末尾の数字

(root@'mgr01':mysql3308.sock)[(none)]>reset master;
Query OK, 0 rows affected (0.04 sec)
(root@'mgr01':mysql3308.sock)[(none)]>show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

(root@'mgr01':mysql3308.sock)[(none)]>set global gtid_purged='bde7b592-b966-11e9-8c64-000c294f3e61:1-10296';
Query OK, 0 rows affected (0.06 sec)

(root@'mgr01':mysql3308.sock)[(none)]>show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: bde7b592-b966-11e9-8c64-000c294f3e61:1-10296

(root@'mgr01':mysql3308.sock)[(none)]>show global variables like "%Gtid%";
+----------------------------------+----------------------------------------------+
| Variable_name                    | Value                                        |
+----------------------------------+----------------------------------------------+
| binlog_gtid_simple_recovery      | ON                                           |
| enforce_gtid_consistency         | ON                                           |
| gtid_executed                    | bde7b592-b966-11e9-8c64-000c294f3e61:1-10296 |
| gtid_executed_compression_period | 1000                                         |
| gtid_mode                        | ON                                           |
| gtid_owned                       |                                              |
| gtid_purged                      | bde7b592-b966-11e9-8c64-000c294f3e61:1-10296 |
| session_track_gtids              | OFF                                          |
+----------------------------------+----------------------------------------------+

第二に、MySQLのrelaylog + SQL_THREAD増分リカバリのbinlogのデモを開始

3308スレーブ上の操作の例:
2.1変更コマンドは、スレーブ・インスタンスとしてMySQLそのものを伝えることです。

=「192.168.1.10」をMASTER_HOSTする随便変更マスタ。

全く使用IO_THREADは、などのホスト、パスワード、ユーザー、ように記入して自由ではないので、変更命令によって、スレーブ・インスタンスとしてMySQL自体を指示します。
そしてrelay.infoファイルを生成するステップによって。

CHANGE MASTER TO MASTER_HOST="192.168.1.10";

show slave status\G只要 
Auto_Position: 0 就行

3308あなたがrelaylogを装っ増分ビンログファイルが必要になり、2.2のインスタンスを閉じました。

cp 3306binglog 日志文件到 mysql3308的数据目录data下

[root@mgr01 data]# cp /data/mysql/mysql3306/binlog/* /data/mysql/mysql3308/data/

rm -rf  /data/mysql/mysql3308/data/mysql-bin.index
cd /data/mysql/mysql3308/data/
rename mysql-bin relay-bin mysql-bin.*

迷彩MySQLの権限を与えられた権限に対応し、リレーログファイル

2.3、削除して、リレー・log.indexファイルrelay.infoファイルを変更します。

移除掉 /data/mysql/mysql3308/data/ 下面的原有的relay-log.info  文件。
编辑 mgr01-relay-bin.index 文件,添加relay log文件名称到此文件,为的是告诉SQL_Thread还有哪些relaylog是需要执行的。
[root@mgr01 data]# cat mgr01-relay-bin.index 
./mgr01-relay-bin.000001
./relay-bin.000003
./relay-bin.000004
./relay-bin.000005
./relay-bin.000006

2.4は、ファイル名と場所posの位置から開始されたのSQL_THREAD増分relaylog 3308スレーブ・ファイルを伝えます。

[root@mgr01 backup]# cat /data/backup/db_3306_20190808/xtrabackup_info |grep binlog_pos
binlog_pos = filename 'mysql-bin.000003', position '29571', GTID of the last change 'bde7b592-b966-11e9-8c64-000c294f3e61:1-10296'
CHANGE MASTER TO   RELAY_LOG_FILE='relay-bin.000003',   RELAY_LOG_POS=29571;

このオプションは、3308インスタンススレーブにデータを復元するためにリレーログファイルの実装の最初からどのリレーログファイルと位置posポイント(つまり、日のバイナリログファイルの名前と場所のPOSポイントの3306のフルバックアップインスタンス端である)SQL_THREADを伝えるために使用されて
回復していますデータの完全バックアップに3308の後、次のステップは、迷彩良いリレーログファイルを使用することである(つまり、3306のインスタンスのフルバックアップ一日の終わりに、バイナリログファイル名と位置posのポイントである)+ SQL_THREADスレッドがスレーブにデータを復元するために実行リレーログファイルを開始します3308の例

START SLAVE   SQL_THREAD    UNTIL    MASTER_LOG_FILE = 'mysql-bin.000005', MASTER_LOG_POS =15018; ##此处的Gtid是drop table test1_event 前的最近的一个binlog的文件的pos位置点
 或者是:
 START SLAVE   SQL_THREAD  UNTIL   SQL_BEFORE_GTIDS='bde7b592-b966-11e9-8c64-000c294f3e61:10445'  ##此处的Gtid是drop table test1_event 前的最近的一个Gtid

第三に、道この回復の概要

長所:
このような停止スレーブとしてブレークポイント、人間の制御の進行状況を、回復することができ、またはエラーが発生した場合に、ブレークポイントを復元することができます。
多数binlogの場合において良好な性能は、それが回復をスピードアップすることができます。
いくつかのバージョンではより高速な増分複製速度、回復をスピードアップするためにマルチスレッドを利用することができます。
短所:
mysqldを終了する必要があります。
手動プロセスを実行することはmysqlbinlogは方法よりも複雑です。

次のように第四に、疑問を解決します

全体的に、バイナリログのQ1とリレーログ構造が同じであるかどうか?
:全体は、バイナリログとリレーログ構造と一致している
Q2のbinlogファイル名とリレーログファイル名は関係ないのですか?
回答:必ずしも関連しない
BINLOGへQ3は、手動でリレーログが不可能な変わったのか?
A:それは可能である
ものに関連したレコード情報をリレーログQ4?

第五に、増分プロセスSQL_THREAD高速リカバリの概要を活用します:

1.あなたは= 1 master_auto_position使用することはできません
最初のmysqlのは、彼が奴隷を知っていたようにしなければなりません2.
ログイン構築リレー、MySQLをオフにします。3.
4. RELAY_LOG_FILEを使用するには、マスター= ...の変更、
; RELAY_LOG_POS = ...
5.START SLAVE SQL_THREAD MASTER_LOG_FILE = 'XXX'まで XXXXX MASTER_LOG_POS =
またはSTART SLAVE SQL_THREAD SQL_BEFORE_GTIDS UNTIL = 'XXXXX -X'。

START SLAVE   SQL_THREAD    UNTIL    MASTER_LOG_FILE = 'mysql-bin.000005', MASTER_LOG_POS =15018; ##此处的Gtid是drop table test1_event 前的最近的一个binlog的文件的pos位置点
 或者是:
 START SLAVE   SQL_THREAD  UNTIL   SQL_BEFORE_GTIDS='bde7b592-b966-11e9-8c64-000c294f3e61:10445'  ##此处的Gtid是drop table test1_event 前的最近的一个Gtid

参考ボーエンアドレス:
次の回復方法の参考資料:
http://blog.itpub.net/29773961/viewspace-2143726/

おすすめ

転載: blog.51cto.com/wujianwei/2430493