sga_target大小调整

本文介绍如何在Oracle 10g中调整SGA参数。sga_target作为动态参数,可在一定条件下调整并立即生效。若调整后的值超过sga_max_size,则需将其设置为静态参数并通过重启实例来更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sga_target 是动态参数,可以调整后马上生效的
但是前提是当前分配的 sga_max_size 下必须能够承载分配的内存量
这个参数的值只有 0 和非零两种选择,非零时时和 sga_max_size 大小保持一致的
所以如果要吧 sga_target 改成大于 sga_max_size 的值就必须按照静态参数的改法,重新启动实例
重启后默认的 sga_max_size 会自动调整到和 sga_target 一样大小的

---------------------

版本
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release10.1.0.2.0 - Prod
PL/SQL Release 10.1.0.2.0 - Production
CORE    10.1.0.2.0      Production
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
NLSRTL Version 10.1.0.2.0 - Production

使用 spfile
SQL> show parameter spfile

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
spfile                               string                 F:\ORACLE\PRODUCT\10.1.0\DB_1\

调整前
SQL> set wrap off
SQL> set linesize 159
SQL> show parameter sga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga                             boolean                FALSE
pre_page_sga                         boolean                FALSE
sga_max_size                         big integer            300M
sga_target                           big integer            0

调整为小于 sga_max_size
SQL> alter system set sga_target=200m;

System altered.

SQL> show parameter sga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga                             boolean                FALSE
pre_page_sga                         boolean                FALSE
sga_max_size                         big integer            300M
sga_target                           big integer            300M

调整为大于 sga_max_size
SQL> alter system set sga_target=500m;
alter system set sga_target=500m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00823: Specified value of sga_target greater than sga_max_size


按照静态参数的方式调整
SQL> alter system set sga_target=500m scope=spfile;

System altered.

SQL> show parameter sga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga                             boolean                FALSE
pre_page_sga                         boolean                FALSE
sga_max_size                         big integer            300M
sga_target                           big integer            300M

重启验证
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  524288000 bytes
Fixed Size                   789672 bytes
Variable Size             145486680 bytes
Database Buffers          377487360 bytes
Redo Buffers                 524288 bytes
Database mounted.
Database opened.
SQL> show parameter sga

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga                             boolean                FALSE
pre_page_sga                         boolean                FALSE
sga_max_size                         big integer            500M

sga_target                           big integer            500M


转载:http://space.itpub.net/13177610/viewspace-671812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值