你好,游客 登录 注册 搜索
背景:
阅读新闻

Oracle调整SGA大小的过程

[日期:2017-07-24] 来源:Linux社区  作者:burningsky [字体: ]

前提:在VM中调整虚拟机的内存的大小以提高Oracle的连接与响应速度。然后调整Oracle的SGA大小。

Step1:

判断虚拟机内存是否调整成功。cat /proc/meminfo | grep MemTotal  显示3G,调整成功。

Step2:

管理者身份连接oracle。 Sqlplus / as sysdba;

查询当前SGA容量:    show sga; 显示 800M

Step3:

调整SGA大小为1.5G。alter system set sga_max_size = 1500M scope = spfile;

Step4:

重启oracle,查看是否成功。

  1. shut immediate ;
  2. startup:
    报错:ORA-00844: Parameter not taking MEMORY_TARGET into account
               ORA-00851: SGA_MAX_SIZE 1577058304 cannot be set to more than MEMORY_TARGET 838860800.
    原因:ORA-00844:没有考虑设置MEMORY_TARGET参数。
               ORA_00851:SGA_MAX_SIZE值不可大于MEMORY_TARGET值。
    解决:根据上面的提示,应该是调整SGA值是没有同时调整MERMORY_TARGET引发的。根据提示,进行memory_target值的修改,设置值与sga_max_size相同。

  3. 调整memory_target:  alter system set memory_target = 1500M scope=spfile
    报错:ERROR at line 1:
              ORA-01034: ORACLE not available
              Process ID: 0
              Session ID: 24 Serial number: 270
    解决:目前数据库为关闭状态,不能进行参数的修改。需手动进行参数文件的修改。

  4. 根据pfile生成spfile.文件,对spfile_SID.ora进行修改。
    create spfile from pfile;
    报错:ERROR at line 1:
    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file
    '/data/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'
    原因:没有找到实例的参数文件,所以首先我们要生成需要的initorcl.ora文件

a)      使用命令找到参数文件所在路径:find /data -name pfile
         进入pfile文件夹,发现init.ora.xxx字样文件,将其复制到$ORACLE_HOME/dbs下

b)      cp init.ora.4262015171932 $ORACLE_HOME/dbs
         mv init.ora.4262015171932 initorcl.ora

重新执行:create spfile from pfile; 成功

 5.修改数据库参数文件中的memory_target值:

a)      数据库进入nomount状态

alter system set memory_target = 1500M scope=spfile;
alter system set sga_max_size = 1500M scope = spfile;

b)      数据库关闭 shut immediate;

c)      数据库重启到nomount状态。Startup nomount;
        报错: ORA-00845: MEMORY_TARGET not supported on this system。
        原因:MEMORY_MAX_TARGET的设置不能超过/dev/shm的大小,在oracle11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,         如果/dev/shm比MEMORY_TARGET小就会报错。linux安装完后默认/dev/shm为物理内存的一半
        因为我们指定了sga_max_size的大小,所以需要修改/dev/shm的大小来解决问题。
       将dev/shm调整为2G:
       mount -o size=2G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

                     调整后用df –h查询 /dev/shm修改为2G。

d)      重启数据库到nomount下成功。

e)      重启数据库至Open状态,成功。

至此,调整SGA大小成功。

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-07/145854.htm

linux
相关资讯       Oracle调整SGA大小  Oracle调整SGA 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款