すべてのプロダクト
Search
ドキュメントセンター

Tablestore:グローバルテーブルの構成を更新する

最終更新日:Feb 06, 2026

このトピックでは、Java ソフトウェア開発キット (SDK) を使用して、グローバルテーブル内の物理テーブルの構成 (テーブルが書き込み可能かどうかなど) を更新する方法について説明します。

注意事項

プライマリセカンダリモードで複数のレプリカが書き込み可能である場合、データ競合が発生します。この構成は、プライマリセカンダリのスイッチオーバーを実行する場合にのみ変更してください。

更新シナリオ

  • アクティブ・パッシブモード:アクティブ・パッシブスイッチオーバー中に、特定のリージョンにあるレプリカを書き込み可能に更新するか、またはプライマリ候補として設定します。

  • マルチアクティブモード:特定のリージョンにあるレプリカを読み取り専用または書き込み可能に更新します。

前提条件

クライアントの初期化

メソッドの説明

public UpdateGlobalTableResponse updateGlobalTable(UpdateGlobalTableRequest request) throws TableStoreException, ClientException

UpdateGlobalTableRequest のパラメーター

  • globalTableId(必須)String:グローバルテーブルの ID です。

    説明

    グローバルテーブル ID がない場合は、`DescribeTable` 操作を呼び出してテーブルレプリカの詳細をクエリできます。テーブルレプリカがグローバルテーブルの一部である場合、`DescribeTable` 操作からの応答にはグローバルテーブル ID が含まれます。

  • globalTableName(必須)String:グローバルテーブルの名前です。これはベーステーブルの名前と一致する必要があります。

  • phyTable(必須)GlobalTableTypes.UpdatePhyTable:更新対象の物理テーブル情報です。以下のパラメーターを含みます。

    重要

    構成を更新するには、`writable` または `primaryEligible` プロパティの少なくとも 1 つを変更する必要があります。

    名前

    説明

    regionId (必須)

    文字列

    変更対象の物理テーブルが配置されているリージョンの ID。

    instanceName (必須)

    文字列

    変更対象の物理テーブルが配置されているインスタンスの名前。

    tableName (必須)

    文字列

    変更対象の物理テーブルの名前。

    writable (任意)

    ブール値

    構成が書き込み可能かどうかを指定します。

    primaryEligible (任意)

    ブール値

    プライマリセカンダリモードでのフェールオーバーにおいて、構成をプライマリ候補として設定するかどうかを指定します。

    プライマリセカンダリモードでは、デフォルトで、プライマリ以外のすべてのテーブルに対する書き込み操作が無効化されます。プライマリセカンダリのスイッチオーバー時には、セカンダリテーブルをプライマリ候補としてマークする必要があります。

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());
}