Go SDK 可从全局表中移除一个或多个跨地域副本。
前提条件
安装Tablestore Go SDK并初始化客户端。全局表功能需要 1.9.0 及以上版本,建议使用最新版本。
功能说明
调用 UnbindGlobalTable 方法从全局表中移除一个或多个副本。移除操作只解除物理表与全局表的关联并停止数据同步,不会删除物理表及其已有数据。如果移除后只剩一个成员,全局表仍会保留。
func (client *TableStoreClient) UnbindGlobalTable(request *UnbindGlobalTableRequest) (*UnbindGlobalTableResponse, error)
说明
UnbindGlobalTable 是异步接口。请求成功仅表示移除任务已发起。调用 DescribeGlobalTable 查询状态,当全局表状态恢复为 active 且返回结果中不再包含目标副本时,副本移除完成。
重要
被移除的物理表仍保留在原实例中。再次向同一实例添加同名副本前,请先确认不再需要其中的数据,然后调用 DeleteTable 删除该物理表,否则添加副本会因同名数据表已存在而失败。
以下示例从全局表中移除一个副本。
request := &tablestore.UnbindGlobalTableRequest{
GlobalTableId: "gt-01234567-89ab-cdef-0123-456789abcdef",
GlobalTableName: "example_table",
Removals: []*tablestore.Removal{
{
RegionId: "cn-beijing",
InstanceName: "replica-instance",
},
},
}
response, err := client.UnbindGlobalTable(request)
if err != nil {
log.Fatalf("UnbindGlobalTable failed: %v", err)
}
fmt.Println("RequestId:", response.RequestId)
参数说明
UnbindGlobalTableRequest 包含以下参数。
|
名称 |
类型 |
说明 |
|
GlobalTableId(必选) |
string |
全局表 ID。创建全局表时由 |
|
GlobalTableName(必选) |
string |
全局表名称,必须与基础表名称相同。 |
|
Removals(必选) |
[]*Removal |
要移除的副本位置列表。 |
副本位置
Removals[] 中每个元素的类型为 *Removal,包含以下参数。
|
名称 |
类型 |
说明 |
|
RegionId(必选) |
string |
要移除的副本所在地域 ID。 |
|
InstanceName(必选) |
string |
要移除的副本所在实例名称。 |
该文章对您有帮助吗?