【Oracle】指定したテーブルのみバックアップを取る方法

【Oracle】指定したテーブルのみバックアップを取る方法 Oracle

Oracleデータベースで一部のテーブルだけバックアップを取りたいケースは多くあります。例えば開発用の検証や、特定のテーブルだけを他の環境に移行したいときなどです。本記事では、指定したテーブルのみをバックアップする方法をいくつか紹介します。

Data Pump Export(expdp)を使ってバックアップを取る方法

Oracle 10g以降の環境では、Data Pump Export(expdp)を使用するのが推奨されます。高速かつ柔軟にテーブル単位のエクスポートが可能です。

基本構文:

expdp ユーザー名/パスワード directory=ディレクトリ名 dumpfile=ファイル名.dmp logfile=ログファイル名.log tables=スキーマ名.テーブル名

使用例:

expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp_backup.dmp logfile=emp_backup.log tables=scott.emp

この例では、SCOTTスキーマの「EMP」テーブルのみをエクスポートしています。

事前準備:

expdpを使うには、あらかじめエクスポート用のディレクトリオブジェクトを作成しておく必要があります。

CREATE DIRECTORY DATA_PUMP_DIR AS '/u01/app/oracle/dump';
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO scott;

古い exp ユーティリティを使う方法

Oracle 10g以前の環境では、旧式の exp コマンドが使用されていました。現行のバージョンでも互換性のため残されていますが、新規の導入には推奨されません。

使用例:

exp scott/tiger tables=scott.emp file=emp_backup.dmp log=emp_backup.log

SQL*Plusでテーブルを複製する方法

特定のテーブルを簡易的にバックアップしたい場合は、CREATE TABLE AS SELECT 文で複製する方法があります。

例:

CREATE TABLE emp_backup AS SELECT * FROM emp;

この方法では、データベース内に複製テーブルが作成され、必要に応じてバックアップや比較などに使用できます。

GUIツールでCSV出力する方法(SQL Developerなど)

SQL DeveloperなどのGUIツールを使えば、特定テーブルをCSVファイルやExcel形式で出力することも可能です。

  1. SQL Developerを起動
  2. 対象テーブルを右クリックして「エクスポート」を選択
  3. ファイル形式(CSV、Excelなど)を指定してエクスポート

データのみが必要なケースや、分析用として保存したい場合に便利です。

RMANはテーブル単位のバックアップに非対応

Oracleのバックアップツールとして有名なRMAN(Recovery Manager)は、データベース全体表領域単位でのバックアップを目的としたものであり、特定テーブルのみをバックアップする機能はありません

まとめ

方法 対応単位 特徴
Data Pump(expdp) テーブル単位 高速・柔軟・推奨
旧 exp ユーティリティ テーブル単位 古いバージョン向け
CREATE TABLE AS SELECT データのみ 簡易バックアップ・複製
SQL DeveloperでCSV出力 データのみ 分析用や手元保存に便利
RMAN データベース単位 テーブル単位では不可

目的や環境に応じて、最適なバックアップ方法を選択してください。特定テーブルだけを移行・保存したい場合は、Data Pump Exportの活用を強くおすすめします。