本記事では、obshell-sdk-goを使用して指定されたテナントレプリカのプロパティを変更する方法について説明します。一括変更も可能です。
説明
まずは obshell-sdk-goクイックスタート を参照し、obshell-sdk-goの使い方を確認することを推奨します。
注意事項
obshellが正常に実行されていることを確認してください。
テナントが存在し、状態がNORMALであることを確認してください。
リクエストのクライアントに対応するノードは、初期化済みのクラスタ内にある必要があります。
サンプルコード
タスクの同期実行
package main
import (
"fmt"
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// クライアントインスタンスを作成します。ノードアドレスは '10.10.10.1'、ポートは2886です。
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
if err != nil {
fmt.Print(err)
return
}
req := client.V1().NewModifyTenantReplicasRequest("t1", []v1.ZoneParam{
{
Name: "zone2",
UnitConfigName: "s2",
},
})
if _, err := client.V1().ModifyTenantReplicasSyncWithRequest(req); err != nil {
fmt.Print(err)
return
}
}
タブ タスクの非同期実行
package main
import (
"fmt"
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// Create a client instance with the node address set to '10.10.10.1' and the port set to 2886.
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
if err != nil {
fmt.Print(err)
return
}
req := client.V1().NewModifyTenantReplicasRequest("t1", []v1.ZoneParam{
{
Name: "zone2",
UnitConfigName: "s2",
},
})
dag, err := client.V1().ModifyTenantReplicasWithRequest(req)
if err != nil {
fmt.Print(err)
return
}
// Wait for the task to complete successfully.
if dag != nil && dag.GenericDTO != nil {
if _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
fmt.Print(err)
return
}
}
}
関連ドキュメント
テナントレプリカを変更するAPIインターフェースの説明については、テナントレプリカの変更を参照してください。
obshell-sdk-pythonを使用したAPIメソッドのリクエスト方法の紹介については、テナントレプリカの変更を参照してください。