Oracle数据版本12.2.0.1.0有哪些新特性

66次阅读
没有评论

共计 6809 个字符,预计需要花费 18 分钟才能阅读完成。

本篇内容主要讲解“Oracle 数据版本 12.2.0.1.0 有哪些新特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Oracle 数据版本 12.2.0.1.0 有哪些新特性”吧!

1. 在线重命名和重新定位活跃数据文件

可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移动

 2. 表分区或子分区的在线迁移

表分区或子分区可以在线或是离线迁移至一个不同的表空间。

当指定了 ONLINE 语句,所有的 DML 操作可以在没有任何中断的情况下,在参与这一过程的分区或子分区上执行,还可维护表上任何本地或全局的索引

 3. 不可见字段

可以在表中创建不可见字段。

当一个字段定义为不可见时,这一字段就不会出现在通用查询中,除非在 SQL 语句或条件中有显式的提及这一字段,或是在表定义中有 DESCRIBED。

必须在 INSERT 语句中显式提及不可见字段名以将不可见字段插入到数据库中。

虚拟字段和分区字段同样也可以定义为不可见类型。但临时表,外部表和集群表并不支持不可见字段

set colinvisible on

alter table emp modify(sal visible);

4. 相同字段上的多重索引

只要索引类型的形式不同,一个字段就可以包含在一个 B -tree 索引中,同样也可以包含在 Bitmap 索引中

5. DDL 日志

可以将 DDL 操作写入 xml 和日志文件中

ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

DDL 操作会记录在 $ORACLE_BASE/diag/rdbms/DBNAME/log/ddl 路径下

/u01/app/oracle/diag/rdbms/prod/PROD/log/ddl

6. 临时 undo

临时 undo 功能中,临时 undo 记录可以存储在一个临时表中,而无需再存储在 undo 表空间内。

这样做的主要好处在于:减少 undo 表空间,由于信息不会被记录在 redo 日志中,所以减少了 redo 数据的生成。

你可以在会话级别或者数据库级别来启用临时 undo 选项

show parameter undo;

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size)

create global temporary table temp_objects as select * from dba_objects where 1=2;  

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size

insert into temp_objects select * from dba_objects;

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size

drop table temp_objects;

ALTER SYSTEM SET TEMP_UNDO_ENABLED=TRUE;

show parameter undo;

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size

create global temporary table temp_objects as select * from dba_objects where 1=2;  

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size

insert into temp_objects select * from dba_objects;

select name,value from v$mystat natural join v$statname where name in(redo entries , redo size

7. 新的备份用户特权

在 12c 中引入了 SYSBACKUP 特权用来在 RMAN 中执行备份和恢复命令。

因此,你可以在数据库中创建一个本地用户并在不授予其 SYSDBA 权限的情况下,通过授予 SYSBACKUP 权限让其能够在 RMAN 中执行备份和恢复相关的任务。

$ ./rman target username/password as SYSBACKUP

备份用户权限

grant sysbackup to wangkai;

rman target wangkai/oracle@prod as sysbackup

8. 可以在 RMAN 中执行 SQL 语句

可以在不需要 SQL 前缀的情况下在 RMAN 中执行任何 SQL 和 PL/SQL 命令,即你可以从 RMAN 直接执行任何 SQL 和 PL/SQL 命令

9. RMAN 中的表级别恢复

可以在发生 drop 或 truncate 的情况下从 RMAN 备份将一个特定的表或分区恢复到某个时间点或 SCN

drop table emp1 purge;

RMAN recover table wk.emp1 until time to_date(2018-11-06 14:00:00 , yyyy-mm-dd hh34:mi:ss)

2 auxiliary destination /u01/app/backup/tmp  

3 datapump destination /u01/app/backup/tmp

执行详情见
session.log.

select * from emp1;

10. PGA 的大小限制问题

可以通过开启自动 PGA 管理来对 PGA 设定硬性限制,这需要对 PGA_AGGREGATE_LIMIT 参数进行设置

当超过了当前的 PGA 的限制,Oracle 会自动终止 / 中止会话或进程以保持最合适的 PGA 内存。

create or replace package demo_pkg

as

 type array is table of char(2000) index by binary_integer;

 g_data array;

end;

/

select a.name,to_char(b.value, 999,999,999)bytes,to_char(round(b.value/1024/1024,1), 99,999.9 )mbytes

from v$statname a,v$mystat b

where a.statistic#=b.statistic#

and a.name like %ga memory%

begin

for i in 1..1000000

 loop

 demo_pkg.g_data(i):= x

 end loop;

end;

/

11. 对表分区维护的增强

12c 只需要使用一条单独的 ALTER TABLE ADD PARTITION 命令就可以添加多个新分区

select TABLE_NAME,PARTITION_NAME,tablespace_name,PARTITION_POSITION,SEGMENT_CREATED from user_tab_partitions;

ALTER TABLE sales_history
drop PARTITION p5;

ALTER TABLE sales_history ADD

partition p5 VALUES LESS THAN (TO_DATE( 01-JAN-2003 , dd-MON-yyyy)) tablespace study3,

partition p6 VALUES LESS THAN (TO_DATE( 01-JAN-2004 , dd-MON-yyyy)) tablespace study3;

select TABLE_NAME,PARTITION_NAME,tablespace_name,PARTITION_POSITION,SEGMENT_CREATED from user_tab_partitions;

12. 数据库升级改进

预升级脚本,预升级检查验证,此脚本还能以修复脚本的形式解决在升级过程前后出现的各种问题

并行升级功能

SQL @/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql

图形界面:

13. 通过网络恢复数据文件

可以在主数据库和备用数据库之间用一个服务名重新获得或恢复数据文件、控制文件、参数文件、表空间或整个数据库

场景 1,在物理备用数据库上:

./rman target‘“username/password@standby_db_tns as sysbackup”’

RMAN recover database from service primary_db_tns using compressed backupset;

(以上示例使用备库数据库上定义的 primary_db_tns 连接字符串连接到主数据库,然后执行了一个增量备份,再将这些增量备份传输至备用数据库来进行同步。然而,需要确保已经对 primary_db_tns 进行了配置,即在备份数据库端将其指向主数据库。)

在以下示例中,我将演示一个场景通过从备用数据库获取数据文件来恢复主数据库上丢失的数据文件

场景 2,在主数据库上:

./rman target‘”username/password@primary_db_tns as sysbackup”’

RMAN restore datafile‘+DG_DISKGROUP/DBNAME/DATAFILE/filename’from service standby_db_tns;

自己实验:备库删掉几个数据文件,通过从主数据库获取数据文件来恢复备库丢失的数据文件。

14. 对 Data Pump 的增强

在导出时可以将视图转换为表,在导入时可以关闭日志记录

像表一样导出视图

views_as_tables 参数允许把视图当成表导出。表结构匹配试图列,视图查询结果对应表数据。

views_as tables=

[schema_name.]view_name[:table_name],…

例子:

conn scott/tiger@prod2

create view emp_v as select * from emp;

用 views_as_tables 参数导出视图。

$expdp scott/tiger views_as_tables=scott.emp_v directory=test_dir dumpfile=emp_v.dmp logfile=expdp_emp_v.log

expdp 默认会创建一个临时表来作为视图的拷贝,但不包含数据,只是会导出提供一个元数据源。此外,也可以确定一个结构合适的表来代替,但这也许只有在只读库上才有意义。

禁用日志选项(disable_archive_logging)

impdp 的 transform 参数已经扩展为包括 disable_archive_logging 选项,默认值为“N”,不会影响日志行为;将该选项设置为“Y“,这将会使表和索引在导入前将日志属性设置为 nologging,从而减少导入期间相关日志的产生,导入后再将日志属性重置为 logging。

transform= disable_archive_logging:Y:table

transform= disable_archive_logging:Y:index

$ impdp wk/oracle directory=test_dir dumpfile=emp_v.dmp logfile=impdp_emp_v.log remap_schema=scott:wk transform= disable_archive_logging:Y

(如果数据库运行在 force logging 模式,disable_archive_logging 选项将没什么影响)

15. 实时自动数据诊断监视器 (ADDM) 分析

当数据库反应迟钝或是挂起状态时,而且你已经配置了 Oracle 企业管理器 12c 的云控制,你就可以对严重的性能问题进行诊断。

这对于你了解当前数据库发生了什么状况有很大帮助,而且还能够对此问题给出解决方案

16. 同时在多个表上收集统计数据

在 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’);

17. ASM 的增强

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

Flex ASM

节点上的 ASM 实例发生故障,则运行于此节点上的所有数据库和实例都会受到影响。

为了避免 ASM 实例的单点故障,Oracle 12c 提供了一个名为 Flex ASM 的功能。

Flex ASM 是一个不同的概念和架构,只有很少数量的 ASM 实例需要运行在集群中的一些服务器上。

当某节点上的一个 ASM 实例发生故障,Oracle 集群就会在另一个不同的节点上自动启动替代 ASM 实例以加强可用性。

另外,这一设置还为运行在此节点上的实例提供了 ASM 实例负载均衡能力。Flex ASM 的另一个优势就是可以在单独节点上加以配置

ASM 存储限制放宽

ASM 支持 511 个 ASM 磁盘群组,而在 11g R2 中只支持 63 个。

11g R2 中 20 PB 的磁盘大小,现在已经将这一数字提高到 32 PB。

对 ASM 均衡操作的优化

12c 中新的 EXPLAIN WORK FOR 语句用于衡量一个给定 ASM 均衡操作所需的工作量,并在 V$ASM_ESTIMATE 动态视图中输入结果

使用此动态视图,你可以调整 POWER LIMIT 语句对重新平衡操作工作进行改善

ASM 磁盘清理

在一个 ASM 磁盘群组中,新的 ASM 磁盘清理操作分为正常或高冗余两个级别,它可以检验 ASM 磁盘群组中所有磁盘的逻辑数据破坏,

并且可以自动对逻辑破坏进行修复,如果检测到有逻辑数据破坏,就会使用 ASM 镜像磁盘。

磁盘清理可以在磁盘群组,特定磁盘或是某个文件上执行,这样其影响可降到最小程度

ASM 的活动会话历史(ASH)

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

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

Flex 集群

Oracle 12c 在集群安装时支持两类配置:传统标准集群和 Flex 集群。

在一个传统标准集群中,所有集群中的节点都彼此紧密地整合在一起,并通过私有网络进行互动,而且可以直接访问存储。

另一方面,Flex 集群在 Hub 和 Leaf 节点结构间引入了两类节点。

分配在 Hub 中的节点类似于传统标准集群,它们通过私有网络彼此互连在一起并对存储可以进行直接读写访问。

而 Leaf 节点不同于 Hub 节点,它们不需要直接访问底层存储; 相反的是,它们通过 Hub 节点对存储和数据进行访问

ASM 磁盘群组中的 OCR 备份

对于 12c,OCR 现在可以在 ASM 磁盘群组中得以备份。

这简化了通过所有节点对 OCR 备份文件的访问。为了防止 OCR 的恢复,你不必担心 OCR 最新的备份是在哪个节点上。

可以从任何节点轻易识别存储在 ASM 中的最新备份并能很容易地执行恢复

支持 IPv6 协议

对于 12c,Oracle 是支持 IPv6 网络协议配置的。

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

19. RAC 数据库的增强

What-if 命令评估

通过 srvctl 使用新的 What-if 命令评估选项,现在可以确定运行此命令所造成的影响。

这一新添加到 srvctl 的命令,可以在没有实际执行或是不对当前系统做任何改变的情况下模拟此命令。

这在想要对一个已存在的系统进行更改却对结果不确定的时候特别有用。

这样,此命令就会提供进行变更的效果。而–eval 选项也可以通过 crsctl 命令来使用

srvctl 的改进

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

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

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

到此,相信大家对“Oracle 数据版本 12.2.0.1.0 有哪些新特性”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计6809字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)