Oracle 12C 数据泵新特性(DISABLE_ARCHIVE_LOGGING+VIEWS_AS_TABLES导出视图+LOGTIME)

0    157    1

Tags:

👉 本文共约10159个字,系统预计阅读时间或需39分钟。

在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?

Oracle 12c的数据泵新增了很多的新特性,分别如下所示:

在Data Pump中引入了新的TRANSFORM的选项DISABLE_ARCHIVE_LOGGING

(1)在Data Pump中引入了新的TRANSFORM的选项DISABLE_ARCHIVE_LOGGING,这对于表和索引在导入期间提供了关闭Redo日志生成的灵活性。当为TRANSFORM选项指定了DISABLE_ARCHIVE_LOGGING:Y值,那么在整个导入期间,表和索引的Redo日志就会处于关闭状态,仅生成少量的日志。这一功能在导入大型表时缓解了压力,并且减少了过度的Redo产生,从而加快了导入。这一属性对表和索引都适用。不管是在非归档还是归档情况下使用DISABLE_ARCHIVE_LOGGING都会减小导入时间,减少归档量。但是需要注意的是,如果数据库处于FORCE LOGGING模式,那么DISABLE_ARCHIVE_LOGGING参数会无效。

以下SQL演示了这一功能:

“TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y”表示表和索引都关闭日志。

有关该新特性需要注意以下几点:

① 在导入完成后,表和索引的状态(包括LOGGING状态和索引是否有效的状态)都会恢复到导入之前的状态。

② 在使用该参数导入数据文件后,如果相应的datafile被restored和recovered,那么接下来的涉及到目标表的查询会报ORA-01578和ORA-26040的坏块错误。例如:

例如:

因此,在使用该参数导入数据文件后,需要立马对相关的数据文件做RMAN备份。

使用VIEWS_AS_TABLES选项可以让数据泵将视图转换为表然后导出

(2)使用VIEWS_AS_TABLES选项可以让数据泵将视图转换为表然后导出。需要注意的是,导出到dmp文件后,视图的定义已经自动转换为表的定义了。在执行导入操作后,会以表的形式存在

以下SQL演示了这一功能:

表数据准备:

LOGTIME参数

(3)LOGTIME参数决定时间戳是否将包括在expdp和impdp功能的输出信息中。LOGTIME的可用值如下所示:

① NONE:默认值,指示输出中不包括时间戳,输出和之前的版本相似。

② STATUS:时间戳包括在控制台输出中,但不会在日志文件中出现。

③ LOGFILE:时间戳出现在日志文件中,但不会输出到控制台。

④ ALL:时间戳出现在日志文件和控制台输出中。

关于Oracle 12c的数据泵还有很多的新特性,例如压缩、加密、审计等,这里不再详细介绍,读者可参考作者的博客或阅读相关的官方文档进行学习。

1.1 关闭redo日志的生成(TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y)

Data Pump中引入了新的TRANSFORM选项,这对于对象在导入期间提供了关闭重做生成的灵活性。当为TRANSFORM选项指定了DISABLE_ARCHIVE_LOGGING值,那么在整个导入期间,重做生成就会处于关闭状态。这一功能在导入大型表时缓解了压力,并且减少了过度的redo产生,从而加快了导入。这一属性还可应用到表以及索引。

以下案例演示了这一功能:

impdp directory=dpump dumpfile=abcd.dmp TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y logfile=abcd.log

l impdp directory=dpump dumpfile=abcd.dmp TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y logfile=abcd.log

l impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y --表和索引都关闭日志

l impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:TABLE --只有表关闭日志

l impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y TRANSFORM=DISABLE_ARCHIVE_LOGGING:N:INDEX

l impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:INDEX

Enables you to alter object creation DDL for objects being imported.

Syntax and Description

TRANSFORM=transform_name:value[:object_type]

The transform_name specifies the name of the transform.The possible options are as follows,in alphabetical order:

?DISABLE_ARCHIVE_LOGGING:[Y|N]

If set to Y,then the logging attributes for the specified object types(TABLE and/or INDEX)are disabled before the data is imported.If set to N(the default),then archive logging is not disabled during import.After the data has been loaded,the logging attributes for the objects are restored to their original settings.If no object type is specified,then the DISABLE_ARCHIVE_LOGGING behavior is applied to both TABLE and INDEX object types.This transform works for both file mode imports and network mode imports.It does not apply to transportable tablespace imports.

Note:

If the database is in FORCE LOGGING mode,then the DISABLE_ARCHIVE_LOGGING option will not disable logging when indexes and tables are created.

将视图转换为表然后导出(VIEWS_AS_TABLES选项)

这是Data Pump中另外一个改进。有了VIEWS_AS_TABLES 选项,你就可以将视图数据载入表中。

以下案例演示了如何在导出过程中将视图数据载入到表中:

expdp directory=dpump views_as_tables=my_view:my_table dumpfile=abcd.dmp logfile=abcd.log

1.2.1 自己实验

expdp VIEWS_AS_TABLES选项可以将视图看做表并将其数据导出。

expdp system/lhr DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=expdp_vw.log VIEWS_AS_TABLES=lhr.my_view

表数据准备:

create table lhr.my_tab1 (nr number, txt varchar2(10));

insert into lhr.my_tab1 values (1,'Line 1');

insert into lhr.my_tab1 values (2,'Line 2');

create table lhr.my_tab2 (nr number, col2 number, col3 varchar2(10));

insert into lhr.my_tab2 values (1,1,'c3_1');

insert into lhr.my_tab2 values (2,2,'c3_2');

commit;

create view lhr.my_view (nr, txt, col3) as

select t1.nr, t1.txt, t2.col3

from lhr.my_tab1 t1, lhr.my_tab2 t2

where t1.nr=t2.nr;

开始导出:

C:\Users\xiaomaimiao>expdp system/lhr DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=expdp_vw.log VIEWS_AS_TABLES=lhr.my_view

Export: Release 12.1.0.2.0 - Production on 星期五 12月 16 16:31:49 2016

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

连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

启动 "SYSTEM"."SYS_EXPORT_TABLE_01": system/**** DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=expdp_vw.log VIEWS_AS_TABLES=lhr.my_view

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA

使用 BLOCKS 方法的总估计: 16 KB

处理对象类型 TABLE_EXPORT/VIEWS_AS_TABLES/TABLE

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Oracle 12C 数据泵新特性(DISABLE_ARCHIVE_LOGGING+VIEWS_AS_TABLES导出视图+LOGTIME)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部