扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“Oracle数据版本12.2.0.1.0有哪些新特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle数据版本12.2.0.1.0有哪些新特性”吧!
枣庄ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
1. 在线重命名和重新定位活跃数据文件
可以使用ALTER DATABASE MOVE DATAFILE这样的SQL语句对数据文件进行在线重命名和移动
2. 表分区或子分区的在线迁移
表分区或子分区可以在线或是离线迁移至一个不同的表空间。
当指定了ONLINE语句,所有的DML操作可以在没有任何中断的情况下,在参与这一过程的分区或子分区上执行,还可维护表上任何本地或全局的索引
3. 不可见字段
可以在表中创建不可见字段。
当一个字段定义为不可见时,这一字段就不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED。
必须在INSERT语句中显式提及不可见字段名以将不可见字段插入到数据库中。
虚拟字段和分区字段同样也可以定义为不可见类型。但临时表,外部表和集群表并不支持不可见字段
set colinvisible on
alter table emp modify(sal visible);
只要索引类型的形式不同,一个字段就可以包含在一个B-tree索引中,同样也可以包含在Bitmap索引中
可以将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
临时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');
在12c中引入了SYSBACKUP特权用来在 RMAN中执行备份和恢复命令。
因此,你可以在数据库中创建一个本地用户并在不授予其SYSDBA权限的情况下,通过授予SYSBACKUP权限让其能够在RMAN中执行备份和恢复相关的任务。
$ ./rman target "username/password as SYSBACKUP"
备份用户权限
grant sysbackup to wangkai;
rman target '"wangkai/oracle@prod as sysbackup"'
可以在不需要SQL前缀的情况下在RMAN中执行任何SQL和PL/SQL命令,即你可以从RMAN直接执行任何SQL和PL/SQL命令
可以在发生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;
可以通过开启自动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;
/
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;
预升级脚本,预升级检查验证,此脚本还能以修复脚本的形式解决在升级过程前后出现的各种问题
并行升级功能
SQL> @/u01/app/oracle/product/12.1.0/db_1/rdbms/admin/preupgrd.sql
图形界面:
可以在主数据库和备用数据库之间用一个服务名重新获得或恢复数据文件、控制文件、参数文件、表空间或整个数据库
场景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;
自己实验:备库删掉几个数据文件,通过从主数据库获取数据文件来恢复备库丢失的数据文件。
在导出时可以将视图转换为表,在导入时可以关闭日志记录
像表一样导出视图
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选项将没什么影响)
当数据库反应迟钝或是挂起状态时,而且你已经配置了Oracle 企业管理器 12c的云控制,你就可以对严重的性能问题进行诊断。
这对于你了解当前数据库发生了什么状况有很大帮助,而且还能够对此问题给出解决方案
在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’);
自动存储管理(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实例的活动会话抽样,然而,诊断包的使用是受到许可限制的。
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协议
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有哪些新特性”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流