【Oracle】リストア時に特定テーブルを除外する方法|Data Pump EXCLUDE・parfile・実務パターン

【Oracle】リストア時に特定テーブルを除外する方法|Data Pump EXCLUDE・parfile・実務パターン Oracle

Oracleデータベースのリストア作業で「特定のテーブルだけ除外したい」という場面は非常に多くあります。大容量のログテーブルを含めたくない、テスト用の一時テーブルは不要、既存データを上書きしたくないテーブルがある——こうした要件は、本番運用や開発環境の構築で日常的に発生します。

この記事では、Data Pump(impdp / expdp)のEXCLUDEパラメータを中心に、RMANでの除外方法、parfileでの管理、実務でよく使うパターンまで、リストア時のテーブル除外を体系的に解説します。

この記事で分かること

  • impdpEXCLUDEパラメータで特定テーブルを除外する方法
  • LIKE条件・IN条件で複数テーブルを柔軟に除外する書き方
  • expdp段階で事前に除外してエクスポートする方法
  • RMANリストアでのテーブル単位の制御
  • parfileで長いパラメータを管理する方法
  • 正規表現・スキーマ指定・INDEX/CONSTRAINTの除外など高度な条件指定
  • 実務でよく使うシナリオ別の除外パターン
  • クォートのエスケープなどよくあるミスと注意点
スポンサーリンク

Data Pump impdpでテーブルを除外する方法

Data Pump Import(impdp)は、Oracleのデータ移行ツールです。ダンプファイルからデータベースにインポートする際、EXCLUDEパラメータを使うことで、特定のオブジェクトをインポート対象から除外できます。

EXCLUDEパラメータの基本構文

EXCLUDEパラメータは、インポート時に除外するオブジェクトの種類と条件を指定します。基本構文は以下の通りです。

構文
EXCLUDE=オブジェクト種類:"条件式"
要素 説明
オブジェクト種類 除外するオブジェクトのタイプ TABLE, INDEX, CONSTRAINT, TRIGGER
条件式 NAME列に対するSQL条件 IN (‘TEMP_DATA’), LIKE ‘TMP_%’
省略時 そのタイプのオブジェクトを全て除外 EXCLUDE=TABLE(テーブル全除外)

EXCLUDE=TABLE:”IN (…)”: 特定テーブルを名前指定で除外

最も基本的な使い方は、テーブル名を直接指定して除外するパターンです。IN句を使って、除外したいテーブル名をリストで指定します。

Shell — 1つのテーブルを除外してインポート
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"IN ('ACCESS_LOG')"

上記の例では、ACCESS_LOGテーブルだけがインポート対象から除外され、それ以外のすべてのオブジェクトは通常通りインポートされます。

Shell — 複数テーブルを除外
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"IN ('ACCESS_LOG', 'AUDIT_TRAIL', 'TEMP_DATA')"

IN句にカンマ区切りで複数のテーブル名を指定できます。テーブル名は大文字で指定するのが基本です(Oracleの内部格納が大文字のため)。

EXCLUDE=TABLE:”LIKE …”: パターンで除外

LIKE句を使うと、テーブル名のパターンに一致するテーブルをまとめて除外できます。ワイルドカード(%)を使って柔軟に対象を指定します。

Shell — TMP_で始まるテーブルを全て除外
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"LIKE 'TMP_%'"
Shell — _BAKで終わるバックアップテーブルを除外
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"LIKE '%_BAK'"
パターン 意味 マッチ例
LIKE 'TMP_%' TMP_で始まるテーブル TMP_ORDERS, TMP_USERS
LIKE '%_BAK' _BAKで終わるテーブル ORDERS_BAK, USERS_BAK
LIKE '%LOG%' LOGを含むテーブル ACCESS_LOG, LOG_MASTER, ERROR_LOGS
LIKE '%_202401' _202401で終わるテーブル SALES_202401, TX_202401

複数のEXCLUDE条件を組み合わせる

EXCLUDEパラメータは複数回指定できます。異なる条件を組み合わせることで、柔軟な除外ルールを構築できます。

