移除全局表副本

更新时间:
复制 MD 格式

Java SDK 可将一个或多个物理表副本从全局表中移除,移除后副本表及其数据仍会保留。

前提条件

安装Tablestore Java SDK并初始化客户端。移除全局表副本需使用 5.17.7 及以上版本。

功能说明

调用 unbindGlobalTable 方法,将一个或多个物理表副本从全局表中移除。该操作仅解除物理表与全局表的关联,不会删除物理表及其数据。如需删除物理表,请在移除完成后调用 deleteTable 方法。

public UnbindGlobalTableResponse unbindGlobalTable(UnbindGlobalTableRequest request) throws TableStoreException, ClientException
说明

unbindGlobalTable 是异步接口。请求成功仅表示移除任务已发起,此时返回状态为 RE_CONF。调用查询全局表信息,当 status 变为 ACTIVE 时,副本移除完成。

以下示例从全局表中移除北京地域的一个副本。

String globalTableId = "gt-01234567-89ab-cdef-0123-456789abcdef";
String globalTableName = "example_table";

UnbindGlobalTableRequest request = new UnbindGlobalTableRequest(
        globalTableId, globalTableName);
request.addRemoval(new GlobalTableTypes.Removal(
        "cn-beijing", "example-replica-instance"));

UnbindGlobalTableResponse response = client.unbindGlobalTable(request);
System.out.println("Global table ID: " + response.getGlobalTableId());
System.out.println("Global table status: " + response.getStatus());

参数说明

UnbindGlobalTableRequest 包含以下参数。

名称

类型

说明

globalTableId(必选)

String

全局表 ID。未记录 ID 时,可以按物理表定位全局表,具体用法请参见查询全局表信息

globalTableName(必选)

String

全局表名称,必须与基础表名称相同。

removals(必选)

List<Removal>

要移除的副本列表。每个元素通过地域和实例定位一个副本。

副本位置

removals[] 中每个元素的类型为 Removal,包含以下参数。

名称

类型

说明

regionId(必选)

String

要移除的副本所在地域的 ID,例如 cn-beijing

instanceName(必选)

String

要移除的副本所属实例的名称。

返回值

UnbindGlobalTableResponse 包含以下与移除结果直接相关的字段。

字段

类型

说明

globalTableId

String

通过 getGlobalTableId() 获取全局表 ID。该值与请求中的 globalTableId 相同。

status

GlobalTableStatus

通过 getStatus() 获取当前状态。移除任务发起后返回 RE_CONF,可调用 describeGlobalTable 查询状态,直到状态变为 ACTIVE