阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle调整SGA大小的过程

136次阅读
没有评论

共计 2078 个字符,预计需要花费 6 分钟才能阅读完成。

前提:在 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

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2078字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中