oracle exp/impを使用したインポートエクスポート(ユーザー)

3808 ワード

例:リモートマシンからnxgyユーザーのすべてのオブジェクトとデータをエクスポートし、ネイティブデータベースのnxgyユーザーにインポートします(ユーザー名はカスタマイズ可能)
ネイティブnxgyユーザーがすでに存在する場合(データが不要で削除可能)、カスケードはユーザーのすべてのオブジェクトを削除します.
まず,リモートマシンからnxgyユーザのデータとオブジェクトをエクスポートする
2つの方法:
  • expコマンドを使用して、プロンプト操作(ユーザをエクスポートするため、そのユーザでログインすればよい)に従って、エクスポートファイルのパスを記入した後、U(すなわち(2)U(ユーザ)がユーザのすべてのデータをエクスポートできる)を選択し、後でデフォルトを選択し、エクスポートユーザを記入する際に:nxgyと記入する.
  • expコマンドを使用:exp user_name/password owner=エクスポートユーザfile=エクスポートアドレス
  • 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にインポートされます
    インポートに成功すると、警告なしでインポートを終了するプロンプトが表示されます.
    エクスポート・ユーザーはインポート・ユーザーとは異なり、警告が表示されます.