Oracle12c功能增强新特性之维护&升级&恢复&数据泵等

1.   内容提要

1)   表分区维护的增强。

2)   数据库升级改善。

3)   跨网络还原/恢复数据文件。

4)   数据泵的增强。

5)   实时ADDM。

6)   并发统计信息收集。

2.   表分区维护的增强

在其它文章中,我说明了怎样在线或离线把一个表分区或子分区移到一个不同的表空间。

这部分,你将学习和表分区相关的其它方面的增强。

2.1.  添加多个新分区。

12c R1之前,在一个已分区表上仅仅能一次添加一个分区。为了添加多个分区。你必须每添加一个新分区单独运行一个ALTER TABLE ADD PARTITION语句。 12c支持用一个ALTER TABLE ADD PARTITION命令添加多个新分区。下例说明怎样往一个已有分区表上添加多个新分区:

SQL> CREATE TABLE emp_part(eno number(8), ename varchar2(40), salnumber (6))

PARTITION BY RANGE (sal)

(PARTITION p1 VALUES LESS THAN(10000),

PARTITION p2 VALUES LESS THAN(20000),

PARTITION p3 VALUES LESS THAN(30000)

);

以下让我们添加几个新分区:

SQL> ALTER TABLE emp_part ADD PARTITION

PARTITION p4 VALUES LESS THAN(35000),

PARTITION p5 VALUES LESS THAN(40000);

相同。你能给列表和系统分区表上添加多个新分区,前提是这些分区表上不存在maxvalue分区。

2.2.  假设删除和截断多个分区或子分区

作为数据维护的一部分,典型的你能够删除或截断分区表上分区。12c R1前,仅仅能一次一个的删除或截断分区表的分区。

12c中,用一个ALTER TABLE table_name {DROP|TRUNCATE}PARTITIONS 命令能够删除或截断多个分区或子分区。

下例说明怎样删除或截断分区表上的多个分区:

SQL> ALTER TABLEemp_part DROP PARTITIONS p4,p5;

SQL> ALTER TABLEemp_part TRUNCATE PARTITONS p4,p5;

为了同一时候也维护索引,使用UPDATE INDEXES or UPDATE GLOBAL INDEXES 子句。

例如以下:

SQL> ALTERTABLE emp_part DROP PARTITIONS p4,p5 UPDATE GLOBAL INDEXES;

SQL> ALTERTABLE emp_part TRUNCATE PARTITIONS p4,p5 UPDATE GLOBAL INDEXES;

假设你删除或截断分区时不带UPDATE GLOBAL INDEXES子句,你能够查询USER_INDEXES或USER_IND_PARTITIONS字典视图的ORPHANED_ENTRIES,以便发现索引是否包括陈旧索引项。

2.3.  将一个分区劈成多个新分区

12c中,新增强的SPLITPARTITION子句能够让你用一个命令将一个特定的分区或子分区劈成多个新分区:

SQL> CREATE TABLE emp_part

(eno number(8), enamevarchar2(40), sal number (6))

PARTITION BY RANGE (sal)

(PARTITION p1 VALUES LESS THAN(10000),

PARTITION p2 VALUES LESS THAN(20000),

PARTITION p_max VALUES LESSTHAN (MAXVALUE)

);

SQL> ALTER TABLE emp_part SPLIT PARTITION p_max INTO

(PARTITION p3 VALUES LESS THAN(25000),

PARTITION p4 VALUES LESS THAN(30000), PARTITION p_max);

2.4.  将多个分区合并成一个分区

你能够用一个ALTER TBALE MERGE PARTITIONS语句将多个分区合并成一个分区:

SQL> CREATETABLE emp_part

(eno number(8), ename varchar2(40), salnumber (6))

PARTITION BY RANGE (sal)

