Oracle 12c新特性有哪些

技术Oracle 12c新特性有哪些本篇内容介绍了“Oracle 12c新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

本文介绍了关于“Oracle 12c有哪些新功能”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

  1. 自动存储管理(ASM)中的增强

 Flex ASM

在典型的网格基础设施安装环境中,每个节点都运行自己的ASM实例,作为在该节点上运行的数据库的存储容器。然而,在这种设置中存在单点故障的相应风险。例如,如果此节点上的ASM实例出现故障,此节点上运行的所有数据库和实例都将受到影响。为了避免ASM实例的单点故障,Oracle 12c提供了一个名为Flex ASM的功能。Flex ASM是一个不同的概念和架构,集群中只有少数ASM实例需要在一些服务器上运行。当一个节点上的ASM实例出现故障时,Oracle集群将自动启动另一个不同节点上的替代ASM实例,以提高可用性。此外,此设置还为在此节点上运行的实例提供了ASM实例负载平衡功能。Flex ASM的另一个优点是可以在单个节点上配置。

当选择灵活集群选项作为集群安装环境的第一部分时,将根据灵活集群的要求自动选择灵活ASM配置。传统集群也适合Flex ASM。当您决定使用Flex ASM时,您必须确保所需的网络可用。您可以选择灵活ASM存储选项作为集群安装环境的一部分,或者使用ASMCA在标准集群环境中启用灵活ASM。

以下命令显示当前的ASM模式:

$ ./asmcmd showclustermode

$ ./srvctl配置asm

或者连接到ASM实例并查询INSTANCE_TYPE参数。如果输出值是ASMPROX,那么已经配置了Flex ASM。

  ASM存储限制放宽

ASM存储硬限制在最大ASM磁盘组和磁盘大小方面有了很大提高。在12c R1,ASM支持511个ASM磁盘组,而在11g R2,它只支持63个。同样,与11g R2中20 PB的磁盘大小相比,该数字现在已增加到32 PB。

  对ASM均衡操作的优化

12c用于测量给定ASM平衡操作所需的工作负载,并将结果输入V$ASM_ESTIMATE动态视图。使用这个动态视图,您可以调整POWER LIMIT语句来改进重新平衡操作。例如,如果要测量添加新ASM磁盘所需的工作量,可以在实际执行手动平衡操作之前使用以下命令:

sqlexplaneworalterdiskgroup DG _ DATAADDDISKdata _ 005;

sqlseselectest _ work fromv $ ASM _ ESTIMATE;

sqlexplanworksetstatement _ ID=' ADD _ DISK ' FORRALTERDISKGrouP DG _ DATA addiskDATA _ 005;

sqlseselectest _ workFROMV $ ASM _ estimatewhere statement _ ID=' ADD _ DISK ';

您可以根据动态视图的输出调整功率限制,以改善平衡操作。

  ASM 磁盘清理

在ASM磁盘组中,新的ASM磁盘清理操作可以分为两个级别:正常或高冗余。它可以检查ASM磁盘组中所有磁盘的逻辑数据损坏,并可以自动修复逻辑损坏。如果检测到逻辑数据损坏,将使用ASM镜像磁盘。可以在磁盘组、特定磁盘或文件上执行磁盘清理,以便将其影响降至最低。下面演示了磁盘清理场景:

SQLALTERDISKGROUP DG _ data SCROPOWELLOW : high : auto : max;

SQLALTERDISKGROUP DG _ DATA SCROFILE ' DG _ DATA/MYDB/DATAFLE/filename . xxxx . xxxx '

REPAIRPOWERAUTO

  ASM的活动会话历史(ASH)

V$ACTIVE_SESSION_HISOTRY动态视图现在还可以提供主动会话对ASM实例的采样。然而,诊断试剂盒的使用是

受到许可限制的。

  2. 网格(Grid)基础架构的增强

  Flex 集群

  Oracle 12c 在集群安装时支持两类配置:传统标准集群和Flex集群。在一个传统标准集群中,所有集群中的节点都彼此紧密地整合在一起,并通过私有网络进行互动,而且可以直接访问存储。另一方面,Flex集群在Hub和Leaf节点结构间引入了两类节点。分配在Hub中的节点类似于传统标准集群,它们通过私有网络彼此互连在一起并对存储可以进行直接读写访问。而Leaf节点不同于Hub节点,它们不需要直接访问底层存储;相反的是,它们通过Hub节点对存储和数据进行访问。

  你可以配置多达64个Hub节点,而Leaf节点则可以更多。在Oracle Flex集群中,无需配置Leaf节点就可以拥有Hub节点,而如果没有Hub节点的话,Leaf节点是不会存在的。对于一个单独Hub节点,你可以配置多个Leaf节点。在Oracle Flex集群中,只有Hub节点会直接访问OCR和Voting磁盘。当你规划大规模的集群环境时,这将是一个非常不错的功能。这一系列设置会大大降低互连拥堵,并为传统标准集群提供空间以扩大集群。

  部署Flex 集群的两种途径:

  1. 在配置一个全新集群的时候部署

  2. 升级一个标准集群模式到Flex集群

  如果你正在配置一个全新的集群,你需要在步骤3中选择集群配置的类型,选择配置一个Flex集群选项,然后你需要在步骤6中对Hub和Leaf节点进行分类。对于每个节点,选择相应角色是Hub或是Leaf,而虚拟主机名也是可选的。

  将一个标准集群模式转换为Flex 集群模式需要以下步骤:

  1. 用以下命令获取集群的当前状态:

$ ./crsctl get cluster mode status

  2. 以root用户执行以下命令:

$ ./crsctl set cluster mode flex
$ ./crsctl stop crs
$ ./crsctl start crs –wait

  3. 根据设计改变节点角色:

$ ./crsctl get node role config
$ ./crsctl set node role hub|leaf
$ ./crsctl stop crs
$ ./crsctl start crs -wait

  注意:

  ?你无法从Flex恢复回标准集群模式

  ?改变集群节点模式需要集群栈停止

  ?确保以一个固定的VIP配置GNS

  ASM磁盘群组中的OCR备份

  对于12c,OCR现在可以在ASM磁盘群组中得以备份。这简化了通过所有节点对OCR备份文件的访问。为了防止OCR的恢复,你不必担心OCR最新的备份是在哪个节点上。可以从任何节点轻易识别存储在ASM中的最新备份并能很容易地执行恢复。

  以下演示了如何将ASM磁盘群组设置为OCR备份位置:

$ ./ocrconfig -backuploc +DG_OCR

  支持IPv6协议

  对于12c,Oracle是支持IPv6网络协议配置的。你现在可以在IPv4或IPv6上配置共有或私有网络接口,尽管如此,你需要确保在所有集群中的节点上使用相同的IP协议。

  3. RAC数据库的增强

  What-if命令评估

  通过srvctl使用新的What-if命令评估选项,现在可以确定运行此命令所造成的影响。这一新添加到srvctl的命令,可以在没有实际执行或是不对当前系统做任何改变的情况下模拟此命令。这在想要对一个已存在的系统进行更改却对结果不确定的时候特别有用。这样,此命令就会提供进行变更的效果。而–eval 选项也可以通过crsctl 命令来使用。

  例如,如果你想要知道停止一个特定数据库会发生什么,那么你就可以使用以下示例:

$ ./srvctl stop database –d MYDB –eval
$ ./crsctl eval modify resource -attr “value”

  srvctl的改进

  对于srvctl命令还有一些新增功能。以下演示了如何用这些新增功能停止或启动集群上的数据库或实例资源。

srvctl start database|instance –startoption NOMOUNT|MOUNT|OPEN
srvctl stop database|instance –stopoption NOMOUNT|MOUNT|OPEN

  4. 截断表CASCADE

  在之前的版本中,在子表引用一个主表以及子表存在记录的情况下,是不提供截断此主表操作的。而在12c中的带有CASCADE操作的TRUNCATE TABLE可以截断主表中的记录,并自动对子表进行递归截断,并作为DELETE ON CASCADE服从外键引用。由于这是应用到所有子表的,所以对递归层级的数量是没有CAP的,可以是孙子表或是重孙子表等等。

  这一增强摈弃了要在截断一个主表之前先截断所有子表记录的前提。新的CASCADE语句同样也可以应用到表分区和子表分区等。

SQL> TRUNCATE TABLE CASCADE;
SQL> TRUNCATE TABLE PARTITION CASCADE;

  如果对于子表的外键没有定义ON DELETE CASCADE 选项,便会抛出一个ORA-14705错误。

  5. 对Top-N查询结果限制记录

  在之前的版本中有多种间接手段来对顶部或底部记录获取Top-N查询结果。而在12c中,通过新的FETCH FIRST|NEXT|PERCENT语句简化了这一过程并使其变得更为直接。为了从EMP表检索排名前10的工资记录,可以用以下新的SQL语句:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 ROWS ONLY;

  以下示例获取排名前N的所有相似的记录。例如,如果第十行的工资值是5000,并且还有其他员工的工资符合排名前N的标准,那么它们也同样会由WITH TIES语句获取。

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 ROWS ONLY WITH TIES;

  以下示例限制从EMP表中获取排名前10%的记录:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
FETCH FIRST 10 PERCENT ROWS ONLY;

  以下示例忽略前5条记录并会显示表的下5条记录:

SQL> SELECT eno,ename,sal FROM emp ORDER BY SAL DESC
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

  所有这些限制同样可以很好的应用于PL/SQL块。

