本ドキュメントでは、データアーカイブチケットを送信してデータをアーカイブする方法について説明します。
背景情報
OceanBase Cloud は、オンラインデータの増加によるクエリパフォーマンスや業務運用への影響を解決するため、ソースデータベースのテーブルデータを他のターゲットデータベースに定期的にアーカイブする機能に対応しています。
本ドキュメントでは、データアーカイブの新規作成を例に、OceanBase Cloud でデータベース test1 のテーブル employee をデータベース load_test にアーカイブする方法について説明します。
説明
本文中で使用しているデータはすべてサンプルです。実際の状況に応じてデータを置き換えてください。
原理の紹介
前提条件
SQL コンソールにログインするための、現在のテナントのデータベースアカウントとパスワードを持っていること。
アーカイブするテーブルには主キーが含まれている必要があります。
考慮事項
前提条件:
ソース側のテーブルフィールドがターゲット側で互換性があることを確認する必要があります。データアーカイブではフィールドの互換性の問題は処理されません。
MySQL データソースは、現在 CPU およびメモリの過負荷防止機能に対応していません。
同種アーカイブリンクのサブパーティションはテーブル構造の同期に対応しておらず、異種データベースは構造の同期および自動テーブル作成に対応していません。
アーカイブリンクの対応状況:
OceanBase MySQL から OceanBase MySQL。
OceanBase Oracle から OceanBase Oracle。
MySQL から OceanBase MySQL。
以下の場合はアーカイブに対応していません:
OceanBase MySQL および MySQL データソースで、テーブルに主キー PRIMARY KEY または一意の非 NULL インデックスが含まれていない場合、アーカイブに対応していません。
OceanBase Oracle データソースで、テーブルに主キー PRIMARY KEY が含まれていない場合、アーカイブに対応していません。
OceanBase Oracle データソースで、テーブルに JSON または XMLTYPE フィールドタイプが含まれている場合、アーカイブに対応していません。
アーカイブ条件に limit 句が含まれている場合、アーカイブに対応していません。
テーブルに外部キーが含まれている場合、アーカイブに対応していません。
以下のアーカイブリンクは、自動テーブル作成およびテーブル構造の同期に対応していません:
- MySQL から OceanBase MySQL
- OceanBase MySQL から MySQL
データアーカイブの新規作成
SQLコンソールにログインした後、SQL ウィンドウを開きます。
SQL ウィンドウで、SQL 文を編集してテーブル employee を作成します。
CREATE TABLE `employee` ( `emp_no` int(120) NOT NULL COMMENT 'employee number', `birthday` date DEFAULT NULL COMMENT 'employee birthday', `name` varchar(120) DEFAULT NULL COMMENT 'employee name', `time` date NOT NULL COMMENT 'time' COMMENT 'create time', PRIMARY KEY (`time`) ) partition by range columns(time) ( partition p2023_01 values less than ('2023-01-01'), partition p2023_02 values less than ('2023-02-01') )データサービス > ライフサイクル > データアーカイブ をクリックした後、ライフサイクル ページで ジョブの作成 > データアーカイブ をクリックします。
データアーカイブジョブの新規作成 ページで、以下の情報を入力します。
情報項目説明データベース情報 - ソースデータソース:アーカイブデータが属するデータソースを選択します
- ソースデータベース:アーカイブデータが属するデータベースを選択します
- ターゲットデータソース:アーカイブデータのターゲットデータソースを選択します
- ターゲットデータベース:アーカイブデータのターゲットデータベースを選択します
アーカイブ範囲 - 部分アーカイブ:フィルタ条件を使用して、ソースデータベース内の一部のテーブルをアーカイブします。
- 定数を使用するか、変数設定で定義された変数を参照してフィルタ条件を設定できます。例:
time<'${create_time}'。ここで、create_timeは変数設定の変数名、timeはアーカイブテーブルのフィールドです。 - 詳細設定 > 設定 をクリックすると、指定したパーティションに基づいてデータをアーカイブできます。
- 定数を使用するか、変数設定で定義された変数を参照してフィルタ条件を設定できます。例:
- データベース全体のアーカイブ:ソースデータベース内のすべてのテーブルをアーカイブします。
カスタム変数 オプション。変数を定義し、時間オフセットを設定することで、テーブル内の条件を満たす行をフィルタリングしてアーカイブします。 実行方法 即時実行 / スケジュール実行 / 定期実行 を選択して、ジョブの実行方法を設定します。 タスク設定 - ソース側のアーカイブ済みデータのクリーンアップ:ソース側のアーカイブ済みデータをクリーンアップするかどうかを選択します。
- 実行タイムアウト時間:タスク開始から指定時間が経過しても完了しない場合、スケジュールを一時停止し、次回のスケジュールを待機します。
- 行数制限:1 秒あたりのデータ操作の合計行数制限です。
- データ量制限:1 秒あたりのデータ操作の合計サイズ制限です。
- 挿入ポリシー:データアーカイブの実行時に、重複データを無視するか、重複データを更新するかを選択します。
- データ検索ポリシー:ターゲットレコード行の検索方法を選択します。フルテーブルスキャンはパフォーマンスが安定しており、ターゲットデータの割合が大きいシナリオに適しています。条件マッチングは空スキャンを回避でき、パフォーマンスが速く、ターゲットデータの割合が小さいシナリオに適しています。
- ターゲットテーブル構造の同期:タスクのスケジュール前にソース側とターゲット側のテーブル構造を比較します。チェックを外すと、構造が一致しないテーブルはスキップされます。
備考 備考 テキストボックスに 200 文字以内で説明情報を入力できます。この項目はオプションです。 SQL のプレビュー をクリックした後、アーカイブ SQL 文をプレビューし、ジョブ名を指定して 送信 をクリックすると、データアーカイブの新規作成が完了します。
ジョブの生成後、データアーカイブ リストでジョブ情報を確認できます。
データアーカイブジョブの表示
データサービス > ライフサイクル > データアーカイブ ページにアクセスし、データアーカイブリストとアーカイブ記録の基本情報を確認します。
データアーカイブリストでターゲットジョブの名前をクリックし、ジョブの詳細を確認します。また、操作列の ··· をクリックして、ターゲットジョブに対するその他の操作を行うこともできます。
- 終了:ジョブの実行方法が定期実行またはスケジュール実行の場合、終了を選択してジョブを終了できます。
- 無効化/有効化:ジョブの実行方法が定期実行またはスケジュール実行の場合、無効化を選択してジョブの実行を一時停止し、再度有効化すると実行を再開できます。
- 編集:ジョブのステータスが無効の場合、編集を選択してジョブの内容を更新できます。
- 削除:ジョブのステータスが完了または終了の場合、削除を選択してジョブを削除できます。
- 詳細:ジョブの内容の詳細を確認します。
- 再実行:このジョブの実行内容をコピーし、同じ設定の新規ジョブ作成画面をすばやく生成します。
運用記録 をクリックし、ポップアップ表示されるジョブ詳細パネルの ジョブ情報 タブで、ジョブタイプ、ソースデータベース、ターゲットデータベース、変数設定、アーカイブ範囲、実行方法などの情報を確認します。
ジョブ詳細パネルで、実行記録 タブをクリックして、ジョブのステータス、実行の詳細、タスクログの関連情報を確認します。
ジョブ詳細パネルで、操作記録 タブをクリックして、ジョブのステータスを確認します。
データアーカイブジョブのインポート
他のプラットフォームのデータアーカイブジョブを OceanBase Cloud にインポートできます。たとえば、クラウドデータベース OceanBase のインスタンスを OceanBase Cloud に移行した後、移行済みインスタンスに含まれるデータアーカイブジョブを OceanBase Cloud に移行します。
ステップ 1:他のプラットフォームからデータアーカイブジョブをエクスポートする
クラウドデータベースOceanBase管理コンソール の左側のナビゲーションペインで、インスタンスリスト をクリックします。
インスタンスの 操作 列にある クラウドマーケットプレイスに切り替え をクリックします。
インスタンスの切り替えが完了したら、インスタンスの 操作 列にある データ開発タスクの処理 をクリックします。
データ開発タスクの処理 ページで、すべてを表示してエクスポート をクリックし、スケジュールタスクをローカルにエクスポートします。
ステップ 2:データアーカイブジョブを OceanBase Cloud にインポートする
OceanBase Cloud クラウドデータベースコンソール にログインし、データサービス > ライフサイクル をクリックした後、ライフサイクル ページで ... その他のオプション > ジョブのインポート をクリックします。
ローカルにダウンロードしたデータアーカイブ設定ファイルをジョブのインポートにアップロードします。