本記事では、obshell-sdk-goを使用して初期化されていないクラスタにOBServerノードの設定情報を設定する方法について説明します。
説明
まず、obshell-sdk-go クイックスタート を参照し、obshell-sdk-goの使用方法を確認することをお勧めします。
注意事項
obshellが正常に実行されていることを確認してください。
リクエスト元のクライアントに対応するノードが、初期化されていないクラスタ内にあることを確認してください。
サンプルコード
タスクの同期的実行
タスクの非同期実行
package main
import (
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// クライアントインスタンスを作成します。ノードのアドレスは '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() {
// クライアントインスタンスを作成します。ノードのアドレスは '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)
}
}
関連ドキュメント
サーバーレベル構成のAPIインターフェースの説明については、サーバーレベル構成の設定を参照してください。
obshell-sdk-pythonを使用したAPIメソッドのリクエスト方法の紹介については、サーバー構成の設定を参照してください。