Shell — 複数の除外条件を同時に指定
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"LIKE 'TMP_%'" 
  EXCLUDE=TABLE:"LIKE '%_BAK'" 
  EXCLUDE=TABLE:"IN ('HUGE_LOG_TABLE', 'AUDIT_ARCHIVE')"

ポイント:複数のEXCLUDEを指定した場合、すべての条件がOR(論理和)で適用されます。つまり、いずれかの条件に一致したオブジェクトが除外されます。

また、1つのEXCLUDE内でOR条件を使うこともできます。

Shell — 1つのEXCLUDE内でOR条件
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"LIKE 'TMP_%' OR LIKE '%_BAK'"

Data Pump expdpで事前にテーブルを除外してエクスポート

リストア時に除外するのではなく、エクスポート段階で不要なテーブルを除外しておく方法もあります。ダンプファイル自体に含まれないため、ファイルサイズの削減やエクスポート時間の短縮にもつながります。

EXCLUDE=TABLE でエクスポート時に除外

expdpでもEXCLUDEパラメータの構文はimpdpと全く同じです。エクスポート時に除外すれば、ダンプファイルにそのテーブルのデータは含まれません。

Shell — expdpで大容量テーブルを除外
expdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=export_no_logs.dmp 
  logfile=export.log 
  schemas=SCOTT 
  EXCLUDE=TABLE:"IN ('ACCESS_LOG', 'BATCH_LOG', 'ERROR_LOG')"

メリット:エクスポート段階で除外しておくと、ダンプファイルのサイズが大幅に削減されます。数百GBのログテーブルを除外するだけで、エクスポート・転送・インポートの全工程が高速化されます。

TABLESパラメータで対象を絞る(逆のアプローチ)

除外するのではなく、「必要なテーブルだけを指定してエクスポートする」という逆のアプローチもあります。対象テーブルが少ない場合はこちらの方がシンプルです。

Shell — TABLESで必要なテーブルだけエクスポート
expdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=selected_tables.dmp 
  logfile=export.log 
  tables=SCOTT.EMPLOYEES,SCOTT.DEPARTMENTS,SCOTT.SALARIES
アプローチ パラメータ 適したケース
除外(ブラックリスト) EXCLUDE=TABLE 大半のテーブルが必要で、一部を除外したい場合
指定(ホワイトリスト) TABLES 必要なテーブルが少数で、明確に特定できる場合

注意:TABLESパラメータとEXCLUDE=TABLE同時に使用できません。どちらか一方のアプローチを選択してください。また、TABLESパラメータを使う場合は、schemasパラメータやfull=yとは併用できません。

RMANリストアでテーブルを除外する方法

RMAN(Recovery Manager)は、Oracleのバックアップ・リカバリツールです。Data Pumpとは異なるアプローチですが、テーブル単位のリストア制御も可能です。

RMAN Table Recoveryでの対象指定

Oracle 12c以降では、RMANのRECOVER TABLEコマンドにより、バックアップから特定のテーブルだけをリストアできます。これは除外ではなく「必要なテーブルだけをリカバリする」アプローチです。

RMAN — 特定テーブルのみリカバリ
RECOVER TABLE SCOTT.EMPLOYEES, SCOTT.DEPARTMENTS
  UNTIL TIME "TO_DATE('2024-01-15 10:00:00', 'YYYY-MM-DD HH24:MI:SS')"
  AUXILIARY DESTINATION '/u01/aux'
  DATAPUMP DESTINATION '/u01/dump';

このコマンドは、バックアップからEMPLOYEESDEPARTMENTSテーブルだけを指定時点の状態にリカバリします。内部的にはData Pumpを利用しており、補助インスタンスを自動的に起動して処理を行います。

テーブル単位のリストアで除外する考え方

RMANにはEXCLUDEパラメータに相当する直接的な機能はありません。テーブルを除外したい場合は、以下のいずれかのアプローチを取ります。

方法 説明 使いどころ
RECOVER TABLE 必要なテーブルだけを指定してリカバリ 少数のテーブルだけ復元したい場合
RMAN + Data Pump連携 RMANでリストア後、Data PumpでEXCLUDE付きエクスポート/インポート 複雑な除外条件が必要な場合
SKIP TABLESPACE 特定の表領域をリストア対象から除外 表領域単位で除外したい場合

SKIP TABLESPACEの活用

テーブル単位ではなく表領域(テーブルスペース)単位で除外する場合は、RMANのSKIP TABLESPACE句を使います。例えば、一時データ専用の表領域をリストアから除外できます。

RMAN — 特定テーブルスペースを除外してリストア
RUN {
  RESTORE DATABASE
    SKIP TABLESPACE TEMP_DATA_TS, LOG_ARCHIVE_TS;
  RECOVER DATABASE
    SKIP TABLESPACE TEMP_DATA_TS, LOG_ARCHIVE_TS;
}

ポイント:SKIP TABLESPACEを使う場合、除外した表領域はオフライン状態になります。その表領域に含まれるテーブルにアクセスするとエラーになるため、後からDROPするか、個別にリストアする必要があります。

注意:SYSTEMSYSAUXUNDO表領域はSKIP TABLESPACEで除外できません。これらはデータベースの動作に必須の表領域です。

パラメータファイル(parfile)での管理

除外条件が多い場合や、定期的に同じパラメータで実行する場合は、パラメータファイル(parfile)にパラメータをまとめて記述すると管理が容易になります。コマンドラインが長くなりすぎることも防げます。

parfileの書き方

parfileはテキストファイルで、1行に1つのパラメータを記述します。コマンドラインで指定するパラメータをそのまま記述できます。

parfile — import_exclude.par
# インポート用パラメータファイル
# 大容量テーブル・一時テーブル・バックアップテーブルを除外

directory=DATA_PUMP_DIR
dumpfile=full_backup.dmp
logfile=import_20240115.log
schemas=SCOTT

# 大容量ログテーブルを除外
EXCLUDE=TABLE:"IN ('ACCESS_LOG', 'BATCH_LOG', 'AUDIT_TRAIL')"

# 一時テーブル(TMP_)を除外
EXCLUDE=TABLE:"LIKE 'TMP_%'"

# バックアップテーブル(_BAK)を除外
EXCLUDE=TABLE:"LIKE '%_BAK'"

# 統計情報も除外(既存の統計を保持したい場合)
EXCLUDE=STATISTICS

parfileを使った実行例

parfileはparfileパラメータで指定します。parfile内のパラメータとコマンドラインのパラメータは併用可能です。

Shell — parfileを使ってインポート
# parfileを指定して実行
impdp scott/tiger parfile=import_exclude.par
Shell — parfile + コマンドラインの併用
# parfileの設定に加えて、TABLE_EXISTS_ACTIONを上書き
impdp scott/tiger 
  parfile=import_exclude.par 
  table_exists_action=REPLACE

