RDS for MySQL の現在のレプリケーションエラーのスキップ
リードレプリカが反応を停止する原因となるエラーがデータの整合性に影響しない場合、リードレプリカでそのエラーをスキップすることができます。
注記
まず、そのエラーを安全にスキップできることを確認します。MySQL ユーティリティで、リードレプリカに接続して以下の MySQL コマンドを実行します。
SHOW REPLICA STATUS\G
返される値の詳細については、MySQL ドキュメント
MySQL の旧バージョンは SHOW SLAVE STATUS
ではなく SHOW REPLICA STATUS
を使用していました。8.0.23 より前の MySQL バージョンを使用している場合は、SHOW SLAVE STATUS
を使用します。
リードレプリカのエラーは、次の方法でスキップできます。
mysql.rds_skip_repl_error の手順を呼び出します。
Amazon RDS では、リードレプリカのエラーをスキップするために呼び出すことができるストアドプロシージャを提供しています。まず、リードレプリカに接続してから以下のように適切なコマンドを発行します。詳細については、「MySQL データベースエンジンを実行している DB インスタンスへの接続」を参照してください。
エラーをスキップするには、次のコマンドを実行します。
CALL mysql.rds_skip_repl_error;
このコマンドは、出典 DB インスタンス、またはレプリケーションエラーが発生していないリードレプリカでは実行しても効果はありません。
mysql.rds_skip_repl_error
をサポートする MySQL のバージョンなどの詳細については、「mysql.rds_skip_repl_error」を参照してください。
重要
mysql.rds_skip_repl_error
を呼び出そうとして次のエラーが発生した場合、ERROR 1305 (42000): PROCEDURE
mysql.rds_skip_repl_error does not exist
、MySQL DB インスタンスを最新のマイナーバージョンまたはmysql.rds_skip_repl_errorにリストされている最小のマイナーバージョンの1つにアップグレードします。
slave_skip_errors パラメータの設定
1 つ以上のエラーをスキップするには、slave_skip_errors
リードレプリカに静的パラメータを設定します。このパラメータでは、1 つ以上の特定のレプリケーションエラーコードをスキップするように設定できます。現在、このパラメータは RDS for MySQL 5.7 DB インスタンスに対してのみ設定できます。パラメータの設定変更後に新しい設定を有効にするには、DB インスタンスを必ず再起動してください。これらのパラメータ設定の詳細については、MySQL のドキュメント
このパラメータは別の DB パラメータグループに設定することをお勧めします。この DB パラメータグループは、エラーをスキップする必要があるリードレプリカにのみ関連付けることができます。このベストプラクティスに従うことで、他の DB インスタンスやリードレプリカに与える潜在的な影響が軽減されます。
重要
このパラメータにデフォルト以外の値を設定すると、レプリケーションの不整合につながることがあります。問題を解決するための他のオプションを使い果たし、リードレプリカのデータに潜在的な影響が確実である場合にのみ、このパラメータをデフォルト以外の値に設定してください。