一,设置SGA的原则:
有时候会碰到在配置SGA中出现了问题,由于分配的内存过多,数据库启不起来了。
二,修改SGA的大小:
1.sga_target不能大于sga_max_size,可以设置为相等。
2.SGA加上PGA等其他进程占用的内存总数必须小于操作系统的物理内存。
做如下操作前,必须备份dbs目录下的所有文件。
方法一:直接SQL命令行修改:
SQL>alter system set sga_target=1024m scope=spfile;
SQL>alter system set sga_max_size=1024m scope=spfile;
(如果spfile文件不存在,需先创建createspfile from pfile;)
alter system set sga_target=12g scope=spfile;
alter system set sga_max_size=12g scope=spfile;
然后
SQL>shutdown immediate
SQL>startup
SQL>show sga; 即可看到SGA的大小已经被修改
方法二:通过EM修改:
以SYS登陆到EM:管理->(数据库配置)所有初始化参数—>SPFile->
在此界面可以直接定义sga_target与sga_max_size
然后重启数据库即可!
文章出处:http://www.diybl.com/course/7_databases/oracle/Oracleshl/200866/123114.html
cmd下部分操作:,oracle10.2.0g
SQL>conn sys/rezin as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
TotalSystem Global Area 1073741824 bytes
FixedSize 1253124 bytes
VariableSize 696254716 bytes
Database Buffers 369098752 bytes
RedoBuffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> show sga;
TotalSystem Global Area 1073741824 bytes ---原来大小
FixedSize 1253124 bytes
VariableSize 696254716 bytes
Database Buffers 369098752 bytes
RedoBuffers 7135232 bytes
SQL> alter system set sga_target=300m scope=spfile;
系统已更改。
SQL>alter system set sga_max_size=280m scope=spfile;
系统已更改。
SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
TotalSystem Global Area 314572800 bytes ---修改后的大小
FixedSize 1248720 bytes
VariableSize 96469552 bytes
Database Buffers 209715200 bytes
RedoBuffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL>