■ バックアップ手順
[1] SqlPlusを使って、SYSTEM権限でログインし、Oracelディレクトリオブジェクトを作成する。(初回のみ) [2] (SqlPlusではなく)コマンドプロンプトにより、Oracelエクスポートユーティリティーを実行する 以下、手順詳細。
[1] Oracelディレクトリオブジェクトを作成する
構文CREATE DIRECTORY 【ディレクトリ名】 AS '【ディレクトリのパス】';補足
『SELECT directory_name,directory_path from dba_directories;』で、設定を確認できる例
CREATE DIRECTORY backUpFalder AS 'c:\DatabaseBackup';
[2] Oracelエクスポートユーティリティーを実行する
構文expdp 【ユーザ名】/【パスワード】@【接続先】 DIRECTORY=【ディレクトリ名】 DUMPFILE=【ダンプファイル名】補足
最後に『;』を付けると、ダンプファイル名に『;』が付与されてしまうので、注意。(付けないほうがいい)例
EXPDP testUser/passward@localhost:1521/xe DIRECTORY=backUpFalder DUMPFILE=backup.dmp
■ リストア
[1] SYSTEM権限でログインする [2] インポート先データベースのスキーマ削除 [3] ユーザを作成する [4] 作成したユーザに権限を付与する [5] バックアップファイルのインポートする
[1] SYSTEM権限でログインする
「;」を入れないことパスワードが「passward」で、OracleのExpressの場合
sqlplus system/passward@localhost:1521/xe
[2] インポート先データベースのスキーマ削除
* ユーザとそのユーザの所有データベースオブジェクトを削除構文
DROP USER 【ユーザ名】 CASCADE; [補足] CASCADEを指定すると、そのユーザのスキーマ内にあるすべてのオブジェクトを削除できる例
DROP USER testUser CASCADE;
[3] ユーザを作成する
構文CREATE USER 【ユーザ名】 IDENTIFIED BY "【パスワード】" DEFAULT TABLESPACE 【表領域名】 TEMPORARY TABLESPACE 【一時テーブル領域名】 ACCOUNT UNLOCK;補足
『SELECT * FROM all_users;』により、すべてのユーザーを確認することができるため、 コマンドを実行し、実際に作成されているかどうか確認するといい例
CREATE USER testUser IDENTIFIED BY "passward" DEFAULT TABLESPACE testTable TEMPORARY TABLESPACE tempTable ACCOUNT UNLOCK;参考資料
http://luna.gonna.jp/oracle/ora_user.html
[4] 作成したユーザに権限を付与する
構文GRANT 【ロール】 TO 【ユーザ名】;例
GRANT CONNECT TO testUser; GRANT DBA TO testUser;補足
* CONNECTロールにより、表を作成(CREATE TABLE)したりする等の権限が与えられる * DBAロールにより、データベースに新しいユーザを追加する等の権限が与えられる
[5] バックアップファイルのインポートする
* (SqlPlusではなく)コマンドプロンプトにより、以下をコマンドする (「;」を入れないこと)構文
IMPDP 【ユーザ】/【パスワード】@【接続先】dumpfile=【ダンプファイル名】DIRECTORY=【ディレクトリ名】 LOGFILE=【ログファイル名】 TABLE_EXISTS_ACTION=replace remap_schema=【元スキーマ】:【接続先スキーマ】REMAP_TABLESPACE 【元スキーマ】:【接続先スキーマ】;例
impdp testUser/passward@localhost:1521/orcl dumpfile=testUser_dump.DMP DIRECTORY=dba_directories LOGFILE=export.log TABLE_EXISTS_ACTION=replace remap_schema=testUser:testUser