BEGIN
SELECT sal BULK COLLECT INTO sal_v FROM EMP
FETCH FIRST 100 ROWS ONLY;
END;

  6. 对SQL*Plus的各种增强

  SQL*Plus的隐式结果:12c中,在没有实际绑定某个RefCursor的情况下,SQL*Plus从一个PL/SQL块的一个隐式游标返回结果。这一新的dbms_sql.return_result过程将会对PL/SQL 块中由SELECT 语句查询所指定的结果加以返回并进行格式化。以下代码对此用法进行了描述:

SQL> CREATE PROCEDURE mp1
res1 sys_refcursor;
BEGIN
open res1 for SELECT eno,ename,sal FROM emp;
dbms_sql.return_result(res1);
END;
SQL> execute mp1;

  当此过程得以执行,会在SQL*Plus上返回格式化的记录。

  显示不可见字段:在本系列文章的第一部分,我已经对不可见字段的新特性做了相关阐述。当字段定义为不可见时,在描述表结构时它们将不会显示。然而,你可以通过在SQL*Plus提示符下进行以下设置来显示不可见字段的相关信息:

SQL> SET COLINVISIBLE ON|OFF

  以上设置仅对DESCRIBE 命令有效。目前它还无法对不可见字段上的SELECT 语句结果产生效果。

  7. 会话级序列

  在12c中现在可以创建新的会话级数据库序列来支持会话级序列值。这些序列的类型在有会话级的全局临时表上最为适用。

  会话级序列会产生一个独特范围的值,这些值是限制在此会话内的,而非超越此会话。一旦会话终止,会话序列的状态也会消失。以下示例解释了创建一个会话级序列:

SQL> CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 SESSION;
SQL> ALTER SEQUENCE my_seq GLOBAL|SESSION;

  对于会话级序列,CACHE, NOCACHE, ORDER 或 NOORDER 语句会予以忽略。

  8. WITH语句的改善

  在12c中,你可以用SQL更快的运行PL/SQL函数或过程,这些是由SQL语句的WITH语句加以定义和声明的。以下示例演示了如何在WITH语句中定义和声明一个过程或函数:

WITH
PROCEDURE|FUNCTION test1 (…)
BEGIN
END;
SELECT FROM table_name;
/

  尽管你不能在PL/SQL单元直接使用WITH语句,但其可以在PL/SQL单元中通过一个动态SQL加以引用。

  9. 扩展数据类型

  在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节。只要可能,扩展字符的大小会降低对LOB数据类型的使用。为了启用扩展字符大小,你必须将MAX_STRING_SIZE的初始数据库参数设置为EXTENDED。

  要使用扩展字符类型需要执行以下过程:

  1. 关闭数据库

  2. 以升级模式重启数据库

  3. 更改参数: ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED;

  4. 执行 utl32k.sql as sysdba : SQL> @?/rdbms/admin/utl32k.sql

  5. 关闭数据库

  6. 以读写模式重启数据库

  对比LOB数据类型,在ASSM表空间管理中,扩展数据类型的字段以SecureFiles LOB加以存储,而在非ASSM表空间管理中,它们则是以BasciFiles LOB进行存储的。

  注意:一旦更改,你就不能再将设置改回STANDARD。

“Oracle 12c新特性有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/93980.html

(0)

相关推荐

  • C语言 存款预算

    技术C语言 存款预算 C语言 存款预算本关任务:编写一个小程序,计算初始时该存入银行多少钱。任务具体描述如下: 假设银行一年整存整取的月息为1.875%,现在某人手头有一笔钱,他打算在今后5年中,每年年

    礼包 2021年11月27日
  • @缓存驱逐中的艾伦特里与调用前的区别是什么

    技术@CacheEvict中的allEntries与beforeInvocation的区别是什么这篇文章将为大家详细讲解有关@CacheEvict中的allEntries与beforeInvocation的区别是什么,文

    攻略 2021年12月25日
  • HYS商务UI标签的渲染逻辑是什么?

    技术Hybris CommerceUI tag的渲染逻辑是什么这篇文章主要介绍“Hybris CommerceUI tag的渲染逻辑是什么”,在日常操作中,相信很多人在Hybris CommerceUI tag的渲染逻辑

    攻略 2021年12月24日
  • css和html怎么连接(css怎么和html连接起来)

    技术css3中怎么连接class本篇内容主要讲解“css3中怎么连接class”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3中怎么连接class”吧!

    攻略 2021年12月23日
  • java同步器AQS的实现原理是什么

    技术java同步器AQS的实现原理是什么这篇文章给大家介绍java同步器AQS的实现原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言在java.util.concurrent.locks

    攻略 2021年10月23日
  • 一筹莫展什么意思,一筹莫展,与,一愁莫展,的区别

    技术一筹莫展什么意思,一筹莫展,与,一愁莫展,的区别区别是一个词语是正确的,一个是错误的一筹莫展什么意思。正确词语是“一筹莫展”,意思是一点计策也施展不出,一点办法也想不出。“一愁莫展”这个词是现代人误写,是错误写法。

    生活 2021年10月29日