OceanBase logo

OceanBase

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

プロダクト概要
デプロイを自由に

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

ドキュメント

会社概要

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBase

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

プロダクト概要
デプロイを自由に

OceanBase Cloud

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

エンタープライズ版

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

オープンソース版を試す

コミュニティ版

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

OceanBase seekdb

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

顧客事例

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

さらに見る
利用シーン別

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

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

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

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

複数インスタンスの統合

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

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

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

OceanBaseデータベース

SQL - V4.4.2

    OceanBase ロゴ

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

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

    © OceanBase 2026. All rights reserved

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

    定期パーティション均衡タスクの設定

    最終更新日:2026-06-15 02:31:30  更新
    シェア
    このページの内容
    使用上の制限
    定期パーティション均衡タスクの有効化
    定期パーティション均衡タスクの無効化
    定期パーティション均衡タスクのスケジュール時間の調整
    定期パーティション均等化タスクのスケジューリング頻度の調整
    定期パーティションバランス調整タスクの1回あたりの実行タイムアウト時間の調整
    パーティション不均衡をトリガーするステートメントの最大実行時間の調整
    次のステップ
    関連ドキュメント

    折りたたみ

    シェア

    OceanBaseデータベースでは、ユーザーテナント作成時にシステム組み込みの定期パーティション均衡タスク SCHEDULED_TRIGGER_PARTITION_BALANCE が設定され、デフォルトで毎日00:00に1回パーティションの均衡処理が実行されます。ユーザーは DBMS_SCHEDULER システムパッケージのサブプログラムを使用して、定期パーティション均衡タスクの各種パラメータを設定できます。

    使用上の制限

    システムテナント(sysテナント)では、定期パーティション均衡タスクの設定はサポートされていません。

    定期パーティション均衡タスクの有効化

    現在のバージョンで新規作成されたユーザーテナントでは、定期パーティション均衡タスクはデフォルトで有効な状態になっており、再度有効にする必要はありません。V4.2.3 以前のバージョンから現在のバージョンにアップグレードしたユーザーテナントでは、定期パーティション均衡タスクはデフォルトで無効な状態になっています。以下の手順を参照して、定期パーティション均衡タスクを有効にすることができます。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下のとおりですが、データベースへの接続時は実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. テナントレベル構成パラメータ partition_balance_schedule_interval の値が 0s であるか確認します。

      定期パーティション均衡タスク SCHEDULED_TRIGGER_PARTITION_BALANCE を有効にする前に、自動トリガーによるパーティション均衡タスクが無効であることを確認する必要があります。つまり、テナントレベル構成パラメータ partition_balance_schedule_interval の値が 0 である必要があります。

      テナントレベル構成パラメータ partition_balance_schedule_interval が 0s かどうかを確認し、もしそうでない場合は、その値を 0s に設定します。ステートメントは以下のとおりです。

      obclient> SHOW PARAMETERS LIKE '%partition_balance_schedule_interval%';
      
      obclient> ALTER SYSTEM SET partition_balance_schedule_interval='0s';
      
    3. DBMS_SCHEDULER システムパッケージの ENABLE サブプログラムを呼び出し、定期パーティション均衡タスク SCHEDULED_TRIGGER_PARTITION_BALANCE を有効にします。

      MySQLモード
      Oracleモード

      MySQLテナントでスケジュールされたパーティションの均衡タスクを有効にする例は以下のとおりです。

      obclient [oceanbase]> CALL DBMS_SCHEDULER.ENABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');
      

      Oracleテナントで定期パーティションの均衡タスクを有効にする例は以下のとおりです:

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.ENABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      ENABLE サブプログラムの詳細については、ENABLEを参照してください。

    定期パーティション均衡タスクの無効化

    現在のバージョンで新規作成されたユーザーテナントでは、定期パーティション均衡タスクはデフォルトで有効になっています。また、ビジネスニーズに応じて、このタスクを無効にすることも可能です。定期パーティション均衡タスクを無効にした後でも、自動トリガー(パラメータpartition_balance_schedule_intervalを0sより大きい値に設定する)または手動トリガーにより、パーティション均衡タスクを開始できます。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下の通りですが、データベースへの接続時は実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. DBMS_SCHEDULERシステムパッケージのDISABLEサブプログラムを呼び出し、定期パーティション均衡タスクSCHEDULED_TRIGGER_PARTITION_BALANCEを無効にします。

      MySQLモード
      Oracleモード

      MySQLテナントでスケジュールされたパーティションの均衡タスクを無効にする例は以下のとおりです。

      obclient [oceanbase]> CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');
      

      Oracleテナントでスケジュールされたパーティションの均衡タスクを無効にする例は以下のとおりです。

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.DISABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      DISABLE サブプログラムの詳細については、DISABLEを参照してください。

    定期パーティション均衡タスクのスケジュール時間の調整

    定期パーティション均衡タスクを有効にすると、システムはデフォルトで毎日00:00にパーティション均衡を実行します。ユーザーは必要に応じて変更できます。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下の通りですが、データベースへの接続時は実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. DBMS_SCHEDULER システムパッケージの SET_ATTRIBUTE サブプログラムを呼び出し、パーティション均衡タスクの次回スケジュール時間を調整します。例えば、次回01:00にパーティション均衡を実行するように調整します。

      MySQLモード
      Oracleモード

      MySQLテナントで定期パーティションのバランス調整タスクの実行時間を2024-06-12 01:00:00に調整する例は以下のとおりです。

      obclient [oceanbase]> CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'NEXT_DATE', '2024-06-12 01:00:00');
      

      Oracleテナントで定期パーティションの均等化タスクの実行時間を12-Jun-2024 01:00:00に調整する例は以下のとおりです。

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'NEXT_DATE', '12-Jun-2024 01:00:00');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      SET_ATTRIBUTEサブルーチンの詳細については、SET_ATTRIBUTEを参照してください。

    定期パーティション均等化タスクのスケジューリング頻度の調整

    デフォルトでは、定期パーティション均等化タスクのスケジューリング頻度は1日1回です。ユーザーは必要に応じて変更できます。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. DBMS_SCHEDULERシステムパッケージのSET_ATTRIBUTEサブプログラムを呼び出し、パーティション均等化タスクのスケジューリング頻度を調整します。例えば、2日に1回パーティション均等化を実行するように調整できます。

      MySQLモード
      Oracleモード

      ステートメントは以下のとおりです:

      CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'REPEAT_INTERVAL', 'FREQ=str_value; INTERVAL=int_value');
      

      ここで、各パラメータの説明は以下のとおりです:

      • FREQ:スケジューリング頻度を指定するための時間単位です。サポートされている値は MINUTELY(分)、HOURLY(時間)、DAILY(日)、WEEKLY(週)です。
      • INTERVAL:具体的な数値を指定し、いくつの時間単位ごとにタスクを実行するかを示します。例えば、FREQ=DAILY; INTERVAL=2 は、2日ごとにタスクを実行することを意味します。

      MySQLモードのテナントで、定期パーティションの均衡タスクの実行頻度を2日ごとに調整する例を以下に示します:

      obclient [oceanbase]> CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'REPEAT_INTERVAL', 'FREQ=DAILY; INTERVAL=2');
      

      ステートメントは以下のとおりです:

      BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'REPEAT_INTERVAL', 'FREQ=str_value; INTERVAL=int_value');
      END;
      

      ここで:

      • FREQ:スケジューリング頻度を指定するための時間単位です。サポートされている値は MINUTELY(分)、HOURLY(時間)、DAILY(日)、WEEKLY(週)です。
      • INTERVAL:具体的な数値、つまり、いくつの時間単位ごとにタスクをトリガーするかを指定します。例えば、FREQ=DAILY; INTERVAL=2 は、2日ごとにタスクを1回トリガーすることを意味します。

      Oracleモードのテナントで、定期パーティションのバランシングタスクの実行頻度を2日ごとに調整する例は以下のとおりです:

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'REPEAT_INTERVAL', 'FREQ=DAILY; INTERVAL=2');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      SET_ATTRIBUTE サブプログラムの詳細については、SET_ATTRIBUTEを参照してください。

    定期パーティションバランス調整タスクの1回あたりの実行タイムアウト時間の調整

    デフォルトでは、定期パーティションバランス調整タスクの1回あたりの実行にはタイムアウト制限がありません。ユーザーは業務の実際の状況に応じて変更する必要があります。

    定期パーティションバランス調整タスクの1回あたりの実行タイムアウト時間を調整することは、実際には TRIGGER_PARTITION_BALANCE サブプログラムを呼び出してトリガーされるすべてのバックグラウンドパーティションバランス調整タスクの実行タイムアウト時間を調整することになるため、この値を調整すると手動でトリガーされるパーティションバランス調整タスクにも影響します。手動でパーティションバランスをトリガーする詳細な操作については、パーティションバランス調整タスクの手動トリガーを参照してください。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下のとおりですが、データベースへの接続時は実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. DBMS_SCHEDULER システムパッケージの SET_ATTRIBUTE サブプログラムを呼び出し、1回あたりのタスク実行のタイムアウト時間を調整します。

      MySQLモード
      Oracleモード

      ステートメントは以下のとおりです:

      CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'JOB_ACTION', 'DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(balance_timeout)');
      

      ここで、balance_timeoutは単一タスク実行のタイムアウト時間を秒単位で指定します。この値が空の場合、バックグラウンドのバランシングタスクにタイムアウト時間がないことを意味します。

      MySQLモードのテナントで、単一タスク実行のタイムアウト時間を7200秒に調整する例は以下のとおりです:

      obclient [oceanbase]> CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'JOB_ACTION', 'DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(7200)');
      

      ステートメントは以下のとおりです:

      BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'JOB_ACTION', 'DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(balance_timeout)');
      END;
      

      ここで、balance_timeout は単一タスク実行のタイムアウト時間を秒単位で指定します。この値が空の場合、バックグラウンドのバランシングタスクにタイムアウト時間がないことを意味します。

      Oracleモードのテナントで、単一タスク実行のタイムアウト時間を7200秒に調整する例は以下のとおりです:

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'JOB_ACTION', 'DBMS_BALANCE.TRIGGER_PARTITION_BALANCE(7200)');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      SET_ATTRIBUTE サブプログラムの詳細については、SET_ATTRIBUTEを参照してください。

    パーティション不均衡をトリガーするステートメントの最大実行時間の調整

    デフォルトで、パーティション不均衡をトリガーするステートメントの最大実行時間は7,200秒、つまり2時間です。この値を変更することは推奨されません。

    1. テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

      接続例は以下のとおりですが、データベースへの接続時は実際の環境に準じてください。

      obclient -h10.xx.xx.xx -P2883 -uroot@mysql_tenant#obdemo -p***** -A
      
    2. DBMS_SCHEDULERシステムパッケージのSET_ATTRIBUTEサブプログラムを呼び出し、パーティション不均衡をトリガーするステートメントの最大実行時間を調整します。

      MySQLモード
      Oracleモード

      ステートメントは以下のとおりです:

      CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'MAX_RUN_DURATION', 'max_time');
      

      ここで、max_time はパーティション均等化ステートメントの実行をトリガーする最大時間を指定するために使用され、単位は秒です。

      MySQLモードのテナントでパーティション均等化ステートメントの最大実行時間を3600秒(1時間)に調整する例は以下のとおりです:

      obclient [oceanbase]> CALL DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'MAX_RUN_DURATION', '3600');
      

      ステートメントは以下のとおりです:

      BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'MAX_RUN_DURATION', 'max_time');
      END;
      

      ここで、max_time はパーティションの均衡をトリガーするステートメントの最大実行時間を指定するために使用され、単位は秒です。

      Oracleモードのテナントでパーティションの均衡をトリガーするステートメントの最大実行時間を3600秒(1時間)に調整する例は以下のとおりです:

      obclient [SYS]> DELIMITER //
      
      obclient [SYS]> BEGIN
           DBMS_SCHEDULER.SET_ATTRIBUTE('SCHEDULED_TRIGGER_PARTITION_BALANCE', 'MAX_RUN_DURATION', '3600');
      END;//
      
      obclient [SYS]> DELIMITER ;
      

      SET_ATTRIBUTE サブプログラムの詳細については、SET_ATTRIBUTEを参照してください。

    次のステップ

    スケジュールタスクは、パーティション不均衡タスクをトリガーするためだけに使用されます。トリガー条件が満たされると、システムは自動的にパーティション不均衡タスクを実行します。パーティション不均衡タスクがトリガーされた後:

    • ビューを使用して、スケジュールされたパーティション不均衡タスクのトリガー履歴を確認できます。具体的な操作については、スケジュールされたパーティション不均衡タスクのトリガー履歴の確認を参照してください。

    • 実際のパーティション移行は、バックグラウンドの不均衡タスクによって非同期で実行されます。ビューを使用して、パーティション不均衡タスクの実行プロセスを確認できます。具体的な操作については、バックグラウンドのパーティション不均衡タスクの確認を参照してください。

      説明

      パーティション不均衡タスクが正常にトリガーされた後、テナントレベルの構成パラメータ enable_rebalance と enable_transfer のいずれか一方の値が True 以外の場合、そのスケジュールタスクは失敗します。

    関連ドキュメント

    • スケジュール済みパーティションのバランシングタスクの設定を確認する

    • パーティションのバランシングタスクを手動でトリガーする

    前のトピック

    パーティションの重みをクリアする
    最後

    次のトピック

    パーティションの手動バランス調整
    次
    このページの内容
    使用上の制限
    定期パーティション均衡タスクの有効化
    定期パーティション均衡タスクの無効化
    定期パーティション均衡タスクのスケジュール時間の調整
    定期パーティション均等化タスクのスケジューリング頻度の調整
    定期パーティションバランス調整タスクの1回あたりの実行タイムアウト時間の調整
    パーティション不均衡をトリガーするステートメントの最大実行時間の調整
    次のステップ
    関連ドキュメント