(PARTITION p1 VALUES LESS THAN (10000),

PARTITION p2 VALUES LESS THAN (20000),

PARTITION p3 VALUES LESS THAN (30000),

PARTITION p4 VALUES LESS THAN (40000),

PARTITION p5 VALUES LESS THAN (50000),

PARTITION p_max (MAXVALUE)

);

SQL> ALTERTABLE emp_part MERGE PARTITIONS p3,p4,p5 INTO PARTITION p_merge;

假设这些分区包括分区键值范围。你也能用下例命令:

SQL> ALTERTABLE emp_part MERGE PARTITIONS p3 TO p5 INTO PARTITION p_merge;

3.   数据库升级改善

不管何时新版本号公布,每一个DBA必须立马面对的就是升级。

这部分,将会说明两个新引进的升级到12c的改善。

3.1.  升级前脚本

12c R1中。一个新的、得到极大改善的升级前信息脚本preupgrd.sql。替换了之前的utlu[121]s.sql脚本。除了做升级前检查验证。该脚本还能以fixup脚本的方式解决升级过程前后产生的各种问题。

产生的fixup脚本能被执行来解决不同层面的问题。比如:升级前和升级后。

当手工升级数据库时,開始实际数据库升级前。脚本必须被手工执行。

但是,当用DBUA工具升级数据库时,会被作为升级过程的一部分,自己主动执行升级前脚本。当出现不论什么错误时,都会提示你执行fixup脚本。下例说明怎样执行该脚本:

SQL> @$ORACLE_12GHOME/rdbms/admin/preupgrd.sql

上面脚本会产生一个日志文件和一个[pre/post]upgrade_fixup.sql 脚本。

全部这些文件都在$ORACLE_BASE/cfgtoollogs 文件夹下。

在你继续真正升级前,你该查看日志并执行日志中推荐的操作和脚本来解决存在的不论什么问题。

注意:确信你把preupgrd.sqlutluppkg.sql 脚本都从12c的Oracle的主文件夹 home/rdbms/admin复制到了眼下的数据库/rdbms/admin位置。

3.2.  并行更新功能

数据库升级时间和数据库配置的组件多少成正比,而不是和数据库大小成正比。

之前的版本号。没有直接或间接可用选项来并行高速的完毕整个升级过程。

12c R1中的catctl.pl (并行升级功能)替换了之前的catupgrd.sql脚本,12c R1中的脚本有个选项用以并行升级,从而能够缩短完毕整个升级过程所需的时间。

以下的过程说明怎样启动并行(3个进程)升级功能,以upgrade模式启动数据库后再执行下列命令:

cd $ORACLE_12_HOME/perl/bin

$ ./perl catctl.pl –n 3 -catupgrd.sql

当数据库被手工升级时,以上两个步骤须要被显式执行。

然而。DBUA工具包括上面这两个变化。

4.   通过网络还原/恢复数据文件

12c R1中。还有一个非常大的增强是,你如今能够通过服务名(service name)在主备库之间还原或恢复数据文件,控制文件。spfile,表空间或整个库。

在同步主备库时。这是非常实用的。

当在主备库之间发现一个非常长的延迟时(gap)。你不再须要复杂的前滚过程来填充主备库间的延迟了。

RMAN能通过网络得到增量备份而且在物理备库上应用这些备份来恢复备库。

像已经说过的。你能用服务名直接把须要的数据文件从备库复制到主库上。比如:主库上的一个数据文件或表空间丢了。或者没有从备份集还原数据文件等。

下列过程说明怎样用新特点运行前滚来同步主备库:

物理备库端:

./rman target"username/[email protected]_db_tns as SYSBACKUP"

RMAN> RECOVERDATABASE FROM SERVICE primary_db_tns USING COMPRESSED BACKUPSET;

上面的样例使用备库上的连接串primary_db_tns连接主库来运行一个增量备份,然后把这些增量备份传输到备库,并应用这些文件来同步备库。

但是。你须要确信已经在备库端配置了 指向主库的连接串primary_db_tns。

下例中,我将通过从备库获取并恢复主库上丢失的数据文件来说明一个场景:

主库端:

./rman target"username/[email protected]_db_tns as SYSBACKUP"

RMAN> RESTOREDATAFILE ‘+DG_DISKGROUP/DBANME/DATAFILE/filename’ FROM SERVICE standby_db_tns;

5.   数据泵增强

这部分主要介绍数据泵方面的增强。有非常多实用的增强,比如:导出时将试图转化为表,导入时关闭日志等。

5.1.  关闭日志产生

数据泵导入被新引进的TRANSFORM选项支持在导入过程中不产生对象redo。当确定TRANSFORM选项的值为DISABLE_ARCHIVE_LOGGING时,整个导入过程中上下文中对象将不产生redo。当导入大表时,该特点会非常大的减轻系统压力和产生的redo,从而减速导入进程。该特点能够应用到表和索引。下例说明了该特点:

$ ./impdp directory=dpump dumpfile=abcd.dmp logfile=abcd.logTRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

5.2.  把视图转换为表

这是数据泵的还有一个增强。利用VIEWS_AS_TABLES选项。你能把视图导出为一个表。下列样例描写叙述了怎样在导出期间将视图导出为一个表:

$ ./impdp directory=dpump dumpfile=abcd.dmp logfile=abcd.logTRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

6.   实时进行ADDM分析

通过像AWR,ASH和ADDM等工具去分析过去和眼下数据库健康状态是每一个DBA生活的一部分。

尽管每一个工具能在各个层面来測量数据库的总体健康和性能。但当整个数据库没反应或”hang”时。每一个工具能够使用。

当你碰到数据库没反应或被hang住时。假设你已经配置了Oracle企业管理器12c云控制,你就能诊断严重的性能问题。这将会给你提供一个数据库中当前什么在发生的总体描写叙述,或许也会给你提供一个解决这个问题的补救措施。

以下一步步的说明怎样利用Oracle企业管理器云控制来分析数据库状态:

1) 在存取数据库主页上从Performance菜单选择EmergencyMonitoring选项。这将会显示hang分析表中排在最前面的堵塞会话。

2) 从Performance选择Real-TimeADDM选项来运行实时ADDM分析。

3) 收集性能数据后,点击Findings页来获取全部发现的交互总结。

7.   并行的收集多张表的统计信息

在先前的Oracle版本号中,不管什么时候你执行DBMS_STATS过程来收集表。索引,模式或数据库级别的统计信息。Oracle都是一次收集一张表。假设表非常大。那么推荐添加并行度。12c R1中,你如今能够同一时候收集多张表、分区和子分区的统计信息。

在開始使用该特点时,你必须在数据库层面进行例如以下设置以启用该特点:

SQL>ALTER SYSTEM SET RESOURCE_MANAGER_PLAN=‘DEFAULT_MAIN‘;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=4;

SQL>EXEC DBMS_STATS.SET_GLOBAL_PREFS(‘CONCURRENT‘, ‘ALL‘);

SQL>EXEC DBMS_STATS.GATHER_SCHEMA_STATS(‘SCOTT‘);

时间: 2024-10-25 14:11:00

Oracle12c功能增强新特性之维护&升级&恢复&数据泵等的相关文章

Oracle12c中性能优化&功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护

