ORACLE數據庫數據泵備份與恢復


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

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

 

一、expdp和impdp的使用

1.創建目錄

create directory DBBAK as '/bak';          #DBBAK名稱可以隨便命名   需要手工創建/bak,並且此目錄oracle用戶有讀取寫入權限

2.查看所有目錄

select * from dba_directories;

3.給test用戶賦予在指定目錄的操作權限,最好用root用戶賦予。

grant read,write on directory DBBAK to test;

4.導出數據

1)按用戶導

expdp test/test@orcl schemas=test dumpfile=expdp.dmp DIRECTORY=DBBAK logfile=expdp.log

2)並行進程parallel

expdp test/test@orcl directory=DBBAK dumpfile=expdp1.dmp parallel=10 job_name=test1

3)按表名導

expdp test/test@orcl TABLES=table01,table02 dumpfile=expdp2.dmp DIRECTORY=DBBAK;

4)按查詢條件導

expdp test/test@orcl directory=DBBAK dumpfile=expdp4.dmp Tables=table01 query='WHERE id=001';

5)按表空間導

expdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test,USERS;

6)導整個數據庫

expdp system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;

 

5、創建表空間及用戶

create tablespace test datafile '+data/test/datafile/data01.dbf' size 32000M;

alter tablespace test add datafile  '+data2/test/datafile/users02.dbf' size 32000M;

 

create user test identified by test  default tablespace TEST temporary tablespace TEMP;

grant connect,resource,dba to test;

grant read,write on directory DBBAK to test;

 

6、還原數據

1)導到指定用戶下

impdp test1/test1@orcl DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=test logfile=impdp.log

2)改變表的owner

impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp2.dmp TABLES=test.table01 REMAP_SCHEMA=test1:table11;

3)導入表空間

impdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test;

4)導入數據庫

impdb system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;

5)追加數據

impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

 

7、查看數據是否一致

select OBJECT_TYPE,COUNT(*) from all_objects where OWNER='TEST' group by OBJECT_TYPE;

 

二、expdp詳細參數  可以通過 expdp help=y查看

1.CONTENT 指定要導出的數據

 其中有效關鍵字為:

 (ALL),  (默認)導出結構和數據

DATA_ONLY:只導出數據

METADATA_ONLY:只導出結構

 

2.DIRECTORY 供轉儲文件和日志文件使用的目錄對象

 

3.DUMPFILE 目標轉儲文件 (expdat.dmp) 的列表

例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d

 

4.INCLUDE   包括特定的對象類型

例如 INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"

 

5.EXCLUDE 排除特定的對象類型  與INCLUDE相反

 

6.TABLES 標識要導出的表的列表

 

7.SCHEMAS 要導出的方案的列表  可支持多個

schemas=(user01,user02,user03)

 

8.TABLESPACES 標識要導出的表空間的列表

 

9.ATTACH 連接到現有作業, 例如 ATTACH [=作業名]

 

10.COMPRESSION

ALL :對導出的元數據和表數據都進行壓縮,得到的導出文件是最小的,耗時也是最長的。
DATA_ONLY :僅對表數據進行壓縮,對於大數據量的導出效果明顯,會比METADATA_ONLY方式得到更小的壓縮文件。
METADATA_ONLY :僅對元數據進行壓縮,而不會對表數據進行壓縮,這種壓縮執行后效果一般不是很明顯,不過速度比較快。
NONE :不進行任何的壓縮,導出后的文件也是最大的。
DEFAULT :默認方式,即不指定COMPRESSION參數,會采用默認的壓縮方式METADATA_ONLY。

 

11.FULL  導出整個數據庫 默認N

 

12.LOGFILE 日志文件名 (export.log)

 

13.NOLOGFILE    不寫入日志文件 (N)   不常用

 

14.PARFILE 指定參數文件

 

15.PARALLEL 更改當前作業的活動 worker 的數目  默認1

一般配合dumpfile使用,dmp文件數不能超過worker數目,如果小於worker的數目,未分配到文件的worker一直處於等待狀態。一般使用%U參數,他會根據worker數自動生成從1到n的數字名稱的文件

例:dumpfile=test1.dmp,test2.dmp parallel=5。   只會工作2個worker,其他3個worker一直處於wait狀態

dumpfile=test-%U.dmp parallel=5 

 

16.JOB_NAME 要創建的導出作業的名稱

 

17.QUERY 用於導出表的子集的謂詞子句

 

18.其他參數

 

ENCRYPTION_PASSWORD 用於創建加密列數據的口令關鍵字。

 

ESTIMATE 計算作業估計值, 其中有效關鍵字為:

 

(BLOCKS) 和 STATISTICS。

 

ESTIMATE_ONLY 在不執行導出的情況下計算作業估計值。

 


FILESIZE 以字節為單位指定每個轉儲文件的大小。

 

FLASHBACK_SCN 用於將會話快照設置回以前狀態的 SCN。

 

FLASHBACK_TIME 用於獲取最接近指定時間的 SCN 的時間。

 


NETWORK_LINK 鏈接到源系統的遠程數據庫的名稱。

 

SAMPLE 要導出的數據的百分比;

 

STATUS 在默認值 (0) 將顯示可用時的新狀態的情況下,

 

要監視的頻率 (以秒計) 作業狀態。

TRANSPORT_FULL_CHECK 驗證所有表的存儲段 (N)。

 

TRANSPORT_TABLESPACES 要從中卸載元數據的表空間的列表。

 

VERSION 要導出的對象的版本, 其中有效關鍵字為:

 

(COMPATIBLE), LATEST 或任何有效的數據庫版本

 

19.交互模式下命令

ADD_FILE 向轉儲文件集中添加轉儲文件。

CONTINUE_CLIENT 返回到記錄模式。如果處於空閑狀態, 將重新啟動作業。

EXIT_CLIENT 退出客戶機會話並使作業處於運行狀態。

FILESIZE 后續 ADD_FILE 命令的默認文件大小 (字節)。

HELP 總結交互命令。

KILL_JOB 分離和刪除作業。

PARALLEL 更改當前作業的活動 worker 的數目。

PARALLEL=<worker 的數目>。

START_JOB 啟動/恢復當前作業。

STATUS 在默認值 (0) 將顯示可用時的新狀態的情況下,

要監視的頻率 (以秒計) 作業狀態。

STATUS[=interval]

STOP_JOB 順序關閉執行的作業並退出客戶機。

STOP_JOB=IMMEDIATE 將立即關閉

數據泵作業。

 

 

 

三、impdp參數  大部分參數是和expdp一致的,下面主要介紹impdp特有的

1.REMAP_SCHEMA 將一個方案中的對象加載到另一個方案

例 REMAP_SCHEMA=user01:user02

 

2.REMAP_TABLESPACE 將表空間對象重新映射到另一個表空間

REMAP_TABLESPACE=DATA01:DATA02    (如果需要多個空間映射,用逗號隔開)

 

3.REMAP_DATAFILE 在所有 DDL 語句中重新定義數據文件引用。

REUSE_DATAFILES 如果表空間已存在, 則將其初始化 (N)。

SKIP_UNUSABLE_INDEXES 跳過設置為無用索引狀態的索引。

SQLFILE               將所有的 SQL DDL 寫入指定的文件。

STREAMS_CONFIGURATION 啟用流元數據的加載

TABLE_EXISTS_ACTION 導入對象已存在時執行的操作。

有效關鍵字: (SKIP), APPEND, REPLACE 和 TRUNCATE。

 

TRANSFORM 要應用於適用對象的元數據轉換。

TRANSFORM = transform_name:value[:object_type]

有效的轉換關鍵字: SEGMENT_ATTRIBUTES, STORAGE

OID 和 PCTSPACE。

transform_name

SEGMENT_ATTRIBUTES - If the value is specified as y, then segment attributes (physical attributes, storage attributes, tablespaces, and logging) are included, with appropriate DDL. The default is y.

如果將值指定為y,則包含段屬性(物理屬性,存儲屬性,表空間和日志記錄)以及適當的DDL。 默認值為y。

STORAGE - If the value is specified as y, then the storage clauses are included, with appropriate DDL. The default is y. This parameter is ignored if SEGMENT_ATTRIBUTES=n.

如果將值指定為y,則包含存儲子句,並使用適當的DDL。 默認值為y。 如果SEGMENT_ATTRIBUTES = n,則忽略此參數

OID - If the value is specified as n, then the assignment of the exported OID during the creation of object tables and types is inhibited. Instead, a new OID is assigned. This can be useful for cloning schemas, but does not affect referenced objects. The default value is y.

如果將值指定為n,則禁止在創建對象表和類型期間分配導出的OID。 而是分配新的OID。 這對於克隆模式很有用,但不會影響引用的對象。 默認值為y。

PCTSPACE - The value supplied for this transform must be a number greater than zero. It represents the percentage multiplier used to alter extent allocations and the size of data files.

為此轉換提供的值必須是大於零的數字。 它表示用於更改范圍分配和數據文件大小的百分比乘數。

 

value

The type of value specified depends on the transform used. Boolean values (y/n) are required for the SEGMENT_ATTRIBUTES, STORAGE, and OID transforms. Integer values are required for the PCTSPACE transform.

指定的值類型取決於使用的轉換。 SEGMENT_ATTRIBUTES,STORAGE和OID轉換需要布爾值(y / n)。 PCTSPACE轉換需要整數值。

 

object_type

The object_type is optional. If supplied, it designates the object type to which the transform will be applied. If no object type is specified, then the transform applies to all valid object types. The valid object types are TABLE、INDEX、CLUSTER、TABLESPACE...

object_type是可選的。 如果提供,則指定將應用變換的對象類型。 如果未指定任何對象類型,則轉換將應用於所有有效對象類型。 有效的對象類型是TABLE,INDEX,CLUSTER,TABLESPACE ......

 

TRANSPORT_DATAFILES 按可傳輸模式導入的數據文件的列表。

TRANSPORT_FULL_CHECK 驗證所有表的存儲段 (N)。

TRANSPORT_TABLESPACES 要從中加載元數據的表空間的列表。

僅在 NETWORK_LINK 模式導入操作中有效。

 

與expdp相似參數

ATTACH 連接到現有作業, 例如 ATTACH [=作業名]。

CONTENT 指定要加載的數據, 其中有效關鍵字為:

(ALL), DATA_ONLY 和 METADATA_ONLY。

DIRECTORY 供轉儲文件, 日志文件和 sql 文件使用的目錄對象。

DUMPFILE 要從 (expdat.dmp) 中導入的轉儲文件的列表,

例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。

ENCRYPTION_PASSWORD 用於訪問加密列數據的口令關鍵字。

此參數對網絡導入作業無效。

ESTIMATE 計算作業估計值, 其中有效關鍵字為:

(BLOCKS) 和 STATISTICS。

EXCLUDE 排除特定的對象類型, 例如 EXCLUDE=TABLE:EMP。

FLASHBACK_SCN 用於將會話快照設置回以前狀態的 SCN。

FLASHBACK_TIME 用於獲取最接近指定時間的 SCN 的時間。

FULL 從源導入全部對象 (Y)。

HELP 顯示幫助消息 (N)。

INCLUDE 包括特定的對象類型, 例如 INCLUDE=TABLE_DATA。

JOB_NAME 要創建的導入作業的名稱。

LOGFILE 日志文件名 (import.log)。

NETWORK_LINK 鏈接到源系統的遠程數據庫的名稱。

NOLOGFILE 不寫入日志文件。

PARALLEL 更改當前作業的活動 worker 的數目。

PARFILE 指定參數文件。

QUERY 用於導入表的子集的謂詞子句。

SCHEMAS 要導入的方案的列表。

STATUS 在默認值 (0) 將顯示可用時的新狀態的情況下,

要監視的頻率 (以秒計) 作業狀態。

TABLES 標識要導入的表的列表。

TABLESPACES 標識要導入的表空間的列表。

VERSION 要導出的對象的版本, 其中有效關鍵字為:

(COMPATIBLE), LATEST 或任何有效的數據庫版本。

僅對 NETWORK_LINK 和 SQLFILE 有效。

 

 


免責聲明!

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



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