oracle exp/impを使用したインポートエクスポート(ユーザー)
例:リモートマシンからnxgyユーザーのすべてのオブジェクトとデータをエクスポートし、ネイティブデータベースのnxgyユーザーにインポートします(ユーザー名はカスタマイズ可能)
ネイティブnxgyユーザーがすでに存在する場合(データが不要で削除可能)、カスケードはユーザーのすべてのオブジェクトを削除します.
まず,リモートマシンからnxgyユーザのデータとオブジェクトをエクスポートする
2つの方法: expコマンドを使用して、プロンプト操作(ユーザをエクスポートするため、そのユーザでログインすればよい)に従って、エクスポートファイルのパスを記入した後、U(すなわち(2)U(ユーザ)がユーザのすべてのデータをエクスポートできる)を選択し、後でデフォルトを選択し、エクスポートユーザを記入する際に:nxgyと記入する. expコマンドを使用:exp user_name/password owner=エクスポートユーザfile=エクスポートアドレス
エクスポートに成功すると、警告なしでエクスポートを終了するというメッセージが表示されます.
追加する必要があるチェック:
1.リモートマシンでユーザーのデフォルトスペースを表示し、インポート時に同じスペースを作成します.
2.ユーザーが使用する表領域の表示
3.適切なサイズのデータファイルを作成するために、表領域に対応するデータファイルを表示する
4.本機の表空間を検査し、SYSTEM、USERS、GTZY_があるかどうかを確認するDATA
表領域なしgtzy_data、作成する必要がある
5.nxgyユーザーがネイティブに存在するかどうかを問い合わせる
6.表領域とユーザーの作成
本機のテスト用で、表の空間は小さくても構わないで、違いは遠隔のサーバーの上でデフォルトの表の空間はUSERSで、本機で、私はデフォルトの表の空間をGTZY_に変えましたDATA
最後にデータベース・ファイルをインポート
impコマンドの使用:imp user_name/password fromuser=エクスポートされたユーザーtouser=インポートされたユーザーfile=ファイルパス
C:\Users\administrator>imp nxgy/nxgy fromuser=nxgy touser=nxgy file=d:/dmp/user_nxgy.dmp
あるいはimpコマンドを使用して段階的に行います.ユーザー名の入力を促すのは、インポートしたユーザー名を入力し、その他はデフォルトです.
すなわちsys as sysdbaでログインし、ユーザー名でnxgyを記入すると、nxgyのデータがsysにインポートされます
インポートに成功すると、警告なしでインポートを終了するプロンプトが表示されます.
エクスポート・ユーザーはインポート・ユーザーとは異なり、警告が表示されます.
ネイティブnxgyユーザーがすでに存在する場合(データが不要で削除可能)、カスケードはユーザーのすべてのオブジェクトを削除します.
まず,リモートマシンからnxgyユーザのデータとオブジェクトをエクスポートする
2つの方法:
exp nxgy/nxgy owner=nxgy file=D:\dmp\user_nxgy.dmp
エクスポートに成功すると、警告なしでエクスポートを終了するというメッセージが表示されます.
追加する必要があるチェック:
1.リモートマシンでユーザーのデフォルトスペースを表示し、インポート時に同じスペースを作成します.
SQL> select username,default_tablespace from dba_users where username='NXGY';
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
NXGY USERS
2.ユーザーが使用する表領域の表示
SQL> select DISTINCT owner,tablespace_name from dba_extents where owner like 'NX
GY';
OWNER TABLESPACE_NAME
------------------------------ ------------------------------
NXGY SYSTEM
NXGY USERS
NXGY GTZY_DATA
3.適切なサイズのデータファイルを作成するために、表領域に対応するデータファイルを表示する
SQL> select file_name,tablespace_name,bytes from dba_data_files where tablespace
_name in ('SYSTEM','USERS','GTZY_DATA');
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BYTES
------------------------------ ----------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
USERS 9175040
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
SYSTEM 534773760
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\GTZY_DATA
GTZY_DATA 146800640
4.本機の表空間を検査し、SYSTEM、USERS、GTZY_があるかどうかを確認するDATA
SQL> select name from v$tablespace where name in ('SYSTEM','USERS','GTZY_DATA');
NAME
------------------------------
SYSTEM
USERS
表領域なしgtzy_data、作成する必要がある
5.nxgyユーザーがネイティブに存在するかどうかを問い合わせる
SQL> select username from dba_users where username='NXGY';
6.表領域とユーザーの作成
-- , gtzy_data , ,
--drop tablespace gtzy_data including contents and datafiles;
--drop tablespace gtzy_temp including contents and datafiles;
/* 1 : */
create temporary tablespace gtzy_temp
tempfile 'D:\java\oracle\oradata\orcl\gtzy_temp.dbf'
size 50m
autoextend on
next 50m maxsize 1024m
extent management local;
/* 2 : */
create tablespace gtzy_data
logging
datafile 'D:\java\oracle\oradata\orcl\gtzy_data.dbf'
size 50m
autoextend on
next 50m maxsize 1024m
extent management local;
--
--drop user nxgy cascade;
/* 3 : */
create user nxgy identified by nxgy
default tablespace gtzy_data
temporary tablespace gtzy_temp;
/* 4 : */
grant connect,resource,dba to nxgy;
本機のテスト用で、表の空間は小さくても構わないで、違いは遠隔のサーバーの上でデフォルトの表の空間はUSERSで、本機で、私はデフォルトの表の空間をGTZY_に変えましたDATA
最後にデータベース・ファイルをインポート
impコマンドの使用:imp user_name/password fromuser=エクスポートされたユーザーtouser=インポートされたユーザーfile=ファイルパス
C:\Users\administrator>imp nxgy/nxgy fromuser=nxgy touser=nxgy file=d:/dmp/user_nxgy.dmp
あるいはimpコマンドを使用して段階的に行います.ユーザー名の入力を促すのは、インポートしたユーザー名を入力し、その他はデフォルトです.
すなわちsys as sysdbaでログインし、ユーザー名でnxgyを記入すると、nxgyのデータがsysにインポートされます
インポートに成功すると、警告なしでインポートを終了するプロンプトが表示されます.
エクスポート・ユーザーはインポート・ユーザーとは異なり、警告が表示されます.