1.    数据文件在线重命名和迁移数据库

不想先前的版本,在Oracle12cR1中,数据文件的迁移或重命名再也不要求一系列的步骤,例如:将表空间至于只读模式,而后数据文件逻辑等操做。在12cR1中,数据文件能经过SQL语句“ALTERDATABASE MOVE DATAFILE”很容易的在线完成。在移动数据文件的过程当中,用户能够执行查询,DML和DDL任务。另外,数据文件能在存储间迁移,例如:从非ASM到ASM,反之亦然。安全

1.1.   重命名数据文件:session

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';spa

数据文件从一个ASM磁盘组迁移到另外一个:日志

SQL> ALTER DATABASE MOVE DATAFILE'+DG_DATA/users_01.dbf ' TO '+DG_DATA_02';xml

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。增长或修改一个不可见列很是容易,反之亦然。

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 spa,Oracle12c功能加强 新特性之管理功能的加强相关推荐

  1. Oracle12c功能增强 新特性之管理功能的增强

    1.    数据文件在线重命名和迁移 不想先前的版本号.在Oracle12cR1中,数据文件的迁移或重命名不再要求一系列的步骤,比如:将表空间至于仅仅读模式,然后数据文件逻辑等操作.在12cR1中.数 ...

  2. linux5.5内核,Linux 5.5内核发布下载,附新功能及新特性介绍

    Linux Kernel 5.5内核已经正式发布了,提供linux-5.5.tar.xz下载,它具有许多更改和值得改进的地方,该内核版本也将在2020年晚些时候作为Ubuntu HWE堆栈的一部分反向 ...

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

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

  4. Java里time包的功能,java8新特性之time包总结

    Java8新特性java.time.*包学习. 自从 java 发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9.10.11相继出来,长江后浪推前浪一浪胜过一浪.之前date ...

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

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

  6. Java里time包的功能,java8新特性教程之time包使用总结

    前言 java8新特性java.time.*包学习. 自从java发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9.10.11相继出来,长江后浪推前浪一浪胜过一浪.之前dat ...

  7. 开源办公开发平台新应用——办公用品管理功能上线!

    企业管理中,除了人员的管理,许许多多的办公用品也亟待管理.小到纸张笔墨,大到桌椅电脑,都是企业购入的资产,但是因为数量繁多,使用人员复杂,管理起来也是特别的麻烦. 比如以下这几个问题,就是办公用品管理 ...

  8. oracle12c生命周期,Oracle 12c 新特性之: ILM 数据生命周期管理

    张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 ILM 全称是 Information Lifecycle Management,意思是信息生命周期管理,听上去很高端洋气的 ...

  9. oracle12c启动apply,Oracle 12c 新特性 -- DG 默认使用 Real-Time Apply

    https://www.cndba.cn/dave/article/213 1    理论说明 在Oracle 12c 之前的Data Guard 环境中,默认情况下备库apply redo 是从备库 ...

最新文章

  1. 织梦dedecms如何快速使用拼音首字母做栏目名称
  2. 最深刻最通俗的HTTPS 原理详解,图文并茂
  3. linux lftp lftpget 命令简介
  4. 全球及中国衣柜香氛市场投资份额与营销潜力研究报告2022版
  5. STM32应用实例六:与MS5837压力传感器的I2C通讯
  6. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
  7. 使用redis做为MySQL的缓存
  8. 2021巨量引擎汽车直播行业研究报告
  9. 疑似华为Mate 30系列通过3C认证:标配40W快充
  10. Spring容器创建流程(4)调用beanFactory后置处理器
  11. 关于ArrayList转json
  12. 关闭WPS右键菜单,以及热点,广告弹窗推送
  13. Selenium Firefox Webdriver 无图模式
  14. 渔乡朱朱的三农短视频账号运作和变现方法
  15. Swap——二分图最大匹配
  16. python3.7运行 skimage 报错ImportError: DLL load failed:找不到指定模块
  17. 纸壳CMS体验升级,快速创建页面,直接在页面中修改内容
  18. 洛谷 1282 多米诺骨牌#线性动态规划#
  19. 微信小程序:扫描身份证读取身份信息
  20. C语言实现归并排序——2路归并排序

热门文章

  1. java软件设计模式只单例设计模式
  2. 为什么新来的技术很难接手维护一个系统
  3. linux系统管理命令--系统测试工具
  4. Theano3.4-练习之多层感知机
  5. 不忘历史才能开辟未来,善于继承才能善于创新
  6. Bing API 2的体验
  7. python下使用qrcode方法
  8. c++ 判断数学表达式有效性_C运算符和表达式、if判断、switch与逻辑运算、循环语句...
  9. python怎么理解函数的参数_理解Python中函数的参数
  10. linux批量es数据,Elasticsearch批量插入数据