このセクションでは、主にテーブル単位の復旧コマンドに含まれる関連パラメータについて説明します。
テーブル単位の復旧コマンド関連
コマンド
テーブル単位のリカバリ
ALTER SYSTEM RECOVER TABLE table_name_list TO [TENANT [=]] dest_tenant_name FROM uri [UNTIL {TIME='timestamp'} | {SCN=scn} ] WITH 'restore_option' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [REMAP TABLE remap_table_name_list] [REMAP TABLEGROUP remap_tablegroup_list] [REMAP TABLESPACE remap_tablespace_list] [DESCRIPTION [=] description];実行中のテーブル単位のリカバリタスクをキャンセル
ALTER SYSTEM CANCEL RECOVER TABLE dest_tenant_name;
パラメータの説明
| パラメータ | 説明 |
|---|---|
| table_name_list | 復元するテーブル。書式は database_name.table_name1,database_name.table_name2,... のようになります。複数のテーブル間は、カンマ(,)で区切ります。database_name と table_name を指定する場合:
database_name の名前はテーブルが属するユーザー名と同じであり、database_name と table_name はデフォルトで大文字と小文字を区別せず、英字の大文字で内部テーブルに格納されます。database_name の名前はテーブルが属するデータベース名であり、database_name と table_name が大文字と小文字を区別するかどうかは、ソーステナント作成時に指定した変数 lower_case_table_names の値によって決まります。変数 lower_case_table_names は、データベース名とテーブル名が大文字と小文字を区別するかどうかを設定します。テナント作成時にこの変数の値を指定しなかった場合、デフォルトではデータベース名とテーブル名は小文字で格納され、大文字と小文字を区別せずに比較されます。変数 lower_case_table_names の詳細については、lower_case_table_names を参照してください。database_name または table_name に特殊文字が含まれる場合、特殊文字を含む database_name または table_name をバッククォート(``)で囲む必要があります。 |
| dest_tenant_name | テーブルを復元する対象のターゲットテナント名。テーブルをユーザーテナントにのみ復元でき、sys テナントやMetaテナントへの復元はサポートされていません。 |
| uri | データバックアップとログアーカイブのパスをそれぞれ指定します。これは、テナントレベルの物理復元コマンドのパラメータと同じです。データバックアップがPLUS ARCHIVELOG方式で開始された場合は、パスを1つ入力するだけで済みます。そうでない場合は、データバックアップとログアーカイブの少なくとも2つのパスをそれぞれ入力する必要があります。例:'file:///backup/archive, file:///backup/data'。 |
| {TIME='timestamp'} | {SCN=scn} | 指定された復元ポイント。そのポイントまで復元し、そのポイントを含みます。TIME または SCN に復元する場合は、指定された値を = で結合する必要があります。UNTIL 句を指定しない場合、デフォルトでは最新のポイントまで復元されます。 |
| restore_option | pool_list、locality、primary_zone、concurrency をサポートしており、異なるパラメータ間は & で区切ります。locality と primary_zone を指定する際は、ソーステナントとの同型性を保つことを推奨します。
|
| WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password' | 暗号化テナントの秘密鍵バックアップ情報を指定します。復旧時に秘密鍵バックアップ関連情報を指定する必要があるのは、ソーステナントに透過的暗号化が設定されている場合に限ります。その中で:
|
| remap_table_name_list | 復元後のテーブル名をリネームします。テーブル名のみをリネームし、テーブルが属するデータベースは変更しないことも可能です。また、テーブル名を変更せずに他のデータベースにのみリネームすることも可能です。さらに、テーブル名をリネームすると同時に、所属するデータベースも別のデータベースにリネームすることも可能です。ソースオブジェクトとリネーム対象オブジェクトの間は、英字のコロン(:)で結びます。具体的な書式例は以下のとおりです:
説明リネームする |
| remap_tablegroup_list | テーブルが属するテーブルグループをリネームします。ソーステーブルがテーブルグループにバインドされている場合、ターゲットテナントに復元してテーブルを作成する際、システムはデフォルトでテーブルをターゲットテナント内の同名のテーブルグループに復元します。同名のテーブルグループが存在しない場合、テーブルの復元は失敗します。ターゲットテナント内に他のテーブルグループがある場合、このステートメントを使用してテーブルを他のテーブルグループに復元することも可能です。ソースオブジェクトとリネーム対象オブジェクトの間は、英字のコロン(:)で結びます。 たとえば、ソーステーブルグループ tg1 内のすべてのテーブルをターゲットテナントのテーブルグループ newtg1 に復元します:REMAP TABLEGROUP tg1:newtg1。 |
| remap_tablespace_list | テーブルが属するテーブルスペースをリネームします。テーブルスペースはOceanBaseデータベースにおける論理的単位であり、現在は主にデータ暗号化に使用されています。ソーステーブルがテーブルスペースにバインドされている場合、ターゲットテナントに復元してテーブルを作成する際、システムはデフォルトでテーブルをターゲットテナント内の同名のテーブルスペースに復元します。同名のテーブルスペースが存在しない場合、テーブルの復元は失敗します。ターゲットテナント内に他のテーブルスペースがある場合、このステートメントを使用してテーブルを他のテーブルスペースに復元することも可能です。ソースオブジェクトとリネーム対象オブジェクトの間は、英字のコロン(:)で結びます。 たとえば、ソーステーブルスペース ts1 内のすべてのテーブルをターゲットテナントのテーブルスペース newts1 に復元します:REMAP TABLESPACE ts1:newts1。 |
テーブルレベルの復旧性能に関する項目
フォローアップテナントの復旧段階
テーブルレベルの復旧におけるフォローアップテナントの復旧段階は、テナントレベルの復旧と同じです。この段階に関連するパフォーマンスパラメータとその説明については、物理復旧関連パラメータの紹介を参照してください。
テナント間のテーブルエクスポート段階
コマンド
ALTER SYSTEM SET ddl_thread_score = int_value Tenant=tenant_name;
ALTER SYSTEM SET recover_table_concurrency= int_value Tenant=tenant_name;
ALTER SYSTEM SET recover_table_dop = int_value Tenant=tenant_name;
パラメータの説明
| パラメータ | 説明 |
|---|---|
| ddl_thread_score | テナントのOBServerノード上でテーブルレベルの復旧スレッドプールの数を制御します。デフォルト値は0で、内部デフォルトのスレッド数は2を意味します。 |
| recover_table_concurrency | テナントの複数テーブル並列復旧の並列度を制御し、最大で recover_table_concurrency つのテーブルが同時にテナント間のテーブルエクスポートを実行することを許可します。デフォルト値は0で、内部デフォルトでは最大1つのテーブルがテナント間のテーブルエクスポートを実行することを許可します。 |
| recover_table_dop | 単一テーブル復旧の並列度を制御します。デフォルト値は0で、内部デフォルトの並列度は1を意味します。 このパラメータは具体的に以下の2つの段階に影響します:
|