1、SGA 主要由三部分组成 :共享池(share pool),数据缓冲区(datebase buffer cache ) ,回滚日志缓冲区
(redo log buffer cache).
由上面可得主要涉及四个参数的修改
sga_max_size :sga 最大值
db_cache_size:数据库缓冲区
shared_pool_size:共享池值
log_buffer:回滚日志值
2.1 SGA 值 约168M
SQL> show sga;
Fixed Size 454404 bytes
Variable Size 142606336 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
2.2 sga 最大值 约168M
SQL> show parameters sga_max_size
------------------------------------ ----------------------
VALUE
------------------------------
sga_max_size big integer
168894212
2.3 数据库缓冲区值 约25M
SQL> show parameter db_cache_size;
------------------------------------ ----------------------
VALUE
------------------------------
db_cache_size big integer
25165824
2.4 共享池 约58M
SQL> show parameter SHARED_POOL_SIZE;
------------------------------------ ----------------------
VALUE
------------------------------
shared_pool_size big integer
58720256
2.5 日志 约524K
------------------------------------ ----------------------
VALUE
------------------------------
log_buffer integer
524288
3、 由以上可知,内存没有调到最优,更改参数
假定Oracle是 32 bit ,服务器RAM大于2G ,注意你的PGA的情况,,则建议
如果服务器RAM如果2G
shared_pool_size = 150M ,data buffer = 1.2G
3.1 alter system set SGA_MAX_SIZE= 1600M scope=spfile;
3.2 SQL>ALTER SYSTEM SET DB_CACHE_SIZE=1200M
3.3 SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=150M;
4、 关于OS 64 32 Oracle 32 64 位概念
(也可以安装32位 weblogic) ,但是32 os 不能安装64位 Oracle
参考文档2 关于 关于SGA设置的一点总结 很好的关于SGA 的设置
参考文档5 显示信息
1、9I 安装的时候默认值为
共享池: 48MB
缓冲区高速缓存:24MB
JAVA池:32M
大型池:8
PGA:24
合计为176MB
2\9I 安装的时候调整为100%
用于ORACLE的物理内存为(2047MB)的百分比
当百分率为100的时候
共享池: 333MB
缓冲区高速缓存:1000MB
JAVA池:32M
大型池:197
PGA:444
合计为2046MB
3、自定义分配
IDEACENTER K330 物理内存 2.99GB
3.1 根据分配原则
SGA不超过1.7G,PGA+SGA不超过2G
shared_pool_size 200M--300M
log_buffer : 128K ---- 1M
large_pool_size 10M --- 50M
java_pool_size 30M
data buffer ,在做了前面的设置后,凡可以提供给oracle的内存
PGA : =(total_mem * 80%) * 20% (这里的total_mem为机器的内存 total_mem * 80%=分配给ORACLE的内存=2046) 计算所得409
3.2 实际分配
3.2.1 SGA
shared_pool_size 分配250
large_pool_size 分配 50
java_pool_size 分配 32
data buffer 分配 1200 mb
3.2.2
PGA : 分配444
以上合计为 2016
PGA 内存分配的文章 http://blog.csdn.net/zyxvic1981/article/details/7352869 有关于PGA的计算
数据库已经关闭。
已经卸载数据库。
Oracle 例程已经关闭。
SQL> alter system set large_pool_size=80m;
alter system set large_pool_size=80m
*
第 1 行出现错误:
ORA-01034: Oracle not available
进程 ID: 2156
会话 ID: 14 序列号: 39
SQL> startup
Oracle 例程已经启动。
Fixed Size 1377108 bytes
Variable Size 671091884 bytes
Database Buffers 780140544 bytes
Redo Buffers 12107776 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter system set large_pool_size=80m;
数据库已经关闭。
已经卸载数据库。
Oracle 例程已经关闭。
SQL> startup
Oracle 例程已经启动。
Fixed Size 1377108 bytes
Variable Size 746589356 bytes
Database Buffers 704643072 bytes
Redo Buffers 12107776 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter pga;
------------------------------------ ----------------------
VALUE
------------------------------
pga_aggregate_target big integer
300M
SQL> show parameter sga;
------------------------------------ ----------------------
VALUE
------------------------------
lock_sga boolean
FALSE
pre_page_sga boolean
FALSE
sga_max_size big integer
1400M
sga_target big integer
1400M
Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围
++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改
++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了
++ scope=both 内存和spfile都更改
++ 不指定scope参数,等同于scope=both.
# Generated by Oracle configuration tools.
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(Oracle_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:e:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = prod)
(Oracle_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = prod)
)
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
问题 解决 :加入这一段
(GLOBAL_DBNAME = prod)
(Oracle_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = prod)
)