本記事では、obshell-sdk-goを使用して未初期化のクラスタのOBServerノードの設定情報を設定する方法について説明します。
説明
obshell-sdk-goのクイックスタートの内容を確認することをお勧めします。
考察事項
obshellが正常に動作していることを確認してください。
リクエストするクライアントに対応するノードが初期化されていないクラスタにあることを確認してください。
サンプルコード
タスクの同期実行
タスクの非同期実行
package main
import (
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// clientインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
// クラスタ内のroot@sysパスワードは'****'です。
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "***")
if err != nil {
panic(err)
}
configs := map[string]string{
"datafile_size": "24G", "log_disk_size": "24G",
"cpu_count": "16", "memory_limit": "16G", "system_memory": "8G",
"enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
// クラスタ内のすべてのOBServerノードの設定をconfigsに設定します。
req := client.V1().NewConfigObserverRequest(configs, v1.SCOPE_GLOBAL)
if _, err = client.V1().ConfigObserverSyncWithRequest(req); err != nil {
panic(err)
}
}
package main
import (
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// client インスタンスを作成します。ノードアドレスは '10.10.10.1'、ポートは 2886 です。
// クラスタの root@sys パスワードは '****' です。
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "***")
if err != nil {
panic(err)
}
configs := map[string]string{
"datafile_size": "24G", "log_disk_size": "24G",
"cpu_count": "16", "memory_limit": "16G", "system_memory": "8G",
"enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
// クラスタ内のすべての OBServer ノードの設定を configs に設定します。
req := client.V1().NewConfigObserverRequest(configs, v1.SCOPE_GLOBAL)
dag, err := client.V1().ConfigObserverWithRequest(req)
if err != nil {
panic(err)
}
// タスクが成功するのを待ちます
if _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
panic(err)
}
}