parfile管理のベストプラクティス

  • 用途ごとにparfileを分ける(import_dev.par, import_prod.parなど)
  • バージョン管理(Git等)で変更履歴を残す
  • ファイル名に日付や環境名を含めて識別しやすくする
  • コメント(#)で各パラメータの意図を記録する

複雑な除外条件の指定方法

実務では、単純なテーブル名の一致だけでなく、パターンの組み合わせやテーブル以外のオブジェクトの除外が必要になることがあります。ここでは高度な除外条件の指定方法を解説します。

NOT LIKE: 特定パターン以外を除外

NOT LIKEを使って「あるパターンに一致しないものを除外する」、つまり特定のパターンに一致するテーブルだけをインポートするという使い方もできます。

Shell — MST_で始まるテーブルだけインポート(それ以外を除外)
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"NOT LIKE 'MST_%'"

この例では、MST_で始まるテーブル(マスタテーブル)以外の全テーブルが除外されます。EXCLUDEで「含めないものを除外する」という二重否定のロジックになるため、慣れないうちは混乱しやすい点に注意してください。

スキーマ+テーブルの組み合わせ除外

フルエクスポート(full=y)のダンプをインポートする場合、スキーマ単位での除外も可能です。

Shell — スキーマごと除外
# 特定スキーマを丸ごと除外
impdp system/password 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  full=y 
  EXCLUDE=SCHEMA:"IN ('TEST_USER', 'DEV_USER')"
Shell — 特定スキーマの特定テーブルだけ除外(REMAP使用)
# SCOTTスキーマのLOGテーブルだけ除外
impdp system/password 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  schemas=SCOTT 
  EXCLUDE=TABLE:"LIKE '%LOG%'"

INDEX, CONSTRAINT, TRIGGER等の除外

EXCLUDEはテーブルだけでなく、様々なオブジェクトタイプに対して使えます。テーブルのデータはインポートしつつ、インデックスやトリガーだけを除外するケースもよくあります。

Shell — インデックス・トリガー・統計情報を除外
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=INDEX 
  EXCLUDE=TRIGGER 
  EXCLUDE=STATISTICS
オブジェクトタイプ EXCLUDEの指定 除外されるもの
TABLE EXCLUDE=TABLE テーブル定義+データ+依存オブジェクト
INDEX EXCLUDE=INDEX インデックスのみ(テーブルは含む)
CONSTRAINT EXCLUDE=CONSTRAINT 制約(PK, UK, CHECK等)
REF_CONSTRAINT EXCLUDE=REF_CONSTRAINT 外部キー制約
TRIGGER EXCLUDE=TRIGGER トリガー
GRANT EXCLUDE=GRANT 権限付与
STATISTICS EXCLUDE=STATISTICS オプティマイザ統計情報
SCHEMA EXCLUDE=SCHEMA スキーマ全体(fullインポート時)

INCLUDEとの使い分け

EXCLUDEの対になるパラメータとしてINCLUDEがあります。INCLUDEは「指定したオブジェクトだけをインポートする」パラメータで、EXCLUDEとは逆のアプローチです。

Shell — INCLUDEでテーブルだけインポート(他のオブジェクトは除外)
# テーブルのデータだけインポート(INDEX, TRIGGER等は除外)
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  INCLUDE=TABLE
Shell — INCLUDEで特定テーブルだけインポート
# MST_で始まるテーブルだけインポート
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  INCLUDE=TABLE:"LIKE 'MST_%'"
パラメータ 動作 適したケース
EXCLUDE 指定したオブジェクトを除外する 大半をインポートし、一部だけ除外したい
INCLUDE 指定したオブジェクトだけを含める 少数のオブジェクトだけインポートしたい

注意:EXCLUDEINCLUDE同時に使用できません。どちらか一方だけを指定してください。両方指定するとORA-39001エラーが発生します。

実務でよく使うシナリオ

ここからは、実際の運用現場で頻繁に発生するテーブル除外のユースケースを、具体的なコマンド例とともに紹介します。

シナリオ1: 大容量テーブルを除外して高速リストア

ログテーブルやトランザクション履歴テーブルは、数百GB〜数TB規模になることがあります。開発環境の構築やテスト用のリストアでは、これらの大容量テーブルを除外することで大幅に時間を短縮できます。

Shell — 大容量テーブルを除外して高速インポート
impdp admin/password 
  directory=DATA_PUMP_DIR 
  dumpfile=production.dmp 
  logfile=fast_import.log 
  schemas=APP_SCHEMA 
  EXCLUDE=TABLE:"IN ('TX_HISTORY', 'ACCESS_LOG', 'BATCH_LOG', 'AUDIT_TRAIL')" 
  EXCLUDE=TABLE:"LIKE 'ARCHIVE_%'" 
  parallel=4

効果の例:500GBのフルダンプで、ログテーブル(400GB)を除外すると、インポート時間が数時間→30分程度に短縮されることもあります。parallelパラメータとの組み合わせでさらに高速化できます。

シナリオ2: テスト用・一時テーブルの除外

開発中に作成したテストデータや一時テーブルは、他の環境には不要です。命名規則(TMP_TEST_WK_など)でまとめて除外します。

parfile — exclude_temp.par
directory=DATA_PUMP_DIR
dumpfile=dev_backup.dmp
logfile=import_clean.log
schemas=DEV_USER

# テスト・一時テーブルを一括除外
EXCLUDE=TABLE:"LIKE 'TMP_%'"
EXCLUDE=TABLE:"LIKE 'TEST_%'"
EXCLUDE=TABLE:"LIKE 'WK_%'"
EXCLUDE=TABLE:"LIKE '%_TEMP'"
EXCLUDE=TABLE:"LIKE '%_BK'"

シナリオ3: 既存データを上書きしたくないテーブルの保護

リストア先に既に存在するマスタテーブルやコード管理テーブルを上書きしたくない場合があります。EXCLUDEで除外するか、TABLE_EXISTS_ACTIONと組み合わせて制御します。

Shell — マスタテーブルを除外して保護
# マスタテーブルを除外(既存データを保護)
impdp scott/tiger 
  directory=DATA_PUMP_DIR 
  dumpfile=full_backup.dmp 
  logfile=import.log 
  EXCLUDE=TABLE:"LIKE 'MST_%'" 
  EXCLUDE=TABLE:"IN ('CODE_MASTER', 'SYSTEM_CONFIG')" 
  table_exists_action=REPLACE

ポイント:この例では、マスタテーブルはEXCLUDEで除外し、それ以外のテーブルはTABLE_EXISTS_ACTION=REPLACEで上書きしています。これにより「マスタは保持、トランザクションデータは最新に更新」という運用が実現できます。

シナリオ4: 本番→開発環境移行で不要テーブルを除外

本番環境のデータを開発環境にコピーする際は、個人情報を含むテーブルや大容量のログテーブルを除外するのが一般的です。

parfile — prod_to_dev.par(本番→開発環境移行用)
# 本番→開発環境移行用パラメータ
directory=DATA_PUMP_DIR
dumpfile=production_full.dmp
logfile=prod_to_dev.log
schemas=APP_OWNER

# 個人情報テーブルを除外
EXCLUDE=TABLE:"IN ('CUSTOMER_PERSONAL', 'PAYMENT_INFO', 'CREDIT_CARD')"

# 大容量ログ・履歴テーブルを除外
EXCLUDE=TABLE:"LIKE '%_LOG'"
EXCLUDE=TABLE:"LIKE '%_HISTORY'"
EXCLUDE=TABLE:"LIKE 'ARCHIVE_%'"

# 権限・統計は開発環境で別途設定
EXCLUDE=GRANT
EXCLUDE=STATISTICS

# 既存テーブルは上書き
table_exists_action=REPLACE
Shell — parfileで実行
impdp admin/password parfile=prod_to_dev.par

よくあるミスと注意点

EXCLUDEパラメータは強力ですが、記述ミスやOracleの仕様を理解していないと思わぬトラブルにつながります。ここではよくあるミスとその対処法をまとめます。

クォートのエスケープ(シェルとSQLの二重エスケープ)

EXCLUDEパラメータの条件式では、テーブル名をシングルクォートで囲む必要があります。さらに、シェル(bash等)からコマンドを実行する場合は、シェルのクォートとSQLのクォートの二重エスケープが必要です。

Shell — クォートのエスケープパターン
# パターン1: ダブルクォートで囲み、内部はシングルクォート
EXCLUDE=TABLE:"IN ('ACCESS_LOG')"

# パターン2: バックスラッシュでエスケープ
EXCLUDE=TABLE:"IN ('ACCESS_LOG')"

# パターン3: parfileを使う(エスケープ問題を回避)
# → parfile内ではシェルのエスケープが不要

注意:クォートのエスケープでエラーが頻発する場合は、parfileを使うのが最も確実です。parfileではシェルのクォート処理が介入しないため、Data Pumpの構文そのままで記述できます。

EXCLUDE vs TABLE_EXISTS_ACTION の違い

EXCLUDETABLE_EXISTS_ACTIONは混同されがちですが、目的が全く異なります。

パラメータ 目的 動作
EXCLUDE 特定オブジェクトのインポートを完全にスキップ 対象オブジェクトは一切処理されない
TABLE_EXISTS_ACTION 既存テーブルとの競合時の動作を指定 SKIP / APPEND / TRUNCATE / REPLACE
Shell — TABLE_EXISTS_ACTIONの各オプション
# SKIP: 既存テーブルはスキップ(データ変更なし)
table_exists_action=SKIP

# APPEND: 既存テーブルにデータを追加
table_exists_action=APPEND

# TRUNCATE: 既存データを削除してからインポート
table_exists_action=TRUNCATE

# REPLACE: テーブルをDROPして再作成
table_exists_action=REPLACE

「テーブルを保護したい」場合、EXCLUDEはそのテーブルを完全に無視し、TABLE_EXISTS_ACTION=SKIPは既存テーブルの上書きをスキップします。目的に応じて使い分けましょう。

大文字・小文字の注意

Oracleのデータディクショナリでは、オブジェクト名はデフォルトで大文字で格納されます。EXCLUDEのテーブル名も大文字で指定する必要があります。

Shell — 大文字・小文字の注意点
# NG: 小文字で指定(マッチしない)
EXCLUDE=TABLE:"IN ('access_log')"  -- 除外されない!

# OK: 大文字で指定
EXCLUDE=TABLE:"IN ('ACCESS_LOG')"  -- 正しく除外される

# 例外: ダブルクォーテーション付きで作成されたテーブル
# CREATE TABLE "myTable" (...) のような場合は小文字のまま格納される
EXCLUDE=TABLE:"IN ('myTable')"  -- 小文字のまま指定

確認方法:除外対象のテーブル名が正確かどうか確認するには、以下のSQLを実行します。

SQL — テーブル名の確認
SELECT table_name
FROM   user_tables
WHERE  table_name LIKE '%LOG%'
ORDER BY table_name;

依存オブジェクトも一緒に除外される

EXCLUDE=TABLEでテーブルを除外すると、そのテーブルに紐づく依存オブジェクトも自動的に除外されます。

テーブル除外時に一緒に除外されるもの 説明
インデックス テーブルに作成されたすべてのインデックス
制約(CONSTRAINT) PRIMARY KEY, UNIQUE, CHECK, NOT NULL
外部キー(REF_CONSTRAINT) このテーブルを参照する/されるFK
トリガー テーブルに関連付けられたトリガー
権限(GRANT) テーブルに対するGRANT

注意:他のテーブルから除外対象テーブルへの外部キー制約がある場合、参照先テーブルがないためインポートエラーになる可能性があります。この場合はEXCLUDE=REF_CONSTRAINTを追加するか、インポート後に手動で外部キーを再作成してください。

まとめ: パターン別早見表

最後に、リストア時のテーブル除外パターンを早見表としてまとめます。目的に応じて適切な方法を選択してください。

やりたいこと 使うパラメータ コマンド例
特定テーブルを除外 EXCLUDE=TABLE:"IN (...)" EXCLUDE=TABLE:"IN ('TBL1', 'TBL2')"
パターンで除外 EXCLUDE=TABLE:"LIKE ..." EXCLUDE=TABLE:"LIKE 'TMP_%'"
テーブル全除外 EXCLUDE=TABLE 構造のみインポートしたい場合
INDEX/TRIGGER除外 EXCLUDE=INDEX データだけ入れて後からINDEX作成
特定テーブルだけ含める INCLUDE=TABLE:"IN (...)" INCLUDE=TABLE:"IN ('EMP', 'DEPT')"
エクスポート時に除外 expdp EXCLUDE=TABLE ダンプファイルを軽量化
表領域単位で除外 RMAN SKIP TABLESPACE RMANリストア時に使用
複雑な条件をファイル管理 parfile=xxx.par 定期運用・チーム共有に最適

運用のポイント

  • 除外対象が少ない場合EXCLUDE(ブラックリスト方式)
  • 必要なテーブルが少ない場合INCLUDEまたはTABLES(ホワイトリスト方式)
  • 条件が複雑・定期実行の場合はparfileで管理
  • クォートのエスケープに困ったらparfileを使う
  • テーブル名は必ず大文字で指定する(Oracle内部格納に合わせる)
  • 除外時は依存オブジェクト(FK等)への影響を事前に確認する

EXCLUDEパラメータを使いこなすことで、リストア作業の効率化とリスク軽減が同時に実現できます。特に大規模データベースの運用では、不要なテーブルを除外するだけで作業時間が劇的に短縮されるため、ぜひ活用してみてください。

This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny