Oracle12c功能增强 新特性之管理功能的增强
1. 数据文件在线重命名和迁移
不想先前的版本号。在Oracle12cR1中,数据文件的迁移或重命名不再要求一系列的步骤,比如:将表空间至于仅仅读模式,然后数据文件逻辑等操作。在12cR1中。数据文件能通过SQL语句“ALTERDATABASE MOVE DATAFILE”非常easy的在线完毕。在移动数据文件的过程中,用户能够运行查询,DML和DDL任务。另外,数据文件能在存储间迁移,比如:从非ASM到ASM,反之亦然。
1.1. 重命名数据文件:
SQL> ALTER DATABASE MOVE DATAFILE '/u01/data/users01.dbf'TO '/u01/data/users_02.dbf';
1.2. 从非ASM存储迁移数据文件到ASM:
SQL> ALTER DATABASE MOVE DATAFILE'/u01/data/users_01.dbf' TO '+DG_DATA';
数据文件从一个ASM磁盘组迁移到还有一个:
SQL> ALTER DATABASE MOVE DATAFILE'+DG_DATA/users_01.dbf ' TO '+DG_DATA_02';
1.3. 假设数据文件在新位置也存在,则覆盖同名的数据文件:
SQL> ALTER DATABASE MOVE DATAFILE'/u01/data/users_01.dbf' TO '/u02/data_new/users_01.dbf' REUSE;
1.4. 数据文件复制到新位置,旧位置保留旧的拷贝:
SQL> ALTER DATABASE MOVE DATAFILE'/u00/data/users_01.dbf' TO '/u00/data_new/users_01.dbf' KEEP;
通过查询动态视图v$session_longops,你能够监控数据文件移动的进程。
另外,你也能够參考数据库的alert.log。由于,Oracle会把正在进行的操作的具体信息写入该日志中。
2. 表分区或子分区的在线迁移
在Oracle12c中,把表分区或子分区迁移到一个不同表空间的操作不再要求一个复杂过程。类似之前版本号中在线迁移一个非分区表。表分区或子分区能够在线或离线迁移到一个不同的表空间中。
当确定ONLINE子句时,全部在和该迁移过程相关的分区或子分区上的DML操作不会被打断。相反,假设分区或子分区被离线迁移,全部的DML操作都不会被同意。
以下是相关样例:
SQL> ALTER TABLE table_name MOVE PARTITION|SUBPARTITIONpartition_name TO tablespacetablespace_name;
SQL> ALTER TABLE table_name MOVE PARTITION|SUBPARTITIONpartition_name TO tablespacetablespace_name UPDATE INDEXES ONLINE;
第一个样例是把表分区或子分区离线迁移到一个新表空间上。
第二个样例是在线迁移表分区或子分区,而且同一时候维护表上的本地和全局索引。另外,当确定ONLINE子句时,DML操作不会被打断。
注意:
1) UPDATEINDEXES子句将避免表上的本地和全局索引变得不可用。
2) 表在线迁移的限制在这里也相同使用。
3) 在迁移过程中将会加锁,这或许会导致性能减少,而且会产生大量的redo。这样看分区或子分区的大小。
3. 不可见列
Oracle 11g R1中, Oracle在不可见索引和虚拟列方面引进了几个增强。
对这些特性进一步发展,Oracle12cR1中引进了不看见列的概念。还记得,在先前的版本号中,为了在一个普通查询中隐藏一些重要的数据列,我们经常创建一个视图,以此来隐藏必要的信息或应用一些安全条件。
12c R1中,在表中能够建一个不可见的列。当列被定义为不可见时,在普通查询中这个列不会出现,除非该列在SQL语句或条件中被显式的參考。或者在表定义中被DESCRIBED。
添加或改动一个不可见列很easy。反之亦然。
SQL> CREATE TABLE emp (eno number(6), ename namevarchar2(40), sal number(9) INVISIBLE);
SQL> ALTER TABLE emp MODIFY (sal visible);
为了把数据插入不可见列,你必须显式的參考它。
一个虚拟列或分区列也能被定义为不可见列。
但是,暂时表。外部表和簇表不支持不可见列。
4. 同样列上建多个索引
Oracle 12c前。在同样列或同样一组列上不能够创建多个索引。
比如:假设你在列(a)或列(a,b)上有一个索引,你就不能依照同样顺序在同一列或同一组列上创建还有一个索引。
12c中。在同一个列或同一组列上你能够建立多个索引,仅仅要索引类型不同就能够。但是,在不论什么时刻,仅仅能有一种索引是可用的或可见的。为了測试不可见索引,你须要设置參数optimizer_use_use_invisible_indexes=true,以下是一个样例:
SQL> CREATEINDEX emp_ind1 ON EMP(ENO,ENAME);
SQL> CREATEBITMAP INDEX emp_ind2 ON EMP(ENO,ENAME) INVISIBLE;
5. DDL日志
先前的版本号中。没有记录DDL操作的命令选项。12cR1中,你能把DDL操作记录到xml和日志文件中。
这在想知道什么时候,是谁运行了删除和创建命令时会很实用。为了打开该特性。必须配置初始化參数ENABLE_DDL_LOGGING,该參数能在数据库和会话级别设置。
当该參数被启用时,全部的DDL命令被记录在$ORACLE_BASE/diag/rdbms/DBNAME/log|ddl下的xml和日志文件中。
每一个xml文件包括像DDL命令,IP地址。时间戳等信息。这有助于鉴定何时删除了用户或表。或DDL语句何时被触发。
5.1. 为了启用DDL日志:
SQL> ALTERSYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;
5.2. 下列DDL语句有可能在xml和日志文件中被记录:
1) CREATE|ALTER|DROP|TRUNCATETABLE
2) DROPUSER
3) CREATE|ALTER|DROPPACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE
6. 暂时Undo
每一个Oracle数据库包括一套系统相关的表空间,比如:SYSTEM, SYSAUX, UNDO & TEMP,在Oracle数据库中每一个表空间其不同的作用。Oracle12cR1之前,暂时表产生的undo记录被存储在undo表空间中。和普通或永久表的undo记录非常类似。但是,在12cR1中。暂时undo记录如今能被存储在暂时表中而不是存储在undo表空间中。
处包括:降低了undo表空间的占用及降低了redo数据这个特性的好的产生,由于这些信息不会被记录在redo日志中。你能够在会话或数据库级别启用暂时undo选项。
6.1. 启用暂时undo
为了使用该新特性,须要做例如以下设置
1) Compatibility參数必须被设置为12.0.0或更高。
2) 开启TEMP_UNDO_ENABLED初始化參数。
3) 因为如今暂时undo记录存储在暂时表空间,你须要保证暂时表空间有足够的空间。
4) 你能用该命令在会话级别开启暂时undo特性:ALTERSESSION SET TEMP_UNDO_ENABLE=TRUE;
6.2. 查询暂时undo信息
以下被列出的字典视图被用来浏览或查询关于暂时undo数据的统计信息:
1) V$TEMPUNDOSTAT
2) DBA_HIST_UNDOSTAT
3) V$UNDOSTAT
6.3. 为了关闭该特性,你仅仅须要做下面设置:
SQL> ALTER SYSTEM|SESSION SET TEMP_UNDO_ENABLED=FALSE;
7. 备份确定的用户权限
在11g R2中,SYSASM权限被引进来运行ASM特定的操作。类似的,在12c中,也引进了运行备份和恢复的特定操作的权限SYSBACKUP,以便在RMAN中运行备份和恢复操作。所以,你能够在数据库中创建一个本地用户,然后不须要SYSDBA权限。而仅仅需授予SYSBACKUP权限来在RMAN中运行备份和恢复任务。
$ ./rman target "username/password asSYSBACKUP"
8. 怎样在RMAN中运行SQL语句
12c中。在RMAN中你能够不须要带SQL前缀来运行不论什么SQL和PL/SQL命令,你能够在RMAN中直接运行不论什么SQL和PL/SQL命令。在RMAN中怎样来运行SQL语句呢?
RMAN> SELECT username,machine FROM v$session;
RMAN> ALTER TABLESPACE users ADD DATAFILE SIZE 500m;
9. RMAN中恢复表和分区
Oracle数据库备份主要分为两类:逻辑和物理。每种备份类型有自己的优缺点。
在先前的版本号。用现有的物理备份恢复一个表或分区不合适,为了恢复一个特定的对象,你必须有逻辑备份。12cR1中。在意外删除或截断发生后,你能从RMAN备份把一个特定表或分区恢复到一个时间点或SCN。
9.1. 当開始通过RMAN去恢复一个表或分区时,需运行例如以下操作:
1) 准备恢复表或分区须要的备份集。
2) 在恢复表或分区的过程中,须要暂时配置一个辅助数据库到某个时间点。
3) 须要的表或分区须要用数据泵导出成dumpfile。
4) 可选地,你能把表或分区导入源库。
5) 恢复时能够重命名。
9.2. 通过RMAN对一张表进行时间点恢复的样例(确信你已有较早的全库备份):
RMAN> connect target"username/password as SYSBACKUP";
RMAN> RECOVER TABLE username.tablenameUNTIL TIME 'TIMESTAMP…'
AUXILIARYDESTINATION '/u01/tablerecovery'
DATAPUMPDESTINATION '/u01/dpump'
DUMPFILE 'tablename.dmp'
NOTABLEIMPORT --该选项避免表被自己主动导入。
REMAPTABLE 'username.tablename': 'username.new_table_name'; --用该选项能够重命名表。
9.3. 注意:
1) 确信在/u01文件系统下有足够的空暇可用空间来保存辅助数据库和数据泵文件。
2) 全数据库备份必须存在,或至少SYSTEM相关的表空间存在。
下列的限制适用RMAN恢复表或分区:
1) SYS用户表或分区不能恢复。
2) 存储在SYSAUX和SYSTEM表空间的表或分区不能恢复。
3) 不能使用REMAP选项来恢复一个包括NOT NULL约束的一个表。
10. 限制PGA大小
Oracle12c R1之前,没有选项能够限制和控制PGA的大小。尽管你能把PGA_AGGREGATE_TARGET设置为某个确定值。Oracle还是能够基于负载和需求动态的添加或降低PGA的大小。12c中。能够通过启用PGA自己主动管理来给PGA设置一个硬限制。启用PGA自己主动管理要求设置PGA_AGGREGATE_LIMIT參数。所以,你如今能通过设置这个新參数来设置PGA的硬限制。以避免过度使用PGA:
SQL>ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=2G;
SQL>ALTER SYSTEM SET PGA_AGGREGATE_LIMIT=0; --disables the hard limit
注意:
当超过当前的PGA限制时。Oracle将自己主动终止持有最多不能保持的PGA内存的会话。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5352219.html,如需转载请自行联系原作者
Oracle12c功能增强 新特性之管理功能的增强相关推荐
- oracle12c spa,Oracle12c功能加强 新特性之管理功能的加强
1. 数据文件在线重命名和迁移数据库 不想先前的版本,在Oracle12cR1中,数据文件的迁移或重命名再也不要求一系列的步骤,例如:将表空间至于只读模式,而后数据文件逻辑等操做.在12cR1中 ...
- linux5.5内核,Linux 5.5内核发布下载,附新功能及新特性介绍
Linux Kernel 5.5内核已经正式发布了,提供linux-5.5.tar.xz下载,它具有许多更改和值得改进的地方,该内核版本也将在2020年晚些时候作为Ubuntu HWE堆栈的一部分反向 ...
- php 5.6 新特性,PHP 5.6正式发布:新特性、及功能改进介绍
经过了长时间的开发测试,新版本PHP程序(PHP5.6正式版)终于发布了.新版本中加入了一些实用的新特性,也摒弃了一些冗余的功能.同时,也对部分原有功能进行了改进.下面就一起看看PHP 5.6正式版到 ...
- PHP5各个版本的新功能和新特性总结
本文目录: PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Her ...
- PHP5各个版本的新功能和新特性总结(转载 http://www.jb51.net/article/48150.htm)
本文目录: PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Her ...
- 开源办公开发平台新应用——办公用品管理功能上线!
企业管理中,除了人员的管理,许许多多的办公用品也亟待管理.小到纸张笔墨,大到桌椅电脑,都是企业购入的资产,但是因为数量繁多,使用人员复杂,管理起来也是特别的麻烦. 比如以下这几个问题,就是办公用品管理 ...
- Java里time包的功能,java8新特性之time包总结
Java8新特性java.time.*包学习. 自从 java 发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9.10.11相继出来,长江后浪推前浪一浪胜过一浪.之前date ...
- Java里time包的功能,java8新特性教程之time包使用总结
前言 java8新特性java.time.*包学习. 自从java发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9.10.11相继出来,长江后浪推前浪一浪胜过一浪.之前dat ...
- Oracle 18c 新特性:动态 Container Map 增强 Application Container 灵活性
数据技术嘉年华等你来 活动预告:11.16-17日,北京市东三环中路61号富力万丽酒店,相聚数据技术嘉年华,(99元票务)免费购票倒计时,点击查看大会详情. 盖老师带来主题"稳筑基石,云帆万 ...
最新文章
- Cisco OSPF常见问题
- 【网络基础】URI 和 URL 的纠缠
- 肤色检测算法 - 基于二次多项式混合模型的肤色检测
- pythonlauncher是干什么用的_python里launcher是什么
- C++ SYN攻击源码
- Android震动vibrator系统开发全过程
- hexo博客完整备份
- SharePoint【学习笔记】-- SharePoint 2010 技术参数整理
- inode索引节点的概念
- php session 为空,ThinkPHP_session问题_dump显示session为空
- 道了 14 年歉的扎克伯格,继续犯错的 Facebook
- Python函数相关
- java开发电脑分频器,FPGA设计——分频器(2.5分频器的程序)
- 【优化算法】原子搜索优化算法(ASO)【含Matlab源码 1541期】
- linux如何共享网络打印机,Ubunt如何安装网络打印机的详细图文步骤
- Hacking Diablo II之外挂实战教程:去除D2JSP试用版显示的Trial Version信息
- SAS中output的运用
- 离散数学-数理逻辑基本概念
- 终于找到了PyMuPDF不能提取文字的原因……它只是个包装
- 前端开发攻略,微信公众号前端开发教程