0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人用 oracledb impdp

Posted at

Oracleのimpdpコマンド解説(事前準備含む)

Oracle DatabaseのimpdpData Pump Import)コマンドは、エクスポートされたダンプファイル(.dmp)を使ってデータベースにデータを復元するためのユーティリティです。この機能はデータ移行、バックアップの復元、環境間のデータコピーなどに利用されます。


■ impdpの概要

impdpは、事前にexpdp(Data Pump Export)で出力されたデータをOracleデータベースに読み戻すためのコマンドです。


■ impdp実行前に必ず行う準備

Oracleでは、OS上のファイルパスを直接指定するのではなく、**ディレクトリオブジェクト(Oracle DIRECTORYオブジェクト)**を通じてファイルにアクセスします。
そのため、以下の準備が必須となります。


■ impdpの処理の流れ(全体像)

① OS上に .dmp ファイルを配置  
② Oracleで DIRECTORY オブジェクトを作成  
③ 対象ユーザーに READ/WRITE 権限を付与  
④ impdp コマンドでインポートを実行

■ sqlplusによるディレクトリオブジェクトの作成

● sqlplusとは?

Oracleが提供する対話型のコマンドラインSQLツールで、SQLやPL/SQLを実行したり、管理操作を行ったりできます。

sqlplus / as sysdbaとは?

これはOracleにOS認証で管理者(SYSDBA)としてログインする構文です。通常、Oracleサーバー上でoracleユーザーとしてこのコマンドを実行します。

  • sqlplus:ツールの起動
  • /:OSユーザー認証(ユーザー名・パスワード不要)
  • as sysdba:SYSDBA権限(管理者)で接続する

● 実行例

sqlplus / as sysdba

CREATE OR REPLACE DIRECTORY dump_dir AS '/u01/dumpfiles';
GRANT READ, WRITE ON DIRECTORY dump_dir TO your_user;
  • dump_dir:Oracle内でのディレクトリ識別名
  • /u01/dumpfiles:OS上に実在するディレクトリパス
  • your_user:ダンプファイルを読み込むユーザー名

■ impdpコマンド構文と使用例

基本構文:

impdp ユーザー名/パスワード@サービス名 DIRECTORY=ディレクトリ名 DUMPFILE=ファイル名 LOGFILE=ログファイル名 [その他オプション]
パラメータ 説明
ユーザー名/パスワード 接続するユーザーの認証情報
@サービス名 接続先のデータベース識別子(TNS名やEZ接続形式など)
DIRECTORY=ディレクトリ名 Oracleディレクトリオブジェクト(OSのパスではない)
DUMPFILE=ファイル名 インポート元のダンプファイル名(複数指定可)
LOGFILE=ファイル名 処理ログの出力ファイル名(任意)

■ 主なオプション

オプション 説明
FULL=Y データベース全体をインポート
SCHEMAS=スキーマ名 特定のスキーマ(ユーザー)のみをインポート
TABLES=テーブル名 指定したテーブルのみをインポート
REMAP_SCHEMA=旧:新 スキーマ名を変換してインポート
REMAP_TABLESPACE=旧:新 表領域を変換してインポート
EXCLUDE=オブジェクト 指定したオブジェクトを除外
INCLUDE=オブジェクト 指定したオブジェクトだけを含める

● スキーマ全体をインポート

impdp scott/tiger@orcl DIRECTORY=dump_dir DUMPFILE=scott.dmp LOGFILE=scott.log

● 特定テーブルのみをインポート

impdp scott/tiger@orcl DIRECTORY=dump_dir DUMPFILE=scott.dmp TABLES=emp,dept LOGFILE=emp_import.log

● スキーマを別名に変換してインポート

impdp system/password@orcl DIRECTORY=dump_dir DUMPFILE=scott.dmp REMAP_SCHEMA=scott:hr LOGFILE=remap.log

■ よくあるエラーとその対処法

エラー内容 原因と対策
ORA-39087: directory name is invalid DIRECTORYが存在しないか、名前の指定ミス
ORA-39002: invalid operation 構文ミスまたはユーザーに権限が不足
ORA-39070: Unable to open the log file 指定したディレクトリに書き込み権限がない、またはパスが不正

■ 注意点まとめ

項目 内容
ディレクトリオブジェクト OracleがOSファイルへアクセスするために必要
DIRECTORY= impdpで使用するOracleディレクトリオブジェクト名
DUMPFILE= ディレクトリ内に存在するファイル名(パスは不要)
権限付与 ユーザーにREAD, WRITE権限が必要

■ expdpとの連携例(ダンプと復元)

expdp your_user/your_password@orcl DIRECTORY=dump_dir DUMPFILE=export.dmp LOGFILE=export.log  
impdp your_user/your_password@orcl DIRECTORY=dump_dir DUMPFILE=export.dmp LOGFILE=import.log

■ 「.dmpファイルを渡されたけどどう使えばいいの?」という場合は?

以下の情報を確認しましょう:

  • .dmpファイルの保存場所(OSパス)
  • Oracleの接続情報(ユーザー、パスワード、サービス名)
  • 復元対象(テーブル単位、スキーマ単位、全体など)

状況に応じたimpdpコマンド例を提供できます。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?