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パラメータを使用すると、データと定義の両方をエクスポートします。