知识大全 Oracle12c新特性再总结

Posted

篇首语:世上无难事,只要肯登攀本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle12c新特性再总结相关的知识,希望对你有一定的参考价值。

Oracle12c新特性再总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本文中 作者将对 c集群 ASM以及RAC数据库新增和改进方面广泛介绍 同时列举一些对开发者而言非常有用的新特性

  文章导读

   ASM中的增强

   网格基础架构的增强

   Oracle RAC的增强

   如何在子表包含数据的情况下截断一个主表

   限制Top N查询结果的记录

   SQL*Plus的各种增强

   会话级序列

   WITH语句的改善

   扩展数据类型 自动存储管理(ASM)中的增强Flex ASM在一个典型的网格基础架构安装环境中 每个节点都运行自身的ASM实例 并将其作为运行于此节点上数据库的存储容器 但这种设置会存在相应的单点故障危险 例如 如果此节点上的ASM实例发生故障 则运行于此节点上的所有数据库和实例都会受到影响 为了避免ASM实例的单点故障 Oracle c提供了一个名为Flex ASM的功能 Flex ASM是一个不同的概念和架构 只有很少数量的ASM实例需要运行在集群中的一些服务器上 当某节点上的一个ASM实例发生故障 Oracle集群就会在另一个不同的节点上自动启动替代ASM实例以加强可用性 另外 这一设置还为运行在此节点上的实例提供了ASM实例负载均衡能力 Flex ASM的另一个优势就是可以在单独节点上加以配置

  当选择Flex Cluster选项作为集群安装环境的第一部分时 鉴于Flex Cluster的要求 Flex ASM配置就会被自动选择 传统集群同样也适用于Flex ASM 当你决定使用Flex ASM时 你必须保证所需的网络是可用的 你可以选择Flex ASM存储选项作为集群安装环境的一部分 或是使用ASMCA在一个标准集群环境下启用Flex ASM 以下命令显示了当前的ASM模式 $ /asmcmd showclustermode $ /srvctl config asm或是连接到ASM实例并查询INSTANCE_TYPE参数 如果输出值为ASMPROX 那么 就说明Flex ASM已经配置好了

  ASM存储限制放宽ASM存储硬性限额在最大ASM 磁盘群组和磁盘大小上已经大幅提升 在 c R 中 ASM支持 个ASM磁盘群组 而在 g R 中只支持 个 同样 相比起在 g R 中 PB的磁盘大小 现在已经将这一数字提高到 PB 对ASM均衡操作的优化 c 中新的EXPLAIN WORK FOR 语句用于衡量一个给定ASM均衡操作所需的工作量 并在V$ASM_ESTIMATE动态视图中输入结果 使用此动态视图 你可以调整POWER LIMIT 语句对重新平衡操作工作进行改善 例如 如果你想衡量添加一个新ASM磁盘所需的工作量 在实际执行手动均衡操作之前 你可以使用以下命令 SQL> EXPLAIN WORK FOR ALTER DISKGROUP DG_DATA ADD DISK data_ SQL> SELECT est_work FROM V$ASM_ESTIMATE SQL> EXPLAIN WORK SET STATEMENT_ID= ADD_DISK FOR ALTER DISKGROUP DG_DATA AD DISK data_ SQL> SELECT est_work FROM V$ASM_ESTIMATE WHERE STATEMENT_ID = ADD_DISK 你可以根据从动态视图中获取的输出来调整POWER的限制以改善均衡操作

  ASM 磁盘清理在一个ASM磁盘群组中 新的ASM磁盘清理操作分为正常或高冗余两个级别 它可以检验ASM磁盘群组中所有磁盘的逻辑数据破坏 并且可以自动对逻辑破坏进行修复 如果检测到有逻辑数据破坏 就会使用ASM镜像磁盘 磁盘清理可以在磁盘群组 特定磁盘或是某个文件上执行 这样其影响可降到最小程度 以下演示了磁盘清理场景 SQL> ALTER DISKGROUP dg_data SCRUB POWER LOW HIGH AUTO MAX SQL> ALTER DISKGROUP dg_data SCRUB FILE +DG_DATA/MYDB/DATAFILE/filename xxxx xxxx REPAIR POWER AUTO ASM的活动会话历史(ASH)

  V$ACTIVE_SESSION_HISOTRY 动态视图现在还可以提供ASM实例的活动会话抽样 然而 诊断包的使用是受到许可限制的

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

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

  部署Flex 集群的两种途径 在配置一个全新集群的时候部署 升级一个标准集群模式到Flex集群如果你正在配置一个全新的集群 你需要在步骤 中选择集群配置的类型 选择配置一个Flex集群选项 然后你需要在步骤 中对Hub和Leaf节点进行分类 对于每个节点 选择相应角色是Hub或是Leaf 而虚拟主机名也是可选的

  将一个标准集群模式转换为Flex 集群模式需要以下步骤 用以下命令获取集群的当前状态 $ /crsctl get cluster mode status 以root用户执行以下命令 $ /crsctl set cluster mode flex $ /crsctl stop crs $ /crsctl start crs –wait 根据设计改变节点角色 $ /crsctl get node role config $ /crsctl set node role hub|leaf $ /crsctl stop crs $ /crsctl start crs wait注意 ?你无法从Flex恢复回标准集群模式?改变集群节点模式需要集群栈停止?确保以一个固定的VIP配置GNS ASM磁盘群组中的OCR备份对于 c OCR现在可以在ASM磁盘群组中得以备份 这简化了通过所有节点对OCR备份文件的访问 为了防止OCR的恢复 你不必担心OCR最新的备份是在哪个节点上 可以从任何节点轻易识别存储在ASM中的最新备份并能很容易地执行恢复

  以下演示了如何将ASM磁盘群组设置为OCR备份位置 $ /ocrconfig backuploc +DG_OCR支持IPv 协议对于 c Oracle是支持IPv 网络协议配置的 你现在可以在IPv 或IPv 上配置共有或私有网络接口 尽管如此 你需要确保在所有集群中的节点上使用相同的IP协议

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

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

  SQL> TRUNCATE TABLE CASCADE SQL> TRUNCATE TABLE PARTITION CASCADE 如果对于子表的外键没有定义ON DELETE CASCADE 选项 便会抛出一个ORA 错误

   对Top N查询结果限制记录在之前的版本中有多种间接手段来对顶部或底部记录获取Top N查询结果 而在 c中 通过新的FETCH FIRST|NEXT|PERCENT语句简化了这一过程并使其变得更为直接 为了从EMP表检索排名前 的工资记录 可以用以下新的SQL语句 SQL> SELECT eno ename sal FROM emp ORDER BY SAL DESC FETCH FIRST ROWS ONLY 以下示例获取排名前N的所有相似的记录 例如 如果第十行的工资值是 并且还有其他员工的工资符合排名前N的标准 那么它们也同样会由WITH TIES语句获取

  SQL> SELECT eno ename sal FROM emp ORDER BY SAL DESC FETCH FIRST ROWS ONLY WITH TIES 以下示例限制从EMP表中获取排名前 %的记录 SQL> SELECT eno ename sal FROM emp ORDER BY SAL DESC FETCH FIRST PERCENT ROWS ONLY 以下示例忽略前 条记录并会显示表的下 条记录 SQL> SELECT eno ename sal FROM emp ORDER BY SAL DESC OFFSET ROWS FETCH NEXT ROWS ONLY 所有这些限制同样可以很好的应用于PL/SQL块

  BEGIN SELECT sal BULK COLLECT INTO sal_v FROM EMP FETCH FIRST ROWS ONLY END 对SQL*Plus的各种增强SQL*Plus的隐式结果 c中 在没有实际绑定某个RefCursor的情况下 SQL*Plus从一个PL/SQL块的一个隐式游标返回结果 这一新的dbms_sql return_result过程将会对PL/SQL 块中由SELECT 语句查询所指定的结果加以返回并进行格式化 以下代码对此用法进行了描述 SQL> CREATE PROCEDURE mp res sys_refcursor BEGIN open res for SELECT eno ename sal FROM emp dbms_sql return_result(res ) END SQL> execute mp 当此过程得以执行 会在SQL*Plus上返回格式化的记录

  显示不可见字段 在本系列文章的第一部分 我已经对不可见字段的新特性做了相关阐述 当字段定义为不可见时 在描述表结构时它们将不会显示 然而 你可以通过在SQL*Plus提示符下进行以下设置来显示不可见字段的相关信息 SQL> SET COLINVISIBLE ON|OFF以上设置仅对DESCRIBE 命令有效 目前它还无法对不可见字段上的SELECT 语句结果产生效果

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

  会话级序列会产生一个独特范围的值 这些值是限制在此会话内的 而非超越此会话 一旦会话终止 会话序列的状态也会消失 以下示例解释了创建一个会话级序列 SQL> CREATE SEQUENCE my_seq START WITH INCREMENT BY SESSION SQL> ALTER SEQUENCE my_seq GLOBAL|SESSION 对于会话级序列 CACHE NOCACHE ORDER 或 NOORDER 语句会予以忽略

   WITH语句的改善在 c中 你可以用SQL更快的运行PL/SQL函数或过程 这些是由SQL语句的WITH语句加以定义和声明的 以下示例演示了如何在WITH语句中定义和声明一个过程或函数 WITH PROCEDURE|FUNCTION test (…)

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

   扩展数据类型在 c中 与早期版本相比 诸如VARCHAR NAVARCHAR 以及 RAW这些数据类型的大小会从 K以及 K字节扩展至 K字节 只要可能 扩展字符的大小会降低对LOB数据类型的使用 为了启用扩展字符大小 你必须将MAX_STRING_SIZE的初始数据库参数设置为EXTENDED 要使用扩展字符类型需要执行以下过程 关闭数据库 以升级模式重启数据库 更改参数 ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED 执行 utl k sql as sysdba SQL> @?/rdbms/admin/utl k sql 关闭数据库 以读写模式重启数据库对比LOB数据类型 在ASSM表空间管理中 扩展数据类型的字段以SecureFiles LOB加以存储 而在非ASSM表空间管理中 它们则是以BasciFiles LOB进行存储的

