對於資料的的遷移,特別是不同版本之間和不同系統之間的遷移,使用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中進行介紹
補充:對於資料庫的遷移,務必設定相同的字元集。或者相容的字元集