原有的導出和導入技術(shù)基于客戶機,而數(shù)據(jù)泵技術(shù)基于服務(wù)器。默認所有的轉(zhuǎn)儲,日志和其他文件都建立在服務(wù)器上。以下是數(shù)據(jù)泵技術(shù)的主要優(yōu)點:
1、改進了性能
2、重新啟動作業(yè)的能力
3、并行執(zhí)行的能力
4、關(guān)聯(lián)運行作業(yè)的能力
5、估算空間需求的能力
6、操作的網(wǎng)格方式
7、細粒度數(shù)據(jù)導入功能
8、重映射能力
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、重慶網(wǎng)站建設(shè)公司、微信開發(fā)、微信小程序開發(fā)、集團成都定制網(wǎng)站等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都墻體彩繪等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊許!
1、將數(shù)據(jù)從開發(fā)環(huán)境轉(zhuǎn)到測試環(huán)境或產(chǎn)品環(huán)境
2、將數(shù)據(jù)從開發(fā)環(huán)境轉(zhuǎn)到測試環(huán)境或產(chǎn)品環(huán)境
3、在修改重要表之前進行備份
4、備份數(shù)據(jù)庫
5、把數(shù)據(jù)庫對象從一個表空間移動到另一個表空間
6、在數(shù)據(jù)庫直接移植表空間
7、提取表或其他對象的DDL
注意:數(shù)據(jù)庫不建立完備的備份,因為在導出文件中沒有災(zāi)難發(fā)生時的最新數(shù)據(jù)。但是對于較小的數(shù)據(jù)庫和個別的表空間的導出,數(shù)據(jù)導出仍然是一個可行的備份工具。
數(shù)據(jù)泵技術(shù)主要有三個以下部件組成:
?DBMS_DATAPUMP程序包。 這是驅(qū)動數(shù)據(jù)字段元數(shù)據(jù)裝載和卸載的主要引擎。DBMS_DATAPUMP程序包包括數(shù)據(jù)泵技術(shù)的核心部分,此核心部分以過程的形式出現(xiàn),實際驅(qū)動數(shù)據(jù)裝載和卸載。
?DBMS_METADATA。 為了提取并修改元數(shù)據(jù),Oracle提供了DBMS_METADATA程序包。
?命令行客戶機。兩個實用程序expdp和impdp進行導出和導入工作
對于數(shù)據(jù)泵轉(zhuǎn)儲文件,可以使用三種類型的文件:
?轉(zhuǎn)儲文件:此文件存儲實際原數(shù)據(jù)
?日志文件:記錄數(shù)據(jù)泵操作的消息和結(jié)果
?SQL文件:數(shù)據(jù)泵使用一種特殊的參數(shù)sqlfile,把導入作業(yè)中要執(zhí)行的所有DDL語句寫入一個文件中。數(shù)據(jù)泵并不實際執(zhí)行SQL,它僅僅是將DDL語句寫入由SQLFILE參數(shù)制定的文件中。
chmod -R 777 /opt //root模式下開放/opt文件夾的權(quán)限
su - oracle //切換oracle用戶
mkdir /opt/app/bak //創(chuàng)建數(shù)據(jù)泵備份文件目錄
sqlplus / as sysdba //使用管理員身份登錄
SQL> create directory dump_dir as '/opt/app/bak'; #新建目錄對象dump_dir,將目錄"/opt/app/bak"進行映射
SQL> create user c##tom identified by abc123 #創(chuàng)建"c##tom"測試用戶并授權(quán)
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
grant connect,resource,dba to c##tom; #授權(quán)連接、管理數(shù)據(jù)庫以及dba管理員權(quán)限
grant read,write on directory dump_dir to c##tom; #授權(quán)用戶對directory目錄進行讀、寫執(zhí)行權(quán)限
conn c##tom/abc123 #切換c##tom用戶
用tom用戶創(chuàng)建測試數(shù)據(jù):info,grade兩個表
create table info
(
id number(5),
name varchar(10)
);
insert into info values(1,'zhangsan'); #隨便插入一條數(shù)據(jù)
create table grade
(
id number(5),
name varchar(10),
score varchar(5)
);
insert into grade values(1,'lisi','88'); #表grade中插入一條數(shù)據(jù)
導出數(shù)據(jù)
expdp c##tom/abc123 directory=dump_dir dumpfile=tom.dmp tables=info,grade
#導出c##tom用戶下的表
解析:
directory #指定其路徑映射的別名名稱,導出數(shù)據(jù)的路徑
dumpfile #指定轉(zhuǎn)儲文件的名稱,默認名稱為expdat.dmp
tables #指定表模式導出
查看導出的數(shù)據(jù)文件: ls /opt/app/bak/
導入數(shù)據(jù)
sqlplus c##scott/abc23 #使用"tom"用戶登錄
SQL> drop table info; #模擬故障刪除其中一張表
恢復數(shù)據(jù):
impdp c##tom/tom123 directory=dump_dir dumpfile=tom.dmp tables=info #恢復info表及其數(shù)據(jù)
sqlplus c##tom/tom123 #登錄"scott"用戶
SQL> select table_name from user_tables; #查看是否恢復成功
數(shù)據(jù)泵使用EXPDP和IMPDP時應(yīng)該注意的事項:
1、EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。
2、EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用。
3、IMP只適用于EXP導出的文件,不適用于EXPDP導出文件;IMPDP只適用于EXPDP導出的文件,而不適用于EXP導出文件。
4、expdp或impdp命令時,可暫不指出用戶名/密碼@實例名 as 身份,然后根據(jù)提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dir;