专栏首页小麦苗的DB宝专栏【DB笔试面试433】在Oracle 12c中,在数据泵(expdp)方面有哪些增强的新特性?

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

题目

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

答案

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

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

以下SQL演示了这一功能:

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

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

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

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

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

例如:

SQL> select * from test_nologging;

ORA-01578: ORACLE data block corrupted (file #11, block # 84)

ORA-01110: data file 4: '/oradata/users.dbf'

ORA-26040: Data block was loaded using theNOLOGGING option

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

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

以下SQL演示了这一功能:

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

l impdp system/lhr DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=impdp_vw.log remap_schema=lhr:lhr01

l impdp lhr/lhr DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=impdp_vw.log remap_schema=lhr:lhr1 VIEWS_AS_TABLES=lhr.my_view

l impdp lhr/lhr DIRECTORY=data_pump_dir DUMPFILE=expdp_vw.dmp LOGFILE=impdp_vw.log remap_schema=lhr:lhr1 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;

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

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

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

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

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

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

& 说明:

有关12c数据泵新特性的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2130830/

有关ORA-01578和ORA-26040--NOLOGGING操作引起的坏块的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2152783/

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文分享自微信公众号 - DB宝(xiaomaimiaolhr),作者:小麦苗best

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【DB宝24】在Oracle 19c中创建容器数据库(1)--DBCA静默创建CDB

    从本节开始,麦老师将依次讲解使用DBCA静默创建CDB 、DBCA图形化界面创建CDB、手动创建CDB,即使用create database来创建CDB 、d...

    小麦苗DBA宝典
  • 【OCP最新题库解析(052)--题50】 Which two are true about space

    该系列专题为2018年4月OCP-052考题变革后的最新题库。题库为小麦苗解答,若解答有不对之处,可留言,也可联系小麦苗进行修改。

    小麦苗DBA宝典
  • 【DB笔试面试529】在Oracle中,数据库块的结构有哪几个部分?

    操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一。当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的...

    小麦苗DBA宝典
  • Safari扩展

    本系列文章分两部分,介绍macOS浏览器扩展背后的技术,以及恶意插件如何窃取密码、银行细节和其他敏感用户数据。

    安恒网络空间安全讲武堂
  • Scrapy快速上手

    https://blog.csdn.net/fly_yr/article/details/51540269

    py3study
  • 虚拟机下的CentOS环境中安装Node.js

    本来这个并没有什么好写的,为什么,网上到处都是。不过在安装的时候确实遇到了很多问题,很有必要记录一下。

    meteoric
  • 亚马逊推出刷手支付,0.3秒就能完成,误差更小,剁手更快!

    不久前,亚马逊获得了一项新技术专利,该技术使用手部识别技术来跟踪无收银员杂货店中的购物者,也就是说,购物者将挥手告别的不仅只有信用卡,还有“脸”。

    大数据文摘
  • 大数据应该这样用

    大数据的本质是工具,一个十分有用的工具,但并不能决定企业生死,决定一家企业死活的是方向与理念。   据田友龙这厮考证,大数据一词最先由麦肯锡提出,因维克托迈...

    CDA数据分析师
  • 【LeetCode】贪心算法--分发糖果(135)

    期末考试结束了,公众号今天恢复更新,这是19年第一篇技术文。大学的期末考试经历了很多次,第一次这么认真的准备,当然是因为对自己的要求提高了,之前只想着及格就OK...

    PM小王
  • 【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】二、使用OpenGL渲染视频画面

    在第一篇文章【音视频基础知识】文章中,就介绍过,视频其实就是一张张图片组成的,在上文【初步了解OpenGL ES】中,介绍了如何通过OpenGL渲染一张图片,可...

    开发的猫

扫码关注云+社区

领取腾讯云代金券