資料幫浦是10g推出的功能,個人倒資料比較喜歡用資料幫浦。
其匯入的時候利用remap引數很方便轉換表空間以及schema,並且可以忽略服務端與客戶端字符集問題(exp/imp需要排查字符集)。
資料幫浦也有不方便的地方,如果遠端匯出匯入,必須安裝資料庫服務端(client不行);需要在資料庫中建立乙個路徑directory(dba_directories);並且主流工具支援exp/imp的匯入匯出(plsql developer),所以發現資料幫浦流行程度沒有想象中高。
以下簡單介紹schema的匯入匯出
以schema方式匯出生產庫使用者下所有物件,並匯入測試庫。
注:eamdb為生產庫,eamprd為生產庫使用者,密碼為eamprd
eamuat為測試庫,eamprduat為測試庫使用者,密碼為eamprduat
一、生產庫的匯出(以sqlplus命令列的方式)。
1.以sys或者system使用者身份登入生產資料庫。
2.建立schema匯出路徑(dump_dir名稱可替換),並在dba_directories中檢視
create directory dump_dir as 『/***/***』;
select
*from dba_directories;
3.把匯出路徑與匯出許可權授權給eamprd,如果用system等高階帳號匯出,則不用。
grantread,write on directory dump_dir to
eamprd;
grant exp_full_database to eamprd;
4.退出sqlplus,在oracle系統使用者下執行,匯出對應的schema,推薦第二種。
expdp eamprd/eamprd@eamdb directory=dump_dir dumpfile=eamdb.dmp
expdp system
/***x@eamdb directory=dump_dir dumpfile=eamdb.dmp schemas=eamprd
匯出重點引數:
版本:高往低需加version=xx.x 匯出某些張表tables=***x content=metadata_only(只要結構) content=data_only(只要資料)
5.把eamdb.dmp拷貝到測試庫。
二、測試庫的匯入
1.以sys或者system身份登陸測試庫。
2.建立匯入表空間和臨時表空間(名稱、路徑、表空間大小,請自行替換)。
create tablespace tbs_eamuat datafile '/***x/***xx/eamuat.dbf
' size 10240m autoextend on
next
1024m maxsize 20480m;
create
temporary tablespace eamuat_temp tempfile '
/***/***/eamuat_temp.dbf
' size 5120m;
3.建立使用者及賦予許可權(也可以不建立使用者),匯入時最好給予使用者dba許可權,以防匯入時建立某些物件許可權不夠,注意需要**其對users表空間的許可權。
createuser eamprduat identified by eamprduat default tablespace tbs_eamuat temporary
tablespace eamuat_temp;
grant connect,resource,create
view,create session,dba to
eamprduat;
revoke unlimited tablespace from
eamprduat;
alter
user eamprduat quota unlimited on tbs_eamuat;
4.建立匯入路徑(把eamdb.dmp放在此路徑下),並授權。
create directory dump_dir as'/***xx/***xx';
grant
read,write on directory dump_dir to eamprduat;
5.匯入資料(在oracle系統使用者下執行),注意remap_schema引數,請自行替換
impdp eamprduat/eamprduat@eamuat directory=dump_dir dumpfile=eamdb.dmp logfile=impdp.log remap_schema=eamprd:eamprduat;
匯入重點引數:
remap_schema=eamprd:eamprduat,eam***:***,***:***
remap_tablespace=eamdev:eam***,eam***:***,***:***
exclude=table_statistics 此引數是取消對錶的統計資訊收集,如果表太多,不取消的話特別慢,之後可以手動收集,或等oracle自動收集。
execute dbms_stats.gather_table_stats(ownname=>'username',tabname=>'table_name',cascade=>true)
如匯入報錯:ora-31684: object type user:"***xx" already exists,不用理會,因為之前建立了使用者。
也可以在匯入的語句中直接remap乙個不存在的使用者,會自動生成,其密碼和許可權與匯出時候一樣,但其表空間如果不想用users,必須手工建立。
oracle 資料幫浦匯入與資料幫浦匯出
資料幫浦匯入 指令 impdp 一 資料庫所有物件的匯入 impdp system tiger dumpfile pump dir mydatabase dat filesize 100m nologfile y job name zhang full y estimate only 二 使用者資料...
Oracle資料幫浦詳解
oracle資料幫浦詳解 oracle database 10g中採用了資料幫浦 data dump 技術,使dba或開發人員可以將資料庫元資料 物件定義 和資料快速移動到另乙個oracle資料庫中。一 資料幫浦匯出匯入 expdp和impdp 的作用 1 實現邏輯備份和邏輯恢復。2 在資料庫使用者...
oracle 資料幫浦使用
1 建立directory create or replace directory ekltrustdirectory as home oracle eklxt restoredb 注意 1 要確保路徑在服務上存在 2 如果linux環境要有目錄要有讀寫許可權 2 匯出備份 export oracl...