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
本文转自whshurk 51CTO博客,原文链接:http://blog.51cto.com/shurk/2064179,如需转载请自行联系原作者