このドキュメントでは、ODC上でパーティション計画を使用し、新規作成および削除されたテーブルのパーティションを自動的に管理する方法について説明します。
背景
パーティション計画は、Rangeパーティション専用の拡張機能です。ODCは、ユーザーが設定したパーティション戦略に基づいてRangeパーティションテーブルを自動的に管理できるため、ユーザーはRangeパーティションテーブルのメンテナンスを容易に行うことができます。
Rangeパーティション:Rangeパーティションは最も一般的なパーティションタイプで、通常は日付と共に使用されます。Rangeパーティションを作成する際、データベースはパーティションキーの値の範囲に基づいて行をパーティションにマッピングします。詳細については、パーティションルールの設定およびパーティションタイプに関するドキュメントをご参照ください。
パーティショニングプラン:パーティション計画は、Rangeパーティション専用の拡張機能です。ODCは、ユーザーが設定したパーティション戦略に基づいてRangeパーティションテーブルを自動的に管理できるため、ユーザーはRangeパーティションテーブルのメンテナンスを容易に行うことができます。
戦略の作成:ODCは、ユーザーが設定したパーティションの詳細に基づいてテーブルを自動的にパーティション化できます。パーティション戦略の作成方法には、順次増分とカスタムが含まれます。
順次増分:パーティション戦略の作成方法で、時間、数値、文字フィールドタイプにのみ適用されます。

カスタム:パーティション戦略の作成方法で、すべてのフィールドタイプがサポートされており、カスタムSQL式を使用してパーティション戦略を作成できます。

戦略の削除:設定されたパーティション保持数に基づいて、最新のパーティションを保持し、余分なパーティションを削除します。
パーティション計画の実行プロセス

- テーブルに対してパーティション戦略の作成または削除を設定します。
- 戦略の実行サイクルを指定します。
- パーティション計画を実行します。
注意事項
OceanBase MySQLおよびOceanBase Oracleデータソースのみをサポートしています。
Rangeパーティションテーブルのみをサポートしています。
Rangeパーティションテーブルの最後のパーティションの上限値がMAXVALUEの場合、データベースは新規パーティションの追加を許可しないため、ODCのパーティション計画タスクを使用してパーティション戦略を作成することはできません。
パーティション計画は、デフォルトで毎時00分00秒に実行されます。
データベースに既存のパーティション計画がある場合、新しく作成されたパーティション計画が承認されると、既存のパーティション計画を上書きします。
テーブルがテーブルグループ(tablegroup)に属している場合、パーティションの作成が失敗したり、ロードバランシングが破壊されたりする可能性があります。作成戦略の設定には注意してください。
新規パーティションの作成により、テーブルグループ(tablegroup)が無効になる可能性があります。これは、同一のテーブルグループに属するテーブルは完全に一致したパーティション構成を持たなければならないという要件に反するためです。
テーブルにグローバルインデックスが含まれている場合、パーティションの削除によりグローバルインデックスが無効になる可能性があります。操作には慎重にしてください。グローバルインデックスの再作成を選択した場合、時間がかかりすぎて業務に支障をきたす可能性があるほか、再作成に失敗するとオンラインで問題が発生する可能性があります。
グローバルインデックスの再作成オプションはOracleモードでのみ有効です。MySQLモードではこのオプションはなく、MySQLモードではデフォルトでグローバルインデックスが再作成されます。
パーティション計画の作成
例:データソースmysql4253のデータベースtest_data内で、1か月ごとに1つのorderテーブルパーティションを事前作成します。
情報項目 |
サンプル値 |
|---|---|
| プロジェクト名 | odc_test |
| 所属データソース | mysql4253 |
| データベース名 | test_data |
| テーブル名 | order |
SQLウィンドウで、SQLステートメントを編集してorderテーブルを作成します。
CREATE TABLE `order` ( `time` date NOT NULL, `parti_key` int(11), `name` varchar(120) DEFAULT NULL ) partition by range columns(time, parti_key) (partition p2023_01 values less than ('2023-01-01', 20230101), partition p2023_02 values less than ('2023-02-01', 20230201))SQL開発ウィンドウの**チケットタブで、パーティション計画** > **新規作成**をクリックします。

