使用數據泵expdp、impdp備份和還原oracle數據庫


前面我已經整理過EXP 和 IMP備份和還原Oracle數據庫的方法

今天我們只講使用數據泵 expdp 和impdp的方法,有的同學會問他們有什么差別呢?

EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。

對於10g版本以上的服務器,使用exp通常不能導出0行數據的空表,而此時必須使用expdp導出。

EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。

數據泵導出包括導出表,導出方案,導出表空間,導出數據庫4種方式.

IMP只適用於EXP導出的文件,不適用於EXPDP導出文件;IMPDP只適用於EXPDP導出的文件,而不適用於EXP導出文件。

一 備份:

1)通過WIN+R CMD登錄sqlplus,輸入數據庫用戶名和密碼進入sql

 

2)創建邏輯目錄(最重要的一步,不然會出現找不到目錄)

創建備份邏輯目錄,此目錄不是真實的目錄(單引號里面的內容是備份的目錄,可以先查看一下所有的目錄:select * from dba_directories;)

下面我們創建新的邏輯目錄

SQL>create or replace directory backup as 'E:\oraclebf\PDMIS';
注意:'E:\oraclebf\PDMIS'; 引號里的目錄,一定要手動創建好。用來存放oracle數據庫備份文件。

目錄創建成功,記得quit切回CMD目錄下,否則不能成功進行EXP或者expdp的備份。

3)導出數據庫

退出數據庫,進入DOS命令行界面,執行下列命令導出數據庫

expdp pdmis/pdmis@pdmis_test directory=backup schemas=pdmis dumpfile=pdmis_20190228.dmp logfile=pdmis_20190228.log

directory=backup 和步驟二建立的邏輯目錄進行關聯(邏輯目錄名=backup)

schemas=pdmis  導出當前用戶的數據(用戶名=pdmis)

dumpfile=pdmis_20190228.dmp

logfile=pdmis_20190228.log    以上備份文件和日志文件都會存儲在邏輯目錄backup關聯的真實路徑下 E:\oraclebf\PDMIS

4)查看導出文件

查看文件存儲的目錄。

二 備份還原前的准備

注:在本地或者另外一台電腦都可以進行還原

1)刪除表空間和用戶

用超級管理員身份登錄 sys as sysdba

2)創建表空間和用戶,並給創建的用戶授權

三 備份還原

1)通過WIN+R CMD登錄sqlplus,輸入數據庫用戶名和密碼進入sql

 

2)創建邏輯目錄(最重要的一步,不然會出現找不到目錄)(為什么需要創建兩次邏輯目錄,因為我是在另一台電腦進行的數據還原)

創建備份邏輯目錄,此目錄不是真實的目錄(單引號里面的內容是備份的目錄,可以先查看一下所有的目錄:select * from dba_directories;)

下面我們創建新的邏輯目錄

SQL>create or replace directory backup as 'D:\oraclebf\PDMIS';
注意:'D:\oraclebf\PDMIS'; 引號里的目錄,一定要手動創建好。用來存放oracle數據庫備份文件。

 

3)檢查創建的真實目錄

將備份文件存放在邏輯目錄連接的真實目錄下

4)導入備份文件

DOS命令下執行下面的命令

impdp pdmis/pdmis@orcl directory=backup dumpfile=pdmis_20190228.dmp logfile=20190228.log

導入成功,有8個錯誤先忽略掉

四:知識拓展

用expdp導出數據

1)導出用戶
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir;

2)導出表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

3)按查詢條件導
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

4)按表空間導
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)導整個數據庫
expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;


用impdp導入數據

1)導入用戶(從用戶scott導入到用戶scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott;

2)導入表(從scott用戶中把表dept和emp導入到system用戶中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;

3)導入表空間
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;

4)導入數據庫
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

5)追加數據
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM