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(必选) |
|
要移除的副本列表。每个元素通过地域和实例定位一个副本。 |
副本位置
removals[] 中每个元素的类型为 Removal,包含以下参数。
|
名称 |
类型 |
说明 |
|
regionId(必选) |
String |
要移除的副本所在地域的 ID,例如 |
|
instanceName(必选) |
String |
要移除的副本所属实例的名称。 |
返回值
UnbindGlobalTableResponse 包含以下与移除结果直接相关的字段。
|
字段 |
类型 |
说明 |
|
globalTableId |
String |
通过 |
|
status |
GlobalTableStatus |
通过 |