本記事では、obshell-sdk-goを使用して初期化されていないクラスタからノードを削除する方法について説明します。
説明
まずは obshell-sdk-goクイックスタート を参照し、obshell-sdk-goの使用方法を確認することを推奨します。
注意事項
obshellが正常に実行されていることを確認してください。
削除するノードが初期化されていないクラスタ内にあることを確認してください。
サンプルコード
以下のコードは、ノード10.10.10.2:2886をクラスタから削除するために使用されます。
タスクの同期実行
package main
import (
"github.com/oceanbase/obshell-sdk-go/services"
)
func main() {
// クライアントインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
client, err := services.NewClient("10.10.10.1", 2886)
if err != nil {
panic(err)
}
// '10.10.10.1'が存在するクラスタからノード'10.10.10.2:2886'を削除します。
req := client.V1().NewRemoveRequest("10.10.10.2", 2886)
if _, err = client.V1().RemoveSyncWithRequest(req); err != nil {
panic(err)
}
}
タブ タスクの非同期実行
package main
import (
"github.com/oceanbase/obshell-sdk-go/services"
)
func main() {
// clientインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
client, err := services.NewClient("10.10.10.1", 2886)
if err != nil {
panic(err)
}
// '10.10.10.1'が存在するクラスタからノード'10.10.10.2:2886'を削除します。
req := client.V1().NewRemoveRequest("10.10.10.2", 2886)
dag, err := client.V1().RemoveSyncWithRequest(req)
if err != nil {
panic(err)
}
// タスクの成功を待機します
if dag != nil && dag.GenericDTO != nil {
if _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
fmt.Print(err)
return
}
}
}
関連ドキュメント
クラスタ初期化前にノードを追加するAPIインターフェースの説明については、クラスタ初期化前にノードを削除するを参照してください。
obshell-sdk-pythonを使用したAPIメソッドのリクエストについては、クラスタ初期化前にノードを削除するを参照してください。