zoukankan      html  css  js  c++  java
  • Oracle 12cR1中性能优化新特性之全数据库缓冲模式

    通常情况下,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)  如需恢复控制文件,应先检查全数据库缓冲模式是否开启。

  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/lhdz_bj/p/9013777.html
Copyright © 2011-2022 走看看