ホームページ  >  記事  >  データベース  >  MySQL - レプリケーションの容量、トラブルシューティング、マルチスレッドのバイナリ ログ送信の詳細な説明

MySQL - レプリケーションの容量、トラブルシューティング、マルチスレッドのバイナリ ログ送信の詳細な説明

黄舟
黄舟オリジナル
2017-03-14 16:45:391145ブラウズ

1. レプリケーション容量

レプリケーションを一定期間一時停止し (M)、その後再開し、スレーブがマスター (N) と同じレベルに達するまでにかかる時間を観察します。
レプリケーション容量 = N:M
容量を 3 倍以上、つまり 1:3 に保つことをお勧めします

2. レプリケーション障害のトラブルシューティング

1) ほとんどのレプリケーション エラーは次の原因で発生します。ログエラー。

2) メインログとリレーログの両方が間違っている可能性があります。それらを識別する方法:

#mysqlbinlog MASTER_BINLOG_FILE > /dev/null
#mysqlbinlog SLAVE_BINLOG_FILE > /dev/null

2. ログエラーをスキップする

1) 多くの問題がログエラーを引き起こす可能性があります。場合によっては、ログ自体にはエラーがなくても、SQL 解析中にエラーが発生することがあります (たとえば、マスターとスレーブのデータは本質的に一貫性がありません)。ログ エラーを手動でスキップすることもできますが、そうするとマスター データとスレーブ データの間で不整合が発生する可能性があります。

2) メインログエラーの場合は、スレーブで実行できます(エラーが複数ある場合は複数回実行される可能性があります)。

mysql> stop slave;
mysql> set global sql_slave_skip_counter=1;
mysql> start slave;

3) リレー ログにエラーがある場合は、スレーブ上で show smile status G コマンドを使用してレプリケーション ステータスを確認し、ログ情報に基づいてエラー ログをスキップできます:

mysql> stop slave;
mysql> charge master to
	-> master_log_file=&#39;<Relay_Master_Log_file>&#39;,
	-> master_log_pos=<Exec_Master_Log_Pos>;
mysql> start slave;

4)レプリケーションは GTID モードで動作し、

mysql> stop slave;
mysql> set gtid_next=&#39;uuid:nexti_d&#39;;
mysql> begin;
mysql> commit;
mysql> set gtid_next=&#39;automatic&#39;;
mysql> start slave;

が必要です。 注: uuid:nextid 例: '0470a4fd-93d1-11e3-86bf-4ec905bea80f:17'。


3. マルチスレッドバイナリログ送信

1. MySQL 5.6 はマルチスレッドバイナリログ送信のサポートを開始します。

2. GTID モードでのみ動作します。

3. 異なるライブラリ上で実行される操作のみ、マルチスレッド送信を使用できます。同じライブラリ内の異なるテーブルに対する操作は、引き続き単一スレッドでのみ送信できます。

#vi /etc/my.cnf
[mysqld]
slave_parallel-workers=N (默认值为0,不开启)

その他のコマンド:

mysql> set sql_log_bin=OFF; (关闭二进制日志)
mysql> set sql_log_bin=ON; (开启二进制日志)

以上がMySQL - レプリケーションの容量、トラブルシューティング、マルチスレッドのバイナリ ログ送信の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。