obshellを使用してOceanBaseデータベースのクラスタレベル(すべてのテナント)バックアップを開始するには、以下の2つの方法があります:
APIを呼び出してバックアップを開始する
obshellコマンドを使用してバックアップを開始する
本記事では、3レプリカのOceanBaseクラスタを例に、obshellを使用してクラスタレベルバックアップを開始する方法を説明します。
前提条件
OceanBaseクラスタがobshellによって運用管理されていること。詳細な判断方法および接続操作については、obshell以外でデプロイされたクラスタの接続を参照してください。
OceanBaseクラスタのすべてのOBServerノードとobshellが正常に動作していること。
デプロイメントモード
本記事で使用されている3台のマシンの構成は以下のとおりです(obshellはデフォルトポート2886を使用します):
ロール |
マシン |
備考 |
|---|---|---|
| OBServerノード | 10.10.10.1 | OceanBaseデータベース zone1 |
| OBServerノード | 10.10.10.2 | OceanBaseデータベース zone2 |
| OBServerノード | 10.10.10.3 | OceanBaseデータベース zone3 |
APIによるバックアップ
説明
obshellは呼び出されたAPIに対してセキュリティ検証を行います。そのため、APIを呼び出すたびに、API混合暗号化を参照してリクエストを暗号化し、curlコマンドで暗号化後のリクエストヘッダー(${request_headers})とリクエストボディ(${request_body})を設定する必要があります。
ステップ1:(オプション) クラスタレベルバックアップの設定を行う
任意のobshellの /api/v1/obcluster/backup/config インターフェースを呼び出すことで、クラスタレベルバックアップの設定を行えます。
説明
以前にクラスタレベルバックアップが設定されている場合は、このインターフェースを複数回呼び出す必要はありません。
コマンドラインで対応するAPIを呼び出す方法の説明については、クラスタレベルバックアップ設定を参照してください。この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/obcluster/backup/config
暗号化前のリクエストボディの内容は以下のとおりです:
{
"backup_base_uri":"file:///data/backup",
"log_archive_concurrency":50
}
obshell-sdk-pythonを使用して対応するAPIメソッドを呼び出す方法の紹介については、クラスタレベルバックアップ設定を参照してください。
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.post_cluster_backup_config_sync(
"file:///data/backup",
log_archive_concurrency=100,
)
...
obshell-sdk-goを使用して対応するAPIメソッドを呼び出す方法の紹介については、クラスタレベルバックアップ設定を参照してください。
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
request := client.V1().NewClusterBackupConfigPostRequest("file:///data/backup")
request.SetArchiveLagTarget("10s").SetLogArchiveConcurrency(100).
dag, err := client.V1().ClusterBackupConfigSyncWithRequest(request)
...
ステップ2:クラスタレベルバックアップを開始する
任意のobshellの /api/v1/obcluster/backup インターフェースを呼び出すことで、クラスタレベルバックアップを開始できます。
コマンドラインで対応するAPIを呼び出す方法の説明については、クラスタレベルバックアップを開始するを参照してください。この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/obcluster/backup
暗号化前のリクエストボディの内容は以下のとおりです:
{
"mode":"full"
}
obshell-sdk-pythonを使用して対応するAPIメソッドを呼び出す方法の紹介については、クラスタレベルバックアップを開始するを参照してください。
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.start_cluster_backup_sync("full")
...
obshell-sdk-goを使用して対応するAPIメソッドを呼び出す方法の紹介については、クラスタレベルバックアップを開始するを参照してください。
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
request := client.V1().NewClusterBackupRequest()
request.SetBackupMode("full")
dag, err := client.V1().ClusterBackupWithRequest(request)
...
ステップ3:クラスタレベルのバックアップタスクを確認する
任意のobshellで /api/v1/obcluster/backup/overview インターフェースを呼び出すと、クラスタレベルのバックアップタスクを確認できます。
コマンドラインで対応するAPIインターフェースを呼び出す方法については、クラスタレベルのバックアップタスクを確認するを参照してください。
[admin@test001 ~]$ curl -H "Content-Type: application/json" -H 'X-OCS-Header:${request_headers}' -X GET http://10.10.10.1:2886/api/v1/obcluster/backup/overview
obshell-sdk-pythonで対応するAPIメソッドをリクエストする方法については、クラスタレベルのバックアップタスクを確認するを参照してください。
...
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
client.v1.get_cluster_backup_overview()
...
obshell-sdk-goで対応するAPIメソッドをリクエストする方法については、クラスタレベルのバックアップタスクを確認するを参照してください。
...
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
res, err := client.V1().GetClusterBackupOverview()
...
obshellコマンドによるバックアップ
ステップ1:クラスタバックアップを実行する
任意のノードで obshell cluster backup コマンドを実行すると、バックアップの設定が完了し、1回のバックアップがトリガーされます。コマンドの詳細については、obshellクラスタコマンドグループの obshell cluster backup のセクションを参照してください。
[admin@test001 ~]$ /home/admin/oceanbase/bin/obshell cluster backup -u 'file:///data/backup'
ステップ2:バックアップタスクを照会する
使用するコマンドの詳細については、obshellバックアップコマンドグループの obshell backup show のセクションを参照してください。
[admin@test001 ~]$ /home/admin/oceanbase/bin/obshell backup show