移除全局表副本

更新时间:
复制 MD 格式

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。创建全局表时由 CreateGlobalTableResponse.GlobalTableId 返回。

GlobalTableName(必选)

string

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

Removals(必选)

[]*Removal

要移除的副本位置列表。

副本位置

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

名称

类型

说明

RegionId(必选)

string

要移除的副本所在地域 ID。

InstanceName(必选)

string

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