12c数据泵 原创whshurk2018

简介:

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
12c数据泵

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,如需转载请自行联系原作者




相关文章
|
SQL 存储 Oracle
原创 | SQL优化之合理使用临时表
今天我们来讲讲临时表的优化技巧 临时表,顾名思义就只是临时使用的一张表,一种是本地临时表,只能在当前查询页面使用,新开查询是不能使用它的,一种是全局临时表,不管开多少查询页面均可使用。
原创 | SQL优化之合理使用临时表
|
Oracle 关系型数据库 数据库
expdp 导出简单笔记
expdp 导出简单笔记 1、要创建oracle可访问的目录必须赋予oracle:oinstall的权限 [root@oracle/]# chown -R oracle:oinstall /data1 2、切换到oracle用户 [roo...
916 0
|
Oracle 关系型数据库 数据库管理
Oracle 创建表空间借鉴 保留,占版权留言告知
/*分为四步 */ /*第1步:创建临时表空间 */ create temporarytablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.
996 0
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据安全/隐私保护
【沫沫金原创】cmd一句话导入导出Oracle远程Dmp文件
Orcal 的dmp有时候很折磨人,这里记录自己轻松导入导出dmp文件的神奇咒语,百试百灵。 导入(Imp) imp SXZZ/SXZZ@10.16.175.50/xaptdb file=E:\bjsxzz.dmp full=y 没有特别注意的,dmp文件直接导(文件位置,密码ip正确一切ok) 导出(Exp) exp sxzz_1111/sxzz_1111@172.16.90.253/ORCl file=D:/momojin.dmp OWNER=sxzz_1111 需要注意2点: 1、不自动创建dmp文件,所以你需要手动创建dmp。
956 0