在Oracle11G之前我們通常的備份和恢復策略用的可能都是imp/emp簡單快速,上手方便,當時當上了11G之后,多出了一個Impdp/Empdp命令,這倆命令的出現主要是為了解決Oracle11G在使用上一些差別而出現的。在Oracle11g中,exp默認是不能導出空表,用傳統的exp/imp比較麻煩,所以出現了。
我們通常使用的時候,都是將表結構建立在用戶的下面,所以我們一般備份數據都是按照用戶來進行備份,但是用戶下的數據都是存儲在表空間的,所以備份數據之前,先查看數據庫用戶有那些表空間,將表空間名稱進行記錄,在恢復數據庫的時候要新建這些表空間,否則數據無法准確恢復。建立完表空間后,登錄plsql或者是sqlplus,以管理員的身份登錄,執行一下操作
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,此處一般不需要修改。
通過以上一系列的過程,現在你已經可以熟練操作數據庫恢復了。