このトピックでは、Java ソフトウェア開発キット (SDK) を使用して、グローバルテーブル内の物理テーブルの構成 (テーブルが書き込み可能かどうかなど) を更新する方法について説明します。
注意事項
プライマリセカンダリモードで複数のレプリカが書き込み可能である場合、データ競合が発生します。この構成は、プライマリセカンダリのスイッチオーバーを実行する場合にのみ変更してください。
更新シナリオ
アクティブ・パッシブモード:アクティブ・パッシブスイッチオーバー中に、特定のリージョンにあるレプリカを書き込み可能に更新するか、またはプライマリ候補として設定します。
マルチアクティブモード:特定のリージョンにあるレプリカを読み取り専用または書き込み可能に更新します。
前提条件
メソッドの説明
public UpdateGlobalTableResponse updateGlobalTable(UpdateGlobalTableRequest request) throws TableStoreException, ClientException例
private static void updateGlobalTableExample(SyncClient client) {
// 更新対象の物理テーブルの構成を構築します。
GlobalTableTypes.UpdatePhyTable phyTable = new GlobalTableTypes.UpdatePhyTable(
// レプリカが配置されているリージョンの ID。
"cn-shanghai",
// レプリカが所属するインスタンスの名前。
"instance-replica-sh",
// レプリカテーブルの名前。
"i-dest-test"
);
// アクティブ・パッシブモードでのスイッチオーバー中は、必要に応じて writable および primaryEligible を変更します。
// マルチアクティブモードでレプリカの読み取り可否を変更する場合は、writable のみを変更します。
phyTable.setWritable(true); // このレプリカを書き込み可能に設定します。
phyTable.setPrimaryEligible(true); // このレプリカをプライマリ候補(アクティブ・パッシブスイッチオーバー用)として許可します。
// リクエストを構築します。
UpdateGlobalTableRequest request = new UpdateGlobalTableRequest(
// グローバルテーブルの ID。
"gt-ee1b54db-f5d9-43f3-ad36-ec44********",
// グローバルテーブルの名前。
"t-gt-test-1",
phyTable
);
// リクエストを送信します。
UpdateGlobalTableResponse response = client.updateGlobalTable(request);
System.out.println("更新が完了しました。リクエスト ID:" + response.getRequestId());
}