oracle imp、exp命令 精簡介紹

來源:互聯網
上載者:User

 對於資料的的遷移,特別是不同版本之間和不同系統之間的遷移,使用exp/imp可以完成,
當然,我們推薦使用expdp/impdp進行資料的匯入,匯出。下面我們簡單講講exp、imp的基本操作


1 整個資料庫的匯出、匯入
 
 a 匯出、匯入之前我們需要確認資料庫的字元集,設定環境變數NLS_LANG
   export NLS_LANG=AMERICAN_AMERICA.UTF8(這是我的參數,具體的根據實際情況而定)

   #查詢oracle字元集參數
    select * from v$nls_parameters
    select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
    select value from nls_database_parameters t where t.PARAMETER='NLS_NCHAR_CHARACTERSET'
 b 執行匯出命令,需要使用一定許可權的使用者,否則只會匯出該使用者擁有的對象

    exp system/root file=/backup/full.dmp log=/backup/full.log full=y
 
 c 進行匯入命令
  
    imp system/root file=/backup/full.dmp log=/backup/full2.log full=y ignore=y

2 基於使用者進行資料的匯出、匯入
   export NLS_LANG=AMERICAN_AMERICA.UTF8

   a 執行匯出命令,使用對應的使用者,可以指定owner,也可以不指定  但是不能指定full參數
    
     exp scott/root file=/backup/scott.dmp log=/backup/scott.log  或者
     exp system/root file=/backup/scott.dmp log=/backup/scott.log owner=scott

   b 如果沒有使用者和資料表空間,我們需要先建立指定的資料表空間和使用者
     
      create tablespace "hsj"
      logging
      DATAFILE '/u01/oradata/orcl/heshengjun.ora' SIZE 500M REUSE EXTENT
      MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO ;

      建立使用者

      create user hsj identified by root
      default tablespace hsj
      temporary tablespace temp;

   c 授予scott許可權,具體使用者根據自己的使用者而定

 GRANT UNLIMITED TABLESPACE TO "SCOTT";
 GRANT CREATE DATABASE LINK TO "SCOTT";
 GRANT CREATE ANY TABLE TO "SCOTT";
 GRANT CREATE ANY TRIGGER TO "SCOTT";
 GRANT CREATE ANY VIEW TO "SCOTT";
 GRANT CREATE DATABASE LINK TO "SCOTT";
 GRANT CREATE PROCEDURE TO "SCOTT";
 GRANT CREATE TABLE TO "SCOTT";
 GRANT CREATE TABLESPACE TO "SCOTT";
 GRANT CREATE TRIGGER TO "SCOTT";
 GRANT DROP ANY TABLE TO "SCOTT";
 GRANT INSERT ANY TABLE TO "SCOTT";
 GRANT UPDATE ANY TABLE TO "SCOTT";
 GRANT CONNECT TO "SCOTT";
 GRANT RESOURCE TO "SCOTT";
 GRANT IMP_FULL_DATABASE to "SCOTT"
 GRANT DBA TO "SCOTT";

    d 執行匯入命令
     
      imp scott/root file=/backup/scott.dmp log=/backup/scott2.log full=y

      或者
 
      imp scott/root file=/backup/scott.dmp log=/backup/scott2.log fromuser=scott touser=scott

  3 基於表對象的匯出匯入
    export NLS_LANG=AMERICAN_AMERICA.UTF8
    a 匯出表 對象 demp 和emp
      #在linux系統下,對特殊符號轉義
      exp scott/root file=/backup/table.dmp log=/backup/table.log tables=\(dept,emp\);
    b 匯入表 對象 demp 和emp
      imp scott/root file=/backup/table.dmp log=/backup/table2.log full=y
 或者
      imp  scott/root file=/backup/table.dmp log=/backup/table2.log tables=\(dept,emp\);

 總結:對於其他參數,比如緩衝 buffer,壓縮 compress 都沒有配置,有興趣可以參考文檔進行配置
 對於讀取參數檔案,將會在expdp、impdp中進行介紹

 

補充:對於資料庫的遷移,務必設定相同的字元集。或者相容的字元集

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.