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内存的会话。

Oracle12c功能增强 新特性之管理功能的增强的更多相关文章

  1. Atitit 数据融合merge功能v3新特性.docx

    Atitit 数据融合merge功能v3新特性.docx 1.1. 版本历史1 1.2. 生成sql结果1 1.3. 使用范例1 1.4. 核心代码1 1.1. 版本历史 V2增加了replace部分 ...

  2. Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27

    Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27 1. 修改历史2 2. 适用语言::几乎所有编程语言.语言提升的三个渠道::语法,类库,框架,ide2 2.1. 单根继承  ...

  3. PHP5各个版本的新功能和新特性总结

    因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征 本文目录:PHP5.2 以前:auto ...

  4. PHP5各个版本的新功能和新特性总结(转载 http://www.jb51.net/article/48150.htm)

    本文目录:PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束PHP5.2:JSON 支持PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredo ...

  5. PHP 5.6正式发布:新特性、及功能改进介绍

    经过了长时间的开发测试,新版本PHP程序(PHP5.6正式版)终于发布了.新版本中加入了一些实用的新特性,也摒弃了一些冗余的功能.同时,也对部分原有功能进行了改进.下面就一起看看PHP 5.6正式版到 ...

  6. Oracle12c中性能优化增强新特性之数据库智能闪存

    智能闪存功能最初在XD中引入.从Oracle11.2.0.2开始,除了用于XD存储,还可用于任何闪盘.Oracle12c中,不需卷管理器就可以使用闪盘. 1.  简介 智能闪存在solaris和lin ...

  7. SQL Server 2008新特性——策略管理

    策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例.数据库以及数据库对象的各种属性.策略管理在SSMS的对象资源管理器数据库实例下的“管理”节点下,如图: 从图中可以看到,策略 ...

  8. 11g新特性-dba_users安全性的一些增强

    1.dba_user表的password(除了GLOBAL和EXTERNAL的密码)不再保存密码. 查询10g的dba_user表 SQL> select username,password f ...

  9. Oracle12c中性能优化&功能增强新特性之重大突破——内存列存储新特性

    内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数据存在内存中的好处显而易见,而列 ...

随机推荐

  1. WinCE启动失败的原因与解决办法分析

    本文通过一个真实的嵌入式项目进行说明.文中的嵌入式系统用的是ARM处理器+WinCE平台,项目的目的是要把WinCE平台从旧版本移植到WinCE6.0平台上.但结果是这个WinCE系统在启动的时候经常 ...

  2. <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值

    <s:property="a"  value=""/>取的<s:debug></s:debug>中的value stack中 ...

  3. [原]Unity3D深入浅出 - 认识开发环境中的Project面板

      前面几个是用来创建脚步的,从Prefab说起: Prefab:预设物体,若一个Object在Scene中多处用到,即可选择为改对象创建一个Prefab.创建一个Prefab后,将源Object拖拽 ...

  4. [swustoj 404] 最小代价树

    最小代价树(0404) 问题描述 以下方法称为最小代价的字母树:给定一正整数序列,例如:4,1,2,3,在不改变数的位置的条件下把它们相加,并且用括号来标记每一次加法所得到的和. 例如:((4+1)+ ...

  5. ↗☻【HTML5秘籍 #BOOK#】第8章 使用CSS3

    开发商前缀-moz- Firefox-webkit- Chrome和Safari-ms- Internet Explorer-o- Opera 伪类创造的交互性虽好,但已经有点过时了.主要问题是—太突 ...

  6. (1)java虚拟机概念和结构图

    java虚拟机解构图一 java虚拟机解构图二 java虚拟机结构图三 [1]类加载系统        --->负责从文件系统或网络中加载class信息,存放至方法区的内存空间[2]java堆  ...

  7. 多线程程序设计学习(9)worker pattern模式

    Worker pattern[工作模式]一:Worker pattern的参与者--->Client(委托人线程)--->Channel(通道,里边有,存放请求的队列)--->Req ...

  8. 在PowerDesigner中设计物理模型2——约束

    唯一约束 唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束.不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所 ...

  9. [C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例

    本文我们来学习一下在Entity Framework中使用Context删除多对多关系的实体是如何来实现的.我们将以一个具体的控制台小实例来了解和学习整个实现Entity Framework 多对多关 ...

  10. IOS 多线程 NSOperation GCD

    1.NSInvocationOperation NSInvocationOperation * op; NSOperationQueue * que = [[NSOperationQueuealloc ...