**新規作成**パネルで、以下の情報を指定します。
情報項目説明データベース パーティション計画を作成するデータベースを選択します。 パーティション戦略 範囲パーティションテーブルを選択し、
をクリックして対応するパーティション戦略を編集します。詳細な設定については、パーティション戦略の設定およびパーティション戦略の使用例をご参照ください。
説明
- パーティション戦略の右側にある未設定のテーブルのみ表示を選択すると、未設定のテーブルをフィルタリングできます。
- 範囲パーティションテーブルを選択すると、パーティション戦略を一括設定できます。
戦略実行サイクルの設定 - 作成戦略の実行サイクル:すべての**パーティション作成戦略**の実行タイミングを設定します。例えば、毎晩2時に実行するように設定します。
- 削除戦略の実行サイクル:カスタム削除戦略の実行サイクルを選択し、すべてのパーティション削除戦略の実行タイミングを設定します。このオプションを選択すると、パーティション削除戦略はパーティション作成戦略と共にスケジュールされ実行されます。

タスク設定 タスクのエラー処理方法を選択します: - タスクの停止:タスクの停止がデフォルトの方法です。スクリプトの実行中にエラーが発生した場合、実行を停止します。
- エラーを無視してタスクを続行:エラーを無視してタスクを続行する方法を選択すると、スクリプトの実行でエラーが発生した後、エラーステートメントをスキップして実行を続けます。
実行タイムアウト時間 デフォルトは2時間です。 備考 プロジェクトのビジネス背景情報を記述します。例えば、変更の目的、期待される目標などです。 上記の情報を指定した後、パネルの右下にある**送信**ボタンをクリックして、パーティション計画タスクの作成を完了します。
タスクが生成されると、自動的に**タスクセンター**パネルがポップアップ表示されます。タスクセンターでは、タスクの承認状況とタスク情報を確認できます。

パーティション計画の表示
タスク情報
チケット のパーティション計画リストで、操作列の 表示 ボタンをクリックします。

表示された タスク詳細 パネルで、タスク情報 タブをクリックして、タスクの基本情報と設定情報を確認します。
情報項目説明タスク基本情報 タスク状態、タスク番号、タスクタイプ、所属データソース、リスクレベル、備考、作成者、**作成日時**などの情報が表示されます。 タスク設定情報 パーティション計画タスク作成時に選択したRangeパーティションテーブルのパーティション戦略情報が表示されます。 タスク情報パネルの右下で、再度開始 をクリックすると、タスクを再開始できます。
タスクの流れ
タスク詳細 パネルで、タスクの流れ タブをクリックし、タスク開始状況、承認状況、実行状況、**完了結果**などの情報を確認します。

パネルの右下で、再度開始 をクリックすると、タスクを再開始できます。
関連レコード
タスク詳細 パネルで、関連レコード タブをクリックし、タスク番号、所属データベース、作成日時、タスク状態、**表示**などの操作情報を確認します。
パネルの右下で、再度開始 をクリックすると、タスクを再開始できます。
タスクログ
タスク詳細 パネルで、タスクログ タブをクリックし、タスクの全ログとアラートログを確認します。
情報項目説明全部ログ 全部ログは、タスクの INFO、ERROR、WARN ログなどの全量情報を表示します。検索、ダウンロード、コピー ボタンをクリックすると、情報の検索、全部ログのダウンロード、またはコピーができます。 アラートログ アラートログは、タスクの ERROR および WARN ログを個別に表示します。タスクが失敗した場合、アラートログからエラー情報を確認できます。検索、ダウンロード、コピー ボタンをクリックすると、情報の検索、アラートログのダウンロード、またはコピーができます。 再度開始 をクリックすると、タスクを再開始できます。