cha138/Article/program/Oracle/201311/17823

相关参考

知识大全 ORACLE7.0到ORACLE8.1的新特性比较

ORACLE7.0到ORACLE8.1的新特性比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Oracle10g新特性—RMAN

Oracle10g新特性—RMAN  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RMAN增量备

知识大全 Oracle10g新特性—选择性编译

Oracle10g新特性—选择性编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 Oracle11g新特性之AutoMemoryManagement

Oracle11g新特性之AutoMemoryManagement  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 oracle 10g 新特性中文笔记一

  第一章安装    目标    完成本课您将能够:    *列出新的安装特性  *列出安装性能的增加    安装新特性支持    *数据库存储选项  文件系统  自动存储管理(asm)  裸设备  

知识大全 Oracle10g最佳20个新特性

Oracle10g最佳20个新特性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!答案依DBA的工作

知识大全 Oracle10g新特性——选择性编译

Oracle10g新特性——选择性编译  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracl

知识大全 Oracle11g新特性点评之RMAN

Oracle11g新特性点评之RMAN  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RMAN除

知识大全 Oracle11g新特性之动态变量窥视

Oracle11g新特性之动态变量窥视  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  g之前的绑

知识大全 Oracle10g新特性—增强的CONNECTBY子句

Oracle10g新特性—增强的CONNECTBY子句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