このトピックでは、ApsaraDB RDS for PostgreSQLインスタンスのデータレプリケーションモードをクエリおよび変更して、RDSインスタンスのパフォーマンスまたは可用性を向上させる方法について説明します。
前提条件
RDSインスタンスは、クラウドディスクでRDS High-availability Editionを実行します。
データレプリケーションモードパラメーターを半同期に設定する場合は、RDSインスタンスのマイナーエンジンバージョンが20220228以降であることを確認します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
背景情報
ApsaraDB RDS for PostgreSQLでは、RDS High-availability Editionを実行し、クラウドディスクを使用するRDSインスタンスのデータレプリケーションモードを変更できます。 これにより、データベースの可用性とパフォーマンスに関する要件に基づいて、さまざまなレベルのインスタンス保護を実装できます。
次の表に、データ複製モードと保護レベルの間のマッピングを示します。
データレプリケーションモード | 保護レベル | 説明 |
非同期 | 最適なパフォーマンス | これはデフォルトの保護レベルです。 この保護レベルは最高の応答速度を提供しますが、中程度のデータ永続性。 |
同期 | 最適な保護 | この保護レベルは、高いデータ持続性を実現しますが、応答速度は中程度です。 |
準同期 | High availability | この保護レベルは、応答速度とデータ持続性のバランスを取ります。 |
データレプリケーションモードの照会
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[サービスの可用性] をクリックします。
表示されるページの [可用性情報] セクションで、[データレプリケーションモード] パラメーターの値を確認します。
データレプリケーションモードの変更
ApsaraDB RDSコンソールでのデータレプリケーションモードの変更
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[サービスの可用性] をクリックします。
表示されるページで、[データレプリケーションモードの変更] をクリックします。
Data Replication Modeパラメーターを設定します。
重要データレプリケーションモードパラメーターを半同期に設定する場合は、RDSインスタンスのマイナーエンジンバージョンが20220228以降であることを確認します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
[OK] をクリックします。
パラメーターの変更によるデータレプリケーションモードの変更
データレプリケーションモードを変更するには、synchronous_commit、rds_sync_replication_timeout、synchronous_standby_namesのパラメーターを変更します。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[パラメーター] をクリックします。
[編集可能なパラメーター] タブで、synchronous_commit、rds_sync_replication_timeout、およびsynchronous_standby_namesパラメーターを見つけます。
各パラメータの [実行中のパラメータ値] 列で、元の値の横にあるアイコンをクリックします。 表示されるダイアログボックスで、新しい値を入力し、[OK] をクリックします。
次の表に、各データレプリケーションモードで設定する必要があるパラメーターを示します。
データレプリケーションモード
パラメーター設定
非同期
synchronous_commit=off
説明synchronous_commitパラメーターをoffに設定した場合、rds_sync_replication_timeoutパラメーターは無効です。
同期
synchronous_commit=remote_write
rds_sync_replication_timeout=0
synchronous_standby_names='standby1'
重要synchronous_standby_namesパラメーターのデフォルト値はstandby1です。 自己管理セカンダリRDSインスタンスがある場合、自己管理セカンダリRDSインスタンスにstandby1という名前を付けないことを推奨します。 自己管理セカンダリRDSインスタンスにstandby1という名前を付けた場合、RDSインスタンスは同期モードまたは半同期モードで自己管理セカンダリRDSインスタンスにデータをレプリケートできます。 その結果、プライマリ /セカンダリの切り替え時にデータ損失が発生する可能性があります。
準同期
説明データレプリケーションモードパラメーターを半同期に設定する場合は、RDSインスタンスのマイナーエンジンバージョンが20220228以降であることを確認します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
synchronous_commit=remote_write
rds_sync_replication_timeout > 0
説明rds_sync_replication_timeoutパラメーターは、データ同期タイムアウト期間をミリ秒単位で指定します。 このパラメーターの値は0〜300000の範囲です。 このパラメーターを500に設定することを推奨します。 単位:ミリ秒。 同期操作がタイムアウトした場合、保護レベルは、RDSインスタンスを非同期モードで実行できる最適なパフォーマンス保護レベルに低下します。 データが同期された後、保護レベルは高可用性保護レベルに引き上げられ、RDSインスタンスは半同期モードで実行されます。
synchronous_standby_names='standby1'
重要synchronous_standby_namesパラメーターのデフォルト値はstandby1です。 自己管理セカンダリRDSインスタンスがある場合、自己管理セカンダリRDSインスタンスにstandby1という名前を付けないことを推奨します。 自己管理セカンダリRDSインスタンスにstandby1という名前を付けた場合、RDSインスタンスは同期モードまたは半同期モードで自己管理セカンダリRDSインスタンスにデータをレプリケートできます。 その結果、プライマリ /セカンダリの切り替え時にデータ損失が発生する可能性があります。
[変更の適用] をクリックします。