OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    OceanBaseクラスタのデプロイ

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    前提条件
    用語解説
    デプロイモード
    APIによるデプロイ
    ステップ1:obshellを起動する
    ステップ2:Single AgentがMaster Agentになる
    ステップ3:Single AgentをFollower Agentにする
    ステップ4:クラスタレベルの設定を設定する
    ステップ5:サーバー設定を設定する
    ステップ6:クラスタの初期化
    ステップ7:OceanBaseクラスタへの接続
    全コード例
    コマンドラインによるデプロイメント
    ステップ1:obshellを起動する
    ステップ2:Single AgentをMaster Agentにし、サーバー設定を設定する
    ステップ3:Single AgentをFollower Agentにし、サーバー設定を設定する
    ステップ4:クラスタレベルの設定を設定し、クラスタを初期化する
    ステップ5:OceanBaseクラスタに接続する

    折りたたみ

    シェア

    obshellを使用したOceanBaseクラスタのデプロイには、2つの方法があります:

    • API呼び出しによるデプロイ

    • obshellコマンドによるデプロイ

    前提条件

    OceanBaseデータベースをデプロイする前に、以下の情報を確認してください:

    • マシンがソフトウェアおよびハードウェア要件を満たしていること。詳細については、ソフトウェアおよびハードウェア要件を参照してください。

    • 本番環境では、環境および設定のチェックが必要です。具体的な操作については、デプロイ前の設定の章を参照してください。

    用語解説

    • Single Agent:obshell Agentの一種であり、obshellの初期アイデンティティです。joinコマンドを使用してSingle AgentからMaster AgentまたはFollower Agentに変更できます。

    • Master Agent:obshell Agentの一種です。initコマンドを使用してMaster AgentからCluster Agentに変更できます。removeコマンドを使用してMaster AgentからSingle Agentに変更できます。

    • Follower Agent:obshell Agentの一種です。initコマンドを使用してFollower AgentからCluster Agentに変更できます。removeコマンドを使用してFollower AgentからSingle Agentに変更できます。

    • Cluster Agent:obshell Agentの一種です。

    • OceanBaseクラスタの初期化(init)は中央集権的なタスクであり、この段階ではobshell AgentにはMaster AgentとFollower Agentの2種類のアイデンティティが存在します。initタスクはMaster Agentがすべてのobshellをリードして完了します。init完了後、クラスタは非中央集権化され、すべてのobshellは単一のアイデンティティ(Cluster Agent)を持つようになります。

    アイデンティティ変換の状態遷移図は以下のとおりです:

    アイデンティティ変換

    デプロイモード

    本記事では、3レプリカのデプロイモードを採用し、3台のマシンを使用します。実際の状況に応じて適切なデプロイプランを選択できます。本記事で使用する3台のマシンの構成は以下のとおりです:

    ロール マシン 備考
    OBServerノード 10.10.10.1 OceanBaseデータベースzone1、init完了前はMaster Agent
    OBServerノード 10.10.10.2 OceanBaseデータベースzone2、init完了前はFollower Agent
    OBServerノード 10.10.10.3 OceanBaseデータベースzone3、init完了前はFollower Agent

    APIによるデプロイ

    説明

    コマンドラインでAPIを呼び出す際は、以下の点にご注意ください:

    • 以下のAPIを呼び出すと非同期タスクが作成されるため、次のステップに進む前にタスクが完了していることを確認する必要があります。詳細な手順については、タスクの詳細情報を取得するを参照してください。

    • obshellは呼び出されたAPIに対してセキュリティ検証を行います。そのため、APIを呼び出すたびに、APIハイブリッド暗号化を参照してリクエストを暗号化し、curlコマンド内で暗号化後のリクエストヘッダー(${request_headers})とリクエストボディ(${request_body})を設定する必要があります。

    ステップ1:obshellを起動する

    1. obshellはOceanBaseデータベースのインストールディレクトリ(/home/admin/oceanbase/bin/obshell)にあります。

    2. 各ノードでobshellを起動します。コマンドの詳細については、obshell agent startを参照してください。

      10.10.10.1ノードで以下のコマンドを実行します:

      [admin@test001 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.1 -P 2886
      

      10.10.10.2ノードで以下のコマンドを実行します:

      [admin@test002 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.2 -P 2886
      

      10.10.10.3ノードで以下のコマンドを実行します:

      [admin@test003 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.3 -P 2886
      

    ステップ2:Single AgentがMaster Agentになる

    Single Agent(10.10.10.1ノード)に対して /api/v1/agent/join を呼び出し、リクエスト内でobshell自身(10.10.10.1:2886)を指定することで、Single AgentからMaster Agentへのアイデンティティ切り替えが完了します。

    コマンドラインコマンド
    Python
    GO

    コマンドラインで対応するAPIを呼び出す方法については、クラスタ初期化前にノードの追加を参照してください。

    [admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X POST -d '${request_body}' http://10.10.10.1:2886/api/v1/agent/join
    

    obshell-sdk-pythonを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタ初期化前にノードを追加するを参照してください。

    ···
    client = ClientSet("10.10.10.1", 2886)
    client.v1.join_sync("10.10.10.1", 2886, "zone1") # /api/v1/agent/joinを呼び出す
    ···
    

    obshell-sdk-goを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタ初期化前にノードを追加するを参照してください。

    ···
    client, err := services.NewClient("10.10.10.1", 2886)
    joinRequest1 := client.V1().NewJoinRequest("10.10.10.1", 2886, "zone1")
    dag, err := client.V1().JoinSyncWithRequest(joinRequest1)  // /api/v1/agent/joinを呼び出す
    ···
    

    ステップ3:Single AgentをFollower Agentにする

    Single Agent(10.10.10.2および10.10.10.3ノード)に対して/api/v1/agent/joinを呼び出し、リクエスト内でobshellをMaster Agent(10.10.10.1:2886)と指定することで、Single AgentからFollower Agentへのアイデンティティ切り替えが完了します。

    コマンドラインコマンド
    Python
    GO

    コマンドラインで対応するAPIを呼び出す方法については、クラスタ初期化前にノードを追加するを参照してください。

    任意のノードで以下のコマンドを実行します:

    • 10.10.10.2 をフォロワーエージェントにアイデンティティ切り替え

      [admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X POST -d '${request_body}' http://10.10.10.2:2886/api/v1/agent/join
      
    • 10.10.10.3 をフォロワーエージェントにアイデンティティ切り替え

      [admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X POST -d '${request_body}' http://10.10.10.3:2886/api/v1/agent/join
      

    obshell-sdk-pythonを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタ初期化前にノードを追加するを参照してください。

    ···
    client = ClientV1("10.10.10.1", 2886)
    client.v1.join_sync("10.10.10.2", 2886, "zone2") # /api/v1/agent/joinを呼び出す
    client.v1.join_sync("10.10.10.3", 2886, "zone3") # /api/v1/agent/joinを呼び出す
    ···
    

    obshell-sdk-goを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタ初期化前にノードを追加するを参照してください。

    ···
    client, err := v1.NewClient("10.10.10.1", 2886)
    
    joinRequest2 := client.V1().NewJoinRequest("10.10.10.2", 2886, "zone2")
    dag, err :=  client.V1().JoinSyncWithRequest(joinRequest2)  // /api/v1/agent/joinを呼び出す
    
    joinRequest3 := client.V1().NewJoinRequest("10.10.10.3", 2886, "zone3")
    dag, err =  client.V1().JoinSyncWithRequest(joinRequest3)  // /api/v1/agent/joinを呼び出す
    ···
    

    ステップ4:クラスタレベルの設定を設定する

    obshellにおいて、Master Agentとしてアイデンティファイアされたノードに対して/api/v1/obcluster/configコマンドを呼び出すことで、クラスタレベルの設定を設定できます。

    コマンドラインコマンド
    Python
    GO

    コマンドラインで対応するAPIを呼び出す方法の詳細については、クラスタレベルの構成の設定を参照してください。

    [admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X PUT -d '${request_body}' http://10.10.10.1:2886/api/v1/obcluster/config
    

    obshell-sdk-pythonを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタレベルの構成の設定を参照してください。

    ···
    client = ClientSet("10.10.10.1", 2886)
    client.v1.config_obcluster_sync("ob-test", 1, "****")  # /api/v1/obcluster/configを呼び出す
    ···
    

    obshell-sdk-goを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタレベルの構成の設定を参照してください。

    ···
    client, err := services.NewClientWithPassword("10.10.10.1", 2886)
    configObclusterReq := client.V1().NewConfigObclusterRequest("ob-test", 1).SetRootPwd("****")
    dag, err := client.V1().ConfigObclusterSyncWithRequest(configObclusterReq) // /api/v1/obcluster/configを呼び出す
    ···
    

    ステップ5:サーバー設定を設定する

    obshellがマスターエージェントとして認証されているノードに対し、/api/v1/observer/config を呼び出して、リクエスト内で適用範囲を指定することで、指定されたobshellにサーバー設定を設定できます。

    コマンドラインコマンド
    Python
    GO

    コマンドラインで対応するAPIを呼び出す方法の詳細については、Serverレベルの構成の設定を参照してください。

    [admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X PUT -d '${request_body}' http://10.10.10.1:2886/api/v1/observer/config
    

    obshell-sdk-pythonを使用して対応するAPIメソッドをリクエストする方法の詳細については、Serverレベルの構成の設定を参照してください。

    ···
    client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
    configs = {"redoDir":"/data/workspace/redo", "dataDir":"/data/workspace/data",
               "datafile_size":"24G", "cpu_count":"16", "memory_limit":"16G",
               "system_memory":"4G", "log_disk_size":"40G"}
    client.v1.config_observer_sync(configs, "GLOBAL", [])  # /api/v1/observer/configを呼び出す
    ···
    

    obshell-sdk-goを使用して対応するAPIメソッドをリクエストする方法の詳細については、Serverレベルの構成の設定を参照してください。

    ···
    client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
    configs := map[string]string{
    "redoDir":"/data/workspace/redo", "dataDir":"/data/workspace/data",
    "datafile_size":"24G", "cpu_count":"16", "memory_limit":"16G",
    "system_memory":"4G", "log_disk_size":"40G"}
    configObserverReq := client.V1().NewConfigObserverRequest(configs, v1.SCOPE_GLOBAL)
    dag, err := client.V1().ConfigObserverSyncWithRequest(configObserverReq)  // /api/v1/observer/configを呼び出す
    ···
    

    ステップ6:クラスタの初期化

    obshellでマスターエージェントとしてログインしたノードに対し、/api/v1/ob/init コマンドを実行することで、クラスタの初期化を実行できます。

    コマンドラインコマンド
    Python
    GO

    コマンドラインで対応するAPIを呼び出す方法の詳細については、クラスタの初期化を参照してください。

    [admin@test001 ~]$ curl -H 'X-OCS-Header:${request_headers}' -X POST http://10.10.10.1:2886/api/v1/ob/init
    

    obshell-sdk-pythonを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタの初期化を参照してください。

    ···
    client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
    client.v1.init_sync()  # /api/v1/ob/initを呼び出す
    ···
    

    obshell-sdk-goを使用して対応するAPIメソッドをリクエストする方法の詳細については、クラスタの初期化を参照してください。

    ···
    client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
    initReq := client.V1().NewInitRequest()
    dag, err := client.V1().InitSyncWithRequest(initReq)  // /api/v1/ob/initを呼び出す
    ···
    

    ステップ7:OceanBaseクラスタへの接続

    ここでは、OBClientを使用してOceanBaseデータベースに接続する例を示します。コマンドは以下のとおりです:

    [admin@test001 ~]$ obclient -h10.10.10.1 -uroot@sys -P2881 -p -A
    
    • -h:OceanBaseデータベースへの接続IPアドレス。obshell起動時に指定したIPアドレスを使用します。例:10.10.10.1。

    • -u:テナントの接続アカウント。書式:ユーザー名@テナント名。MySQLテナントの管理者ユーザー名はデフォルトで root です。

    • -P:OceanBaseデータベースへの接続ポート。ステップ5 で指定されていない場合は、デフォルトポート 2881 を使用します。

    • -p:OceanBaseデータベースに接続するためのアカウントのパスワード。

    • -A:OBClientがデータベースに接続する際に統計情報を自動取得しないようにします。

    OceanBaseクラスタに接続するための詳細な手順については、OceanBaseデータベースに接続するを参照してください。

    全コード例

    Python
    GO
    from obshell import ClientSet
    from obshell.auth import PasswordAuth
    
    client = ClientSet("10.10.10.1", 2886)
    
    # 自分自身をMASTERにする
    client.v1.join_sync("10.10.10.1", 2886, "zone1")
    # フォロワーをクラスタに追加
    client.v1.join_sync("10.10.10.2", 2886, "zone2")
    client.v1.join_sync("10.10.10.3", 2886, "zone3")
    
    # OceanBaseクラスタの設定情報を設定
    client.v1.config_obcluster_sync("test-sdk", 11, "****")
    
    # 各OBServerノードの構成パラメータを設定
    configs = {
        "datafile_size": "24G", "log_disk_size": "24G",
        "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G",
        "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
    client.v1.config.Observer_sync(configs, "GLOBAL", "")
    
    # クラスタを初期化
    client.v1.init_sync()
    
    # 現在のクラスタの状態情報を取得
    status = client.v1.get_status()
    print(status)
    
    package main
    
    import (
        "github.com/oceanbase/obshell-sdk-go/services"
        "github.com/oceanbase/obshell-sdk-go/services/v1"
    )
    
    func main() {
        client, err := services.NewClient("10.10.10.1", 2886)
        if err != nil {
            return
        }
    
        // join 自分自身をMASTERにする
        joinRequest1 := client.V1().NewJoinRequest("10.10.10.1", 2886, "zone1")
        dag, err :=  client.V1().JoinSyncWithRequest(joinRequest1) // 本番環境ではエラー処理が必要であり、以下も同様です
    
        // クラスタにフォロワーを追加
        joinRequest2 := client.V1().NewJoinRequest("10.10.10.2", 2886, "zone2")
        dag, err =  client.V1().JoinSyncWithRequest(joinRequest2)
    
        joinRequest3 := client.V1().NewJoinRequest("10.10.10.3", 2886, "zone3")
        dag, err =  client.V1().JoinSyncWithRequest(joinRequest3)
    
        // OceanBaseクラスタの設定情報を設定
        configObclusterReq := client.V1().NewConfigObclusterRequest("obshell-sdk-test", 12358).SetRootPwd("****")
        dag, err =  client.V1().ConfigObclusterSyncWithRequest(configObclusterReq)
    
        // obshell prior to 4.2.3.0 should use mysqlPort(rpcPort) instead of mysql_port(rpc_port).
        configs := map[string]string{
            "datafile_size": "24G", "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G", "log_disk_size": "24G",
        }
    
        // 各OBServerノードの構成パラメータを設定
        configObserverReq := client.V1().NewConfigObserverRequest(configs, v1.SCOPE_GLOBAL)
        dag, err =  client.V1().ConfigObserverSyncWithRequest(configObserverReq)
    
        // クラスタの初期化
        initReq := client.V1().NewInitRequest()
        dag, err =  client.V1().InitSyncWithRequest(initReq)
    }
    

    コマンドラインによるデプロイメント

    ステップ1:obshellを起動する

    1. obshellはOceanBaseデータベースのインストールディレクトリにあります(/home/admin/oceanbase/bin/obshell)。

    2. 各ノードでobshellを起動します。詳細については、obshellの起動を参照してください。

      10.10.10.1 ノードで以下のコマンドを実行します:

      [admin@test001 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.1 -P 2886
      

      10.10.10.2 ノードで以下のコマンドを実行します:

      [admin@test002 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.2 -P 2886
      

      10.10.10.3 ノードで以下のコマンドを実行します:

      [admin@test003 ~]$ /home/admin/oceanbase/bin/obshell agent start --ip 10.10.10.3 -P 2886
      

    ステップ2:Single AgentをMaster Agentにし、サーバー設定を設定する

    現在のノードで obshell cluster join コマンドを呼び出し、-s をobshell自身に設定することで、Single AgentからMaster Agentへのアイデンティティ切り替えが完了します。コマンドの詳細については、obshell cluster joinを参照してください。

    10.10.10.1 ノードで以下のコマンドを実行します:

    [admin@test001 ~]$ /home/admin/oceanbase/bin/obshell cluster join -s "10.10.10.1:2886" -z zone1 -p 2881 -P 2882 -o 'memory_limit=16G,system_memory=8G,log_disk_size=24G,datafile_size=24G'
    

    ステップ3:Single AgentをFollower Agentにし、サーバー設定を設定する

    現在のノードで obshell cluster join コマンドを呼び出し、-s をMaster Agent(つまり 10.10.10.1:2886)に設定することで、Single AgentからFollower Agentへのアイデンティティ切り替えが完了します。コマンドの詳細については、obshell cluster joinを参照してください。

    10.10.10.2 ノードで以下のコマンドを実行します:

    [admin@test002 ~]$ /home/admin/oceanbase/bin/obshell cluster join -s "10.10.10.1:2886" -z zone2 -p 2881 -P 2882 -o 'memory_limit=16G,system_memory=8G,log_disk_size=24G,datafile_size=24G'
    

    10.10.10.3 ノードで以下のコマンドを実行します:

    [admin@test003 ~]$ /home/admin/oceanbase/bin/obshell cluster join -s "10.10.10.1:2886" -z zone3 -p 2881 -P 2882 -o 'memory_limit=16G,system_memory=8G,log_disk_size=24G,datafile_size=24G'
    

    ステップ4:クラスタレベルの設定を設定し、クラスタを初期化する

    任意のノードで obshell cluster init コマンドを実行すると、クラスタレベルの構成を設定し、クラスタの初期化を実行できます。コマンドの詳細については、obshell cluster init を参照してください。

    [admin@test001 ~]$ /home/admin/oceanbase/bin/obshell cluster init -n ob-test --rp ********
    

    ステップ5:OceanBaseクラスタに接続する

    ここでは、OBClientを使用してOceanBaseデータベースに接続する例を示します。コマンドは以下のとおりです:

    [admin@test001 ~]$ obclient -h10.10.10.1 -uroot@sys -P2881 -p -A
    
    • -h:OceanBaseデータベースへの接続IPアドレスを提供します。これは、obshell起動時に指定されたIPアドレスです。例えば、10.10.10.1 のようになります。

    • -u:テナントの接続アカウントを提供します。形式:ユーザー名@テナント名。MySQLテナントの管理者ユーザー名はデフォルトで root です。

    • -P:OceanBaseデータベースへの接続ポートを提供します。ステップ4 で指定されていない場合は、デフォルトポート 2881 を使用します。

    • -p:OceanBaseデータベースアカウントのパスワードを提供します。

    • -A:OBClientがデータベースに接続する際に統計情報を自動的に取得しないことを示します。

    OceanBaseクラスタに接続するためのその他の詳細な操作については、OceanBaseデータベースに接続する ページを参照してください。

    前のトピック

    obshellのアップグレード
    最後

    次のトピック

    OBProxyのデプロイ
    次
    このページの内容
    前提条件
    用語解説
    デプロイモード
    APIによるデプロイ
    ステップ1:obshellを起動する
    ステップ2:Single AgentがMaster Agentになる
    ステップ3:Single AgentをFollower Agentにする
    ステップ4:クラスタレベルの設定を設定する
    ステップ5:サーバー設定を設定する
    ステップ6:クラスタの初期化
    ステップ7:OceanBaseクラスタへの接続
    全コード例
    コマンドラインによるデプロイメント
    ステップ1:obshellを起動する
    ステップ2:Single AgentをMaster Agentにし、サーバー設定を設定する
    ステップ3:Single AgentをFollower Agentにし、サーバー設定を設定する
    ステップ4:クラスタレベルの設定を設定し、クラスタを初期化する
    ステップ5:OceanBaseクラスタに接続する