Oracle 12c中,通过延迟相关索引的维护可以优化某些DROP和TRUNCATE分区命令的性能,同时,保持全局索引为有效. 1.   设置 下面的例子演示带全局索引的表创建和加载数据的过程. -- 建表 CREATE TABLE t1 (id            NUMBER, comment   VARCHAR2(50), crt_time  DATE) PARTITION BY RANGE (crt_time) (PARTITION part_14 VALUES LESS THAN (

Oracle12c 中RAC功能增强新特性之ASM&Grid

1.    自动存储管理(ASM)方面的增强 1.1.   Flex ASM 在典型的网格架构安装中,每个节点有自己的ASM实例运行并扮演该节点上数据库的存储容器的角色,对这种安装配置,存在单点失败的风险.例如,如果该节点上的ASM实例出现问题或失败,那么,运行在该节点上的数据库和实例都将会被影响.为了避免ASM实例的单点失败,Oracle12c 提供一个flex ASM特性.Flex ASM总体来说是个不同的概念和架构,其中,只需要几个ASM实例运行在簇中的一组服务器上,但一个节点上的ASM实

PHP5各个版本的新功能和新特性总结

因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征 本文目录:PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束PHP5.2:JSON 支持PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,PharPHP5.4:Short Open Tag, 数组简写形式,Traits, 内置

Atitit 数据融合merge功能v3新特性.docx

1.1. 版本历史1 1.2. 生成sql结果1 1.3. 使用范例1 1.4. 核心代码1 1.1. 版本历史 V2增加了replace部分. V3 修改为 ON DUPLICATE KEY UPDATE,并实现多字段更新模式. 1.2. 生成sql结果 5715,insert into s_member(department_id,member_no,duties_id,duties_name,phone,name,department,unit_id,email,status)values

【ArcGIS 10.2新特性】ArcGIS 10.2将PostgreSQL原生数据发布为要素服务

1.ArcGIS 10.2支持原生数据发布为要素服 有没有将自己已有的空间数据发布为要素服务的需求?有没有将非Esri空间数据类型的数据作为服务在Web端展示的需求?    ArcGIS 10.2 for Server增加了这方面的能力,ArcGIS 10.2 for Server 可以将原生数据库中的空间数据发布为要素服务.    想必都知道现在的关系型数据库,也都对空间数据有一定的支持,如postgreSQL的pg_geometry,Oracle的sdo_geometry,SQL Serve

Tomcat学习总结(9)——Apache Tomcat 8新特性

一.Apache Tomcat 8介绍 Apache Tomcat 8RC1版于2013年8月份发布.它 经过了2年的开发,引入了很多新特征,由于目前还只是Alpha版,故不推荐在产品中使用.但是我们应该了解它有哪些新特性,以便在稳定版出来后,用到我们的开发项目中去.Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1.JSP 2.3.Java统一表达式语言EL 3.0等.我们可以来看看Tomcat最近几个版本分别支持的JavaEE规范.--------

JDBC4.0新特性

在 Java SE 6 所提供的诸多新特性和改进中,值得一提的是为 Java 程序提供数据库访问机制的 JDBC 版本升级到了 4.0, 这个以 JSR-221 为代号的版本 , 提供了更加便利的代码编写机制及柔性 , 并且支持更多的数据类型 . 在本文中,我们将从编码的易用性及柔性的角度探讨 JDBC 4.0 所带来的新特性及改进. JDBC 4.0 的新特性 JDBC 4.0 文档列举了 20 个改进及新特性 , 大小不等 . 本文无法做到尽述其详 , 为此笔者根据其功能特点及应用领域将其分

php 新特性

PHP 5.6 1.可以使用表达式定义常量 https://php.net/manual/zh/migration56.new-features.php 在之前的 PHP 版本中,必须使用静态值来定义常量,声明属性以及指定函数参数默认值. 现在你可以使用包括数值.字符串字面量以及其他常量在内的数值表达式来 定义常量.声明属性以及设置函数参数默认值. <?php const ONE = 1; const TWO = ONE * 2; //定义常量时允许使用之前定义的常量进行计算 class C {

Dynamics CRM 2016 的新特性

新版本CRM (2016 with update 0.1) 发布已有几个月了,总结一下新特性,从几个方面来看: 1. 针对整合功能的新特性 (1) 增加了CRM App for Outlook. 这个是一个轻量级的CRM Email app,目前并不能完全替代 Dynamics CRM for Outlook,但是我觉得只是个时间问题,目前的区别如下(April 2016) Feature Dynamics CRM App for Outlook Dynamics CRM for Outlook