ITPub博客

首页 > 数据库 > Oracle > Oracle 12cR1中性能优化新特性之全数据库缓冲模式

Oracle 12cR1中性能优化新特性之全数据库缓冲模式

原创 Oracle 作者:sqysl 时间:2016-06-17 22:19:49 0 删除 编辑


通常情况下,Oracle会决定哪些数据会留在缓冲区中。当没足够的空间时,数据会被写出内存。此外,为了避免大量读取将有用的信息挤出缓冲区,Oracle对有些操作也许会才去绕过缓冲区的措施。Oracle12cR1 (12.1.0.2)引入了全数据缓冲的概念。如果Oracle认为缓冲区大的足以容纳整个数据库,那么,它将会缓冲所有的数据块。此外,可以强制启用全数据缓冲模式。
1.   强制开启全数据库缓冲模式
不是让Oracle自己决定是否开启全数据库缓冲模式,你可以通过ALTER DATABASE命令强制开启该模式。
要想强制开启该模式,需要先将关闭并将库置于mount状态,否则,在打开的数据库上执行该ALTER DATABASE命令将会报错。
SQL>ALTER DATABASE FORCE FULL DATABASE CACHING;
ALTERDATABASE FORCE FULL DATABASE CACHING
*
ERRORat line 1:
ORA-01126:database must be mounted in this instance and not open in any
instance
 
SQL>
 
CONN/ AS SYSDBA
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
ALTERDATABASE FORCE FULL DATABASE CACHING;
ALTERDATABASE OPEN;
然后,查询V$DATABASE视图就会看到修改结果。
SELECTforce_full_db_caching FROM v$database;
 
FOR
---
YES
 
SQL>
2.   强制禁用全数据库缓冲模式
强制禁用全数据库缓冲模式和强制开启类似。
CONN/ AS SYSDBA
SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
ALTERDATABASE NO FORCE FULL DATABASE CACHING;
ALTERDATABASE OPEN;
通过查V$DATABASE视图也可以看到修改后的变化。
SELECTforce_full_db_caching FROM v$database;
 
FOR
---
NO
 
SQL>
3.   注意
1)  COMPATIBLE参数必须设置为12.0.0或更高。
2)  如果正使用AMM或 ASMM,可能会调整缓冲大小,从而导致缓冲太小而容不下整个数据库。需要合理调整内存参数或DB_CACHE_SIZE参数为稍大点的正确值。
3)  数据对象不会被预先加载到缓冲区,而是在被存取时被加载。
4)  当强制开启全数据库缓冲模式时,被定义为非缓冲的LOB数据也会被缓冲,在常规模式时,这些LOB数据不会被缓冲。
5)  当使用多宿主库选项时,强制开启全数据库缓冲模式会多CDB和所有PDB起作用。
6)  如需恢复控制文件,应先检查全数据库缓冲模式是否开启。
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8484829/viewspace-2120390/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
大学毕业至今,一直深耕于数据库领域20余载,擅长数据库优化、数据库分析诊断、数据库规划设计等,曾任职多家知名大型企业,多次独立承担并成功上线关键大型项目。

注册时间:2008-06-27

  • 博文量
    365
  • 访问量
    725249