このトピックでは、OceanBase Developer Center(ODC)でバッチデータベース変更チケットを送信して、同じプロジェクトの異なる環境にある複数のデータベースのスキーマまたはデータを変更または更新する方法について説明します。
背景情報
実際には、複数の環境とリージョンにビジネスをデプロイする必要があります。次に、典型的なシナリオをいくつか示します。
業務システムのライフサイクルは、開発からテスト、立ち上げまで、さまざまなフェーズに及びます。したがって、業務システム用に開発環境、テスト環境、プレリリース環境、本番環境を個別に構築する必要があります。
近隣のビジネスアクセスとディザスタリカバリのために、業務システムの本番環境をリージョン全体の複数のノードにデプロイする必要があります。たとえば、環境を杭州、上海、北京にデプロイし、各センターがサービスの一部またはすべてを担当するようにできます。
異なる環境でのデータベースオブジェクトスキーマの一貫性を確保するには、環境の初期スキーマ構成が同じであり、後続のスキーマ変更が環境で統一された方法で実行されることを確認する必要があります。この場合、リスクを回避するために、標準のプロセス管理メカニズムが必要です。
バッチデータベース変更機能は、複数の環境でのスキーマ変更における潜在的なリスクを軽減し、異なる環境でのデータベーススキーマの一貫性を簡単に確保できるようにすることを目的としています。
ODC では、同じプロジェクトの異なる環境にある複数のデータベースに対して、シリアルモードまたはパラレルモードで SQL ベースの変更を実行できます。
シリアルモード:指定された順序で複数のデータベースに変更が実行されます。データベースでの変更プロセスが完了するたびにフィードバックが報告されます。これは、R&D の変更が最初にテスト環境で行われ、次にプレリリース環境で行われ、最後に本番環境で行われるシナリオに似ています。
パラレルモード:データベースの変更は、シリアルモードと組み合わせてバッチで実行できます。
このトピックの例では、ODC でバッチデータベース変更タスクを作成して、odc_test データベースと user_ro データベースに employee という名前のテーブルを作成する方法について説明します。
このトピックで使用されているデータは例です。必要に応じて、実際のデータに置き換えることができます。
考慮事項
データベースは同じプロジェクトに属している必要があります。
データベースの数は 2 ~ 100 です。
データベースを複製することはできません。
バッチデータベース変更タスクは、変更プロセスが実行されている場合は中止できません。つまり、このようなタスクは自動的に実行されている場合は中止できません。ただし、手動で実行されている場合は、変更プロセスの次のバッチの開始を待機している場合にのみ中止できます。
バッチデータベース変更タスクの作成
[プロジェクト] タブまたは [チケット] タブで、[データベースの一括変更] をクリックします。
[プロジェクト] タブでバッチ データベース変更タスクを作成します。

チケット タブでバッチデータベース変更タスクを作成します。

[一括データベース変更チケットの作成] パネルで、次のパラメーターを構成します。

パラメーター
説明
プロジェクト
バッチデータベース変更タスクを作成するプロジェクト。
データベース
変更するデータベースを選択し、変更の実行順序を指定します。変更は、異なるノード上のデータベースに対して順番に実行され、同じノード上のデータベースに対して 同時に 実行されます。
データベース構成をテンプレートとして保存して、後で再利用できます。
SQL コンテンツ
SQL エントリ または ファイルのアップロード を選択します。
SQL エントリ: これは SQL コンテンツを指定するデフォルトの方法です。編集エリアに SQL スクリプトを直接記述できます。
説明SQL ウィンドウに入力できる SQL 文の最大サイズは 500,000 文字に制限されています。実行する SQL スクリプトが 500,000 文字を超える場合は、スクリプトファイルを直接アップロードできます。
[IN 値変換] をクリックすると、バッチコピーされたデータを
in('A','B')形式に変換できます。列の値は改行で区切られます。
行の値はスペースまたはタブで区切られます。
ファイルのアップロード: ファイルプールをクリックしてファイルエクスプローラーに移動し、インポートするファイルを選択します。ファイルをファイルプールに直接ドラッグしてアップロードすることもできます。
説明最大 500 ファイルをアップロードできます。ファイルの合計サイズは 256 MB を超えることはできません。
デフォルトでは、ファイルはアップロードされた順序でソートされます。ドラッグアンドドロップして順序を変更できます。タスクはファイルの順序で実行されます。
.sqlで終わる SQL ファイルのみがサポートされています。
SQL チェック
このアイコンをクリックして、SQL 文の構文を確認します。
ロールバックプラン
ロールバック計画を指定します。SQL スクリプトを記述するか、ファイルをアップロードしてロールバック計画を指定できます。詳細については、SQL コンテンツの説明をご参照ください。
説明[バックアップ ロールバック計画の生成] を選択すると、
UPDATE文とDELETE文に対してバックアップ ロールバック SQL 文が自動的に生成されます。MySQL モードまたはネイティブ MySQL の OceanBase データベースの場合、ロールバック SQL 文は、主キーまたは一意キーを持つテーブルで実行される
UPDATE文またはDELETE文に対してのみ生成できます。バックアップロールバック SQL 文は、データベース変更文が 100,000 行以下に影響し、バッチデータベース変更タスクが 100 万行以下に影響する場合にのみ生成できます。
SQL 実行設定
デリミタ: フィールド間のデリミタを指定します。カンマ (
,)、セミコロン (;)、コロン (:) がサポートされています。クエリ結果の制限: クエリ結果のデータ行数を指定します。有効値: 1 ~ 1,000,000。
実行タイムアウト: 文の実行タイムアウト期間を時間単位で指定します。デフォルト値は 48 時間です。最大値は 480 時間です。
SQL 実行エラー処理方法: [実行を停止] または [エラーを無視して続行] を選択できます。
タスク設定
自動実行 または 手動実行 を選択できます。
説明
テキストボックスに 200 文字以内の説明を入力できます。このパラメーターはオプションです。
作成 をクリックします。
タスクが生成された後、[チケット] タブの [一括データベース変更] をクリックして、タスク情報を表示できます。

バッチデータベース変更タスクの表示
タスク情報
チケット タブのバッチ データベース変更タスク リストで、アクション 列の [表示] をクリックします。
タスク詳細パネルで、タスク情報 タブをクリックして、タスクのデータベース、タイプ、リスクレベル、SQL コンテンツなどの情報を表示します。
説明バックアップ ロールバック計画のダウンロード
更新DELETEをクリックして、 文と 文に対して ODC によって自動的に生成されたロールバックプランファイルをダウンロードできます。
タスクプロセス
タスク詳細パネルで、タスクプロセス タブをクリックし、タスクの開始ステータス、承認ステータス、実行ステータス、実行結果などの情報を表示します。
実行結果
タスク詳細パネルで、実行レコード タブをクリックして、実行の成功レコードと失敗レコードを表示します。
[アクション] 列の [表示] をクリックして、タスク情報、実行結果、ロールバックチケット、およびタスクログを表示します。