EXPDP/IMPDP
在Oracle11G之前我們通常的備份和恢復策略用的可能都是imp/emp簡單快速,上手方便,當時當上了11G之後,多出了一個Impdp/Empdp命令,這倆命令的出現主要是為了解決Oracle11G在使用上一些差別而出現的。在Oracle11g中,exp默認是不能導出空表,用傳統的exp/imp比較麻煩,所以出現了。
我們通常使用的時候,都是將表結構建立在用戶的下面,所以我們一般備份數據都是按照用戶來進行備份,但是用戶下的數據都是存儲在表空間的,所以備份數據之前,先查看數據庫用戶有那些表空間,將表空間名稱進行記錄,在恢復數據庫的時候要新建這些表空間,否則數據無法準確恢復。建立完表空間後,登錄
connect sys/password as sysdba
create or replace directory db_back as ‘D:\db_back‘;
grant read,write on directory db_back to sys;
select * from dba_directories;
通過以上步驟實際上是建立的邏輯路徑,不會真的在硬盤中建立相印的文件,還需手工在D盤建立db_back文件目錄,以後無路備份還是恢復,同自動將備份文件和日誌文件定位到這個盤符。
導出數據庫備份:
empdp sys/password Directory db_back schemas=要備份的用戶名 dumpfile=backup.dmp;
導入數據庫備份
impdp sys.password directory db_back dumpfile=backup.dmp remap_schema=備份出來的用戶:備份進入的用戶 logfile=logfile.log transform=OID:N;
《名詞解釋》
sys/password-----------管理員用戶名和密碼(system也可以)
directory------------------數據庫中創建的邏輯路徑
schemas------------------需要備份的用戶名
dumpfile------------------備份數據庫文件
remap_schema---------前面的用戶為備份出來的用戶,後面的用戶為備份要導入的用戶,是用戶之前的映射
transform-OID:N------賦予的新的OID,此處一般不需要修改。
導出HR用戶下所有數據
[oracle@oracle ~]$ expdp system/oracle dumpfile=hr_expdp.dmp logfile=hr_expdp.log schemas=hr directory=d1
把HR用戶所有數據導入到HR6中
impdp system/oracle remap_schema=hr:hr6 dumpfile=hr_expdp.dmp logfile=hr6_impdp.log directory=d1;
導出與導入空表
expdp system/oracle dumpfile=kongbiao.dmp tables=hr.employees content=metadata_only directory=d1
impdp system/oracle remap_schema=hr:scott dumpfile=kongbiao.dmp directory=d1
Content=data_only 只導出數據
Content=metadata_only 只導出對象定義
EXPDP/IMPDP