Oracleデータベースのインポート・エクスポート操作手順

1. Linux環境でのデータベースインポート

まず、rootユーザーからoracleユーザーにスイッチします。

su - oracle

sysdba権限でsqlplusに接続します。

sqlplus / as sysdba

1.1 テーブルスペースとユーザーの作成

業務要件に応じて、テーブルスペースのサイズと自動拡張サイズを調整してください。

永続テーブルスペースの作成:

create tablespace PROD_DATA
logging
datafile '/u01/oracle/oradata/prod/PROD_DATA.dbf'
size 3072m
autoextend on
next 512m
extent management local;

一時テーブルスペースの作成:

create temporary tablespace PROD_DATA_TEMP
tempfile '/u01/oracle/oradata/prod/PROD_DATA_TEMP.dbf'
size 512m
autoextend on
next 128m
extent management local;

1.2 ユーザーの作成と権限付与

create user appuser identified by "P@ssw0rd123"
default tablespace PROD_DATA
temporary tablespace PROD_DATA_TEMP;
grant connect, resource, dba to appuser;

1.3 データ泵(Data Pump)によるインポート処理

sqlplusを終了し、コマンドラインに戻ります。

exit

impdpコマンドでdmpファイルをインポートします。主なパラメータの意味は以下の通りです:

  • REMAP_SCHEMA:エクスポート元のスキーマをインポート先のユーザーにマッピング
  • REMAP_TABLESPACE:テーブルスペースのマッピング先を変更
  • TABLE_EXISTS_ACTION:既存テーブルに対する処理(四つのオプション:SKIP, APPEND, TRUNCATE, REPLACE)
  • TRANSFORM=OID:N:オブジェクトOIDの生成を抑制

インポートコマンドの例:

impdp SYSTEM/Oracle123@orcl directory=DATA_PUMP_DIR dumpfile=export_data.dmp REMAP_SCHEMA=source_user:TARGET_USER remap_tablespace=SOURCE_DATA:TARGET_DATA transform=oid:n table_exists_action=TRUNCATE

2. Windows環境でのインポート操作

Windows環境では、PL/SQL DeveloperなどのGUIツールを利用できるため、より直感的な操作が可能です。CLIベースで実行したい場合は、バッチファイルを作成する方法が便利です。

以下のコマンドをメモ帳で記述し、拡張子を.batに変更して保存します。

impdp USERNAME/PASSWORD@XE directory=DATA_PUMP_DIR dumpfile=backup.dmp REMAP_SCHEMA=old_schema:new_schema remap_tablespace=OLD_TBS:NEW_TBS transform=oid:n table_exists_action=TRUNCATE
pause

バッチファイルをダブルクリックで実行すると、インポート処理が始まり、完了後に結果が表示されます。


3. データベースオブジェクトの削除

不要になったユーザーとテーブルスペースを削除する場合、以下の手順を実行します。

ユーザーの削除(CASCADEで関連オブジェクトも同時に削除):

DROP USER CLEANUP_USER CASCADE;

テーブルスペースの削除(物理ファイル含む):

DROP TABLESPACE CLEANUP_TBS INCLUDING CONTENTS AND DATAFILES;

物理ファイルなしでテーブルスペースのみ削除:

DROP TABLESPACE CLEANUP_TBS;

4. データエクスポート

expdpユーティリティ 사용하여 데이터베이스 객체를エクスポート합니다。

4.1 ローカル環境でのエクスポート

expdp USERNAME/PASSWORD schemas= SCHEMA_NAME directory=DATA_PUMP_DIR dumpfile=export_20240501.dmp compression=all

4.2 リモート接続でのエクスポート

expdp USERNAME/PASSWORD@//hostname:1521/SERVICE_NAME directory=DATA_PUMP_DIR dumpfile=remote_export.dmp content=all schemas=SCHEMA_NAME

content=allパラメータを使用すると、データと定義の両方をエクスポートします。

タグ: Oracle DataPump impdp expdp テーブルスペース

5月15日 01:09 投稿