Oracle資料庫的備份與恢複(expdp與impdp)
參考:
Oracle 11g 初學者指南
網上的資料都很零碎,而且大部分都不能完成要求的功能,所以做了些整理與完善
準備工作
1 在環境變數中隊bin目錄進行配置。預設情況下,安裝Oracle資料庫時,將自動設定相應的環境變數,
例如D:/oracle/product/10.2.0/db_1/BIN
2 在oracle安裝路徑的bin檔案夾中,確定expdp.exe和impdp.exe檔案的存在。
3 建立一個外部目錄。
data pump要求為將要建立和讀取的資料檔案和記錄檔建立目錄,用來指向
使用的外部目錄。在oracle中建立目錄對象時,可以使用 create directory
語句。
【執行個體】
1,檢查,進階環境變數-pathpath裡面有無bin目錄
2,檢查expdp.exe、impdp.exe檔案是否存在。
3,建立目錄
c:/> sqlplus /nolog
sql> conn sys/sys as sysdba
sql> create directory mypump as 'd:/app/temp';
sql> grant read, write on directory mypump to scot
實現資料匯出
【執行個體】
1,表模式匯出
expdp scott/scott_2009 directory=mypumpdumpfile=expdptab.dmp tables=dept,emp
(select * from dba_tablespaces; altertablespace testspace online;)
2,schema模式匯出
(ORA-39083 這個錯誤的原因是出在使用者的許可權上,而且是在匯出的時候在expdp之前執行 grant EXP_FULL_DATABASE to scott;)
expdp system/system directory=mypumpdumpfile=expdp.dmp schemas=scott nologfile=y
3,資料表空間資料匯出
expdp system/system directory=mypumpdumpfile=expdpspace.dmp tablespaces=EPISCMCC_DTS
4,全庫模式匯出
expdpsystem/system directory=mypump dumpfile=expdp.dmp full=y
實現資料匯入
1,表模式匯入
impdpscott/scott_2009 directory=mypump dumpfile=expdptab.dmp tables=dept,emp
2,schema模式匯入
impdpsystem/system directory=mypump dumpfile=expdp.dmp schemas=scott
3,資料表空間資料匯入
impdp system/tiger directory=mypump dumpfile=expdspaces.dmp remap_tablespace=EPISCMCC_DTS:EPISCMCC_DTS table_exists_action=replace
4,全庫模式匯入
impdpsystem/system directory=mypump dumpfile=expdp.dmp full=y table_exists_action=replace
其中:在資料表空間匯入與全庫匯入的時候要事先建立資料表空間與相應的資料表空間下的使用者具體步驟如下:
匯入到資料庫之前,要在新資料庫建立相應的資料表空間及使用者
其中來源資料庫中的資料表空間為EPICMCC_DTS,該資料表空間下的使用者為EPICMCC
/*建立暫存資料表空間*/
create temporary tablespace EPISCMCC_TEMP
tempfile 'C:\app\z002w00r-e01\oradata\orcl\EPISCMCC_TEMP.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local
/*建立資料表空間*/
create tablespace EPISCMCC_DTS
logging
datafile 'C:\app\z002w00r-e01\oradata\orcl\EPISCMCC_DTS.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local
/*建立使用者指定資料表空間*/
create user EPISCMCC identified by tiger
default tablespace EPISCMCC_DTS
temporary tablespace EPISCMCC_TEMP
/*給使用者授權*/
grant connect,resource,dba to EPISCMCC
----------------------------華麗麗的分割線----------------------------
Oracle匯入匯出expdp IMPDP詳解
Oracle 10g expdp匯出報錯ORA-4031的解決方案
Oracle 10gr2 rac expdp 報錯UDE-00008 ORA-31626
Oracle中利用expdp/impdp備份資料庫的使用說明
Oracle備份還原(expdp/impdp)