全部產品
Search
文件中心

Tablestore:綁定全域表

更新時間:Jan 09, 2026

本文介紹如何通過 Java SDK 為全域表增加一個或多個分布位置。

注意事項

綁定操作返回成功後,系統會非同步綁定新的副本並同步資料,可通過調用DescribeGlobalTable查看全域表的目前狀態。當返回狀態為active時,表示全域表新副本綁定成功。

前提條件

初始化用戶端

方法說明

public BindGlobalTableResponse bindGlobalTable(BindGlobalTableRequest request) throws TableStoreException, ClientException

BindGlobalTableRequest參數說明

  • globalTableId(必選)String:全域表ID。

    說明

    如果未記錄全域表ID,可通過調用DescribeTable操作查詢表副本的詳細資料。當表副本屬於全域表時,DescribeTable操作的返回結果中會包含對應全域表ID。

  • globalTableName(必選)String:全域表名稱,必須與基礎資料表名稱相同。

  • placements(必選)List<Placement>:新增的分布位置配置列表,包含以下參數:

    名稱

    類型

    說明

    regionId(必選)

    String

    地區ID。

    instanceName(必選)

    String

    執行個體名稱。

    writable(必選)

    boolean

    是否可寫。預設值為false。當使用主備模式時,請保持預設配置。

樣本

private static void bindGlobalTableExample(SyncClient client) {
    // 構造請求
    BindGlobalTableRequest request = new BindGlobalTableRequest(
                // 全域表 ID
                "gt-ee1b54db-f5d9-43f3-ad36-ec44********",
                // 全域表名稱
                "my-global-table"
    ); 

    // 構建 Placement 列表(至少有一個副本配置)
    List<GlobalTableTypes.Placement> placements = new ArrayList<>();

    // 樣本:添加華東1(杭州)地區的副本
    GlobalTableTypes.Placement hangzhouReplica = new GlobalTableTypes.Placement(
                // 副本所在地區 ID
                "cn-hangzhou", 
                // 副本所屬執行個體名稱
                "instance-replica-hz",
                //主備模式下副本表不可寫(預設值 false)
                false
    );

    // 樣本:添加華東2(上海)地區的副本
    GlobalTableTypes.Placement shanghaiReplica = new GlobalTableTypes.Placement(
                // 副本所在地區 ID
                "cn-shanghai",  
                // 副本所屬執行個體名稱
                "instance-replica-sh", 
                // 主備模式下副本表不可寫(預設值 false)
                false
    );

    placements.add(hangzhouReplica);
    placements.add(shanghaiReplica);
    request.setPlacements(placements);

    // 發起請求
    BindGlobalTableResponse response = client.bindGlobalTable(request);
    System.out.println("Bind succeeded. Request ID: " + response.getRequestId());
}