1. 程式人生 > >12c數據泵

12c數據泵

基於 man comm tap dep ini har 51cto sid

1.一致性導出
在OGG同步的項目中,總會遇到默寫表同步失敗需要重新表級初始化。這時候采用數據泵來導入導出就需要考慮數據一致性問題,確保我們導出的數據是基於某個scn或者某個時間戳,這樣做才能讓已經停止的復制進程(replicat)知道從哪裏開始追加數據庫變化。

12c中數據泵為我們提供了兩種一致性導出的參數,一個是基於scn的FLASHBACK_SCN,另一個是基於時間戳的FLASHBACK_TIME
scott@clonepdb_plugPDB> select * from test;

 EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO

  7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20
  7499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         30
  7521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         30
  7566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    20
  7654 MARTIN     SALESMAN        7698 1981-09-28 00:00:00       1250       1400         30
  7698 BLAKE      MANAGER         7839 1981-05-01 00:00:00       2850                    30
  7782 CLARK      MANAGER         7839 1981-06-09 00:00:00       2450                    10
  7839 KING       PRESIDENT            1981-11-17 00:00:00       5000                    10
  7844 TURNER     SALESMAN        7698 1981-09-08 00:00:00       1500          0         30
  7900 JAMES      CLERK           7698 1981-12-03 00:00:00        950                    30
  7902 FORD       ANALYST         7566 1981-12-03 00:00:00       3000                    20

 EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO

  7934 MILLER     CLERK           7782 1982-01-23 00:00:00       1300                    10

12 rows selected.

Elapsed: 00:00:00.03
scott@clonepdb_plugPDB> select to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss‘) time, to_char(dbms_flashback.get_system_change_number) scn from dual;

TIME SCN


2018-01-23 10:15:22 7069818

Elapsed: 00:00:00.01

scott@clonepdb_plugPDB> truncate table test;

Table truncated.

Elapsed: 00:00:00.18
scott@clonepdb_plugPDB> select * from test;

no rows selected

Elapsed: 00:00:00.01
C:\Users\Administrator>expdp scott/tiger@clonepdb_plug dumpfile=systemdmp:expdp
.dmp logfile=systemdmp:expdp.log REUSE_DUMPFILES=y tables=test flashback_scn=70
72121

Export: Release 12.2.0.1.0 - Production on 星期二 1月 23 10:20:01 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.

連接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Produc
tion
啟動 "SCOTT"."SYS_EXPORT_TABLE_01": scott/****@clonepdb_plug dumpfile=syste
mdmp:expdp.dmp logfile=systemdmp:expdp.log REUSE_DUMPFILES=y tables=test flashba
ck_scn=7072121
處理對象類型 TABLE_EXPORT/TABLE/TABLE_DATA
處理對象類型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
處理對象類型 TABLE_EXPORT/TABLE/STATISTICS/MARKER
處理對象類型 TABLE_EXPORT/TABLE/TABLE
ORA-31693: 表數據對象 "SCOTT"."TEST" 無法加載/卸載並且被跳過, 錯誤如下:
ORA-02354: 導出/導入數據時出錯
ORA-01466: 無法讀取數據 - 表定義已更改

C:\Users\Administrator>expdp scott/tiger@clonepdb_plug dumpfile=systemdmp:expdp
.dmp logfile=systemdmp:expdp.log REUSE_DUMPFILES=y tables=test flashback_scn=70
74190

Export: Release 12.2.0.1.0 - Production on 星期二 1月 23 10:22:29 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.

連接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Produc
tion
啟動 "SCOTT"."SYS_EXPORT_TABLE_01": scott/****@clonepdb_plug dumpfile=syste
mdmp:expdp.dmp logfile=systemdmp:expdp.log REUSE_DUMPFILES=y tables=test flashba
ck_scn=7074190
處理對象類型 TABLE_EXPORT/TABLE/TABLE_DATA
處理對象類型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
處理對象類型 TABLE_EXPORT/TABLE/STATISTICS/MARKER
處理對象類型 TABLE_EXPORT/TABLE/TABLE
. . 導出了 "SCOTT"."TEST" 8.695 KB 12 行
已成功加載/卸載了主表 "SCOTT"."SYS_EXPORT_TABLE_01"


SCOTT.SYS_EXPORT_TABLE_01 的轉儲文件集為:
C:\ORACLEBACK\DATAPUMP\EXPDP.DMP
作業 "SCOTT"."SYS_EXPORT_TABLE_01" 已於 星期二 1月 23 10:22:40 2018 elapsed 0 00
:00:11 成功完成
truncate表不能用,del可以用,update可以,insert可以
2.克隆用戶
導出schema為HR的所有內容
C:\Users\Administrator>expdp system/xxxx@pdbtest logfile=systemdmp:expd
p.log REUSE_DUMPFILES=y DUMPFILE=systemdmp:tablespace.dmp schemas=hr

Export: Release 12.2.0.1.0 - Production on 星期二 1月 23 10:39:03 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.

連接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Produc
tion
自動啟用 FLASHBACK 以保持數據庫完整性。
啟動 "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/****@pdbtest logfile=systemdmp
:expdp.log REUSE_DUMPFILES=y DUMPFILE=systemdmp:tablespace.dmp schemas=hr
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA
處理對象類型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理對象類型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
處理對象類型 SCHEMA_EXPORT/STATISTICS/MARKER
處理對象類型 SCHEMA_EXPORT/USER
處理對象類型 SCHEMA_EXPORT/SYSTEM_GRANT
處理對象類型 SCHEMA_EXPORT/ROLE_GRANT
處理對象類型 SCHEMA_EXPORT/DEFAULT_ROLE
處理對象類型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
處理對象類型 SCHEMA_EXPORT/SYNONYM/SYNONYM
處理對象類型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE
處理對象類型 SCHEMA_EXPORT/TABLE/COMMENT
處理對象類型 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理對象類型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理對象類型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理對象類型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理對象類型 SCHEMA_EXPORT/VIEW/VIEW
處理對象類型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
處理對象類型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理對象類型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
處理對象類型 SCHEMA_EXPORT/TABLE/TRIGGER
. . 導出了 "HR"."EMPLOYEES" 17.08 KB 107 行
. . 導出了 "HR"."EMPLOYEES_TEST" 17.09 KB 107 行
. . 導出了 "HR"."LOCATIONS" 8.429 KB 23 行
. . 導出了 "HR"."JOB_HISTORY" 7.187 KB 10 行
. . 導出了 "HR"."JOBS" 7.101 KB 19 行
. . 導出了 "HR"."DEPARTMENTS" 7.117 KB 27 行
. . 導出了 "HR"."COUNTRIES" 6.359 KB 25 行
. . 導出了 "HR"."REGIONS" 5.539 KB 4 行
. . 導出了 "HR"."INVISIBLE_T" 5.914 KB 1 行
已成功加載/卸載了主表 "SYSTEM"."SYS_EXPORT_SCHEMA_01"


SYSTEM.SYS_EXPORT_SCHEMA_01 的轉儲文件集為:
C:\ORACLEBACK\DATAPUMP\TABLESPACE.DMP
作業 "SYSTEM"."SYS_EXPORT_SCHEMA_01" 已於 星期二 1月 23 10:40:09 2018 elapsed 0
00:00:58 成功完成
導入schema為HR的所有內容,如果此時數據庫中沒有hr數據泵會自動創建。
C:\Users\Administrator>impdp system/****@clonepdb_plug logfile=systemdm
p:expdp.log DUMPFILE=systemdmp:tablespace.dmp remap_schema=hr:hr
技術分享圖片

Import: Release 12.2.0.1.0 - Production on 星期二 1月 23 10:43:30 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.

連接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Produc
tion
已成功加載/卸載了主表 "SYSTEM"."SYS_IMPORT_FULL_01"
啟動 "SYSTEM"."SYS_IMPORT_FULL_01": system/****@clonepdb_plug logfile=syste
mdmp:expdp.log DUMPFILE=systemdmp:tablespace.dmp remap_schema=hr:hr
處理對象類型 SCHEMA_EXPORT/USER
處理對象類型 SCHEMA_EXPORT/SYSTEM_GRANT
處理對象類型 SCHEMA_EXPORT/ROLE_GRANT
處理對象類型 SCHEMA_EXPORT/DEFAULT_ROLE
處理對象類型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
處理對象類型 SCHEMA_EXPORT/SYNONYM/SYNONYM
處理對象類型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 導入了 "HR"."EMPLOYEES" 17.08 KB 107 行
. . 導入了 "HR"."EMPLOYEES_TEST" 17.09 KB 107 行
. . 導入了 "HR"."LOCATIONS" 8.429 KB 23 行
. . 導入了 "HR"."JOB_HISTORY" 7.187 KB 10 行
. . 導入了 "HR"."JOBS" 7.101 KB 19 行
. . 導入了 "HR"."DEPARTMENTS" 7.117 KB 27 行
. . 導入了 "HR"."COUNTRIES" 6.359 KB 25 行
. . 導入了 "HR"."REGIONS" 5.539 KB 4 行
. . 導入了 "HR"."INVISIBLE_T" 5.914 KB 1 行
處理對象類型 SCHEMA_EXPORT/TABLE/COMMENT
處理對象類型 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理對象類型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理對象類型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理對象類型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理對象類型 SCHEMA_EXPORT/VIEW/VIEW
處理對象類型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
處理對象類型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理對象類型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理對象類型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
處理對象類型 SCHEMA_EXPORT/TABLE/TRIGGER
處理對象類型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
處理對象類型 SCHEMA_EXPORT/STATISTICS/MARKER
作業 "SYSTEM"."SYS_IMPORT_FULL_01" 已於 星期二 1月 23 10:44:01 2018 elapsed 0 00
:00:25 成功完成
sys@pdbtestPDB> create directory systemdmp as ‘C:\oracleback\datapump‘
2 ;

Directory created.

Elapsed: 00:00:00.83
sys@pdbtestPDB> conn hr/hr@clonepdb_plug
Connected.
hr@clonepdb_plugPDB> select count(*) from jobs;

COUNT(*)

    19

Elapsed: 00:00:00.01

12c數據泵