RDB:外部レプリケーション
仕様
ゾーンやリージョンをまたいだレプリケーションや、ニフクラ外部のDBサーバーとのレプリケーションができます。リードレプリカとは別機能です。
DBエンジン | MySQL |
構成 |
|
ステータス | 稼働中 |
同期/非同期 | 非同期 |
利用可能ネットワーク |
|
利用可能構成 |
|
その他 | リードレプリカでないこと |
プライベートLAN経由でセグメントをまたいで外部レプリケーションを行う場合は、マスターとなるDBサーバーと外部レプリケーション設定済DBサーバーの双方にスタティックルーティングの設定が必要です。
スタティックルーティング設定は、技術仕様/制限値:ネットワーク・セキュリティを確認してください。マスターとなるDBサーバーの、バックアップ保持期間は、1以上にしてください。
- マスターとなるDBサーバーがニフクラRDBのDBサーバー以外の場合、バイナリログが出力されている必要があります。
外部レプリケーションするDBサーバー間で、MySQLのserver_idは異なる値にしてください。
ニフクラRDBのDBサーバーのserver_idは以下のSQLで確認できます。SHOW VARIABLES LIKE 'server_id'
以下機能はサポートしていません。
- SSL接続を利用したレプリケーション
- グローバルトランザクションIDを使用したレプリケーション
機能一覧
外部レプリケーション設定
外部レプリケーション情報を設定します。
各設定値については、マスターとなるDBサーバーを参照し、適当な値を設定してください。
マスターとなるDBサーバーのDBファイアウォールに、外部レプリケーション接続元IPアドレス(外部レプリケーション設定済DBサーバーのIPアドレス)を追加してください。外部レプリケーション接続元IPアドレスは、DB詳細画面で確認できます。
外部レプリケーション開始
レプリケーションの開始処理を行えます。
外部レプリケーション中(開始中、停止中)のDBサーバーを再起動した場合、自動的にレプリケーションが再開されます。
- 以下状況で作成されたサーバーは、外部レプリケーション情報を引き継ぎません。
- 外部レプリケーション中のDBサーバーを元にポイントインタイムリカバリーを実行した場合。
- 外部レプリケーション中のDBサーバーのDBスナップショットからDBサーバーを作成した場合。
外部レプリケーション停止
レプリケーションの停止処理ができます。
レプリケーション停止中のDBサーバーを再起動しても、レプリケーションは自動的に開始されません。
外部レプリケーション解除
レプリケーションの解除処理ができます。
外部レプリケーションを停止をせずに解除を行った場合、停止処理と解除処理の両方が行われます。
外部レプリケーション操作ステータス
外部レプリケーション操作(設定/開始/停止/解除)のステータスは、コントロールパネルまたはDescribeDBInstance APIで確認できます。
コントロールパネルでの表示 | 説明 | アイコン |
---|---|---|
set | 外部レプリケーションが設定されています。 | |
started | 外部レプリケーション中です。 | |
stopped | 外部レプリケーションが停止しています。 | |
set-error | 外部レプリケーションの設定に失敗しています。 | |
start-error | 外部レプリケーションの開始に失敗しています。 | |
stop-error | 外部レプリケーションの停止に失敗しています。 | |
reset-error | 外部レプリケーションの解除に失敗しています。 |
上記は、外部レプリケーション操作ステータスであり、レプリケーションの状態を表すものではありません。
レプリケーションの状態については、イベントや注意事項にあるSQLの結果を参照してください。
注意事項
- 外部レプリケーションを設定したDBサーバーを読み取り専用にするには、DBパラメーターグループのread_onlyを1に変更してください。
- レプリケーション遅延がおきやすい場合、レプリケーションに必要なバイナリログが削除されることを防ぐためにマスターとなるDBサーバーのバイナリログ保持期間を長く設定してください。
- レプリケーションの遅延など、レプリケーションの状態は、以下のSQLで確認してください。
MySQL 8.0以降の場合
SHOW REPLICA STATUS
MySQL 5.6、5.7の場合
SHOW SLAVE STATUS
- 外部レプリケーション開始前または停止後に、以下のSQLを実行した場合、外部レプリケーション解除が行われます。
MySQL 8.0以降の場合
RESET REPLICA ALL
MySQL 5.6、5.7の場合
RESET SLAVE ALL