Oracle如何调整SGA的大小
如何修改oracle中SGA大小
注意:备机也要修改
2, 修改oracle中SGA大小
1, stop oracle monitor here
2, change SGA size
su - oracle
setenv ORACLE_SID sysdb
sqlplus / as sysdba
show parameter sga;
show parameter sga;
sga;
3, start oracle monitor here
说明:修改后最好做一次应用的双机切换测试,检查双机上oracle是否启动正常。
create pfile='/opt/oracle/initsysbackup.ora' from spfile;
alter system set sga_max_size=8G scope=spfile;
alter system set sga_target=8G scope=spfile;
kernel.shmmax = 10737418240 // 操作系统中单个共享内存的最大长度,这个参数要比SGA的大小要大,否则oracle将会使用几个小的共享内存,这会影响oracle的性能
kernel.shmmni = 4096 // 操作系统中允许的共享内存段的个数,这个值一般足够大,不需要修改
以及当前系统中正在使用的配置(有些时候系统正在使用的值和配置文件/etc/sysctl.conf中的不一致,尤其要注意):
sysctl -a |egrep "shmall|shmmax|shmmni"
修改系统共享内存参数:
按照上面配置修改文件/etc/sysctl.conf
设置SGA的原则以及修改它的大小
设置SGA的原则以及修改它的大小一,设置SGA的原则:有时候会碰到在配置SGA中出现了问题,由于分配的内存过多,数据库启不起来了。
而且还要注意,在WINDOWS平台下,32位的操作系统,SGA 分配不能超过1.8G,64位的扛得住一些,所以我的数据库服务器换成64位的WINDOWS2003了。
内存结构=SGA(系统全局区)+PGA(程序全局区)SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。
它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写我们重点就是设置SGA,理论上SGA可占OS系统物理内存的1/2——1/3原则:SGA+PGA+OS使用内存 <总物理RAMSGA=((db_block_buffers*blocksize)+(shared_pool_size+larg e_pool_size+java_pool_size+log_buffers)+1MB1、SGA系统全局区.(包括以下五个区)A、数据缓冲区:(db_block_buffers)存储由磁盘数据文件读入的数据。
大小: db_block_buffers*db_block_sizeOracle9i设置数据缓冲区为:Db_cache_size原则:SGA中主要设置对象,一般为可用内存40%。
B、共享池:(shared_pool_size):数据字典,sql缓冲,pl/sql语法分析.加大可提速度。
原则:SGA中主要设置对象,一般为可用内存10%C、日志缓冲区:(log_buffer)存储数据库的修改信息.原则:128K ---- 1M 之间,不应该太大D 、JAVA池(Java_pool_size)主要用于JAVA语言的开发.原则:若不使用java,原则上不能小于20M,给30M通常就够了E、大池(Large_pool_size)如果不设置MTS,主要用于数据库备份恢复管理器RMAN。
Oracle数据库内存优化操作说明
Oracle数据库内存优化操作说明Oracle数据库内存优化是提高数据库性能的重要手段之一。
通过设置合理的内存参数,可以有效地削减IO操作,提高数据访问速度。
本文将介绍一些常见的Oracle数据库内存优化操作。
一、调整PGA参数PGA(Program Global Area)是每个数据库会话独有的内存区域,用于存储排序、哈希操作等临时数据。
调整PGA参数可以提高排序和连接操作的性能。
1. 设置PGA_AGGREGATE_TARGET参数该参数把握PGA内存的总量,一般建议设置为SGA的1/3到1/2。
可以通过以下命令设置:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM;2. 调整SORT_AREA_SIZE参数该参数把握每个排序操作使用的PGA内存大小,一般建议设置为100MB到200MB。
可以通过以下命令设置:ALTER SESSION SET SORT_AREA_SIZE = XXXM;3. 调整HASH_AREA_SIZE参数第1页/共4页该参数把握每个哈希操作使用的PGA内存大小,一般建议设置为SORT_AREA_SIZE的1/2到1倍。
可以通过以下命令设置:ALTER SESSION SET HASH_AREA_SIZE = XXXM;二、调整SGA参数SGA(System Global Area)是Oracle数据库的全局共享内存区域,用于存储缓存数据、SQL执行方案等。
调整SGA参数可以提高数据访问的速度。
1. 调整SHARED_POOL_SIZE参数该参数把握缓存SQL语句的内存大小,一般建议设置为SGA的1/4到1/3。
可以通过以下命令设置:ALTER SYSTEM SET SHARED_POOL_SIZE=XXXM;2. 调整DB_CACHE_SIZE参数该参数把握数据库缓冲区的内存大小,一般建议设置为SGA的1/2到2/3。
可以通过以下命令设置:ALTER SYSTEM SET DB_CACHE_SIZE=XXXM;3. 调整LOG_BUFFER参数该参数把握数据库日志缓冲区的内存大小,一般建议设置为10MB到100MB。
Oracle数据库内存优化操作说明
千里之行,始于足下。
Oracle数据库内存优化操作说明Oracle数据库的内存优化操作主要包括以下几个方面:1. 调整SGA和PGA的大小:- SGA(System Global Area)是Oracle数据库实例使用的内存区域,包括数据库缓存、共享池等。
可以通过修改SGA_TARGET和SGA_MAX_SIZE等参数来调整SGA的大小。
- PGA(Program Global Area)是每个进程独自使用的内存区域,包括排序区、hash区等。
可以通过修改PGA_AGGREGATE_TARGET参数来调整PGA的大小。
2. 合理配置各个内存区域的大小:- 根据具体的数据库负载情况,可以调整SGA组件的大小,如缓冲区大小、共享池大小等,以提高数据库的性能。
- 合理配置PGA区域的大小,可以减少排序操作的磁盘访问,提高查询效率。
3. 使用自动内存管理 AMM(Automatic Memory Management):- AMM是Oracle 11g及以上版本中提供的内存管理特性,可以自动分配SGA和PGA的大小。
可以通过设置MEMORY_TARGET参数来启用AMM。
4. 使用自动PGA管理:- Oracle 12c及以上版本中提供了自动PGA管理特性,可以根据需要自动调整PGA的大小。
可以通过设置PGA_AGGREGATE_TARGET参数来启用自动PGA管理。
5. 合理配置数据库连接池:第1页/共2页锲而不舍,金石可镂。
- 如果数据库中有大量的并发连接,可以考虑启用连接池来管理连接,减少连接的开销,提高数据库的并发性能。
6. 合理配置数据库缓存:- Oracle数据库中有多个缓存区域,如数据缓存、共享池等,可以根据具体的负载情况,调整缓存的大小,以提高查询性能。
需要注意的是,内存优化操作可能会引起数据库的性能变化,因此在进行内存优化之前,最好先进行充分的测试和评估,以确保优化操作是必要且有效的。
oracle内存pga+sga设置方法
11g 中新增MEMORY_MAX_TARGET 参数,此参数一出现就如在10g 中第一次出现SGA_MAX_SIZE 参数一样给人以耳目一新的感觉。
memory_max_target 是设定Oracle能占OS多大的内存空间,一个是Oracle SGA 区最大能占多大内存空间。
无疑在11g Oracle 又向自动管理内存更进一步。
10g 的sga_max_size 是动态分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,只是根据Oracle 运行状况来重新分配SGA 各内存块的大小。
PGA在10g 中需要单独设定.11g MEMORY_MAX_TARGET 参数包含两部分内存,一个 System global area (SGA),另一个 system global area(PGA)。
很显然在11g 中可已经将PGA 和SGA 一起动态管理了。
下面来看看在11g 中Memory_target 设置和不设置对SGA/PGA 的影响:A:如果Memory_target 设置为非0 值(下面有四种情况来对SGA 和PGA 的大小进行分配)1:sga_target 和 pga_aggregate_target 已经设置大小如果Oracle 中已经设置了参数sga_target 和pga_aggregate_target,则这两个参数将各自被分配为最小值最为它们的目标值。
Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致。
2:sga_target 设置大小, pga_aggregate_target 没有设置大小那么pga_aggregate_target初始化值=memory_target-sga_target 3:sga_target 没有设置大小, pga_aggregate_target 设置大小那么sga_target 初始化值=memory_target-pga_aggregate_target 4:sga_target 和 pga_aggregate_target 都没有设置大小 Oracle 11g 中对这种sga_target 和pga_aggregate_target 都没有设定大小的情况下,Oracle将对这两个值没有最小值和默认值。
Oracle数据库参数优化
千里之行,始于足下。
Oracle数据库参数优化Oracle数据库参数优化是指通过调整数据库的配置参数,提高数据库的性能和稳定性。
下面是一些常见的Oracle数据库参数优化技巧:1. SGA参数优化:- 调整sga_target参数以控制SGA的大小。
SGA包括数据库缓冲区、共享池、重做日志缓冲区等,适当调整SGA的大小可以减少IO操作,提高数据库性能。
- 调整db_cache_size参数以增大数据库缓冲区的大小,提高数据块的访问速度。
- 调整shared_pool_size参数以增大共享池的大小,提高SQL语句的解析和执行效率。
2. PGA参数优化:- 调整pga_aggregate_target参数以控制PGA的大小。
PGA是用于处理SQL查询和排序的内存区域,适当调整PGA的大小可以减少磁盘IO操作,提高查询和排序的性能。
3. Redo日志参数优化:- 调整log_buffer参数以增大重做日志缓冲区的大小,减少频繁的重做日志刷新操作,提高数据库的写入性能。
- 调整log_checkpoint_timeout参数以控制重做日志刷新的频率,避免过于频繁的刷新。
4. 并行处理参数优化:- 调整parallel_max_servers参数以增大并行处理的资源限制,提高并行查询和并行DML操作的性能。
第1页/共2页锲而不舍,金石可镂。
- 调整parallel_min_servers参数以设置最小的并行处理资源数,避免并行操作的启动延迟。
5. SQL优化:- 使用合适的索引和优化的SQL语句,优化查询的执行计划。
- 使用绑定变量而不是直接将参数传递到SQL语句中,避免SQL重解析,提高性能。
6. 服务器参数优化:- 调整processes参数以增加数据库的并发连接数。
- 调整sessions参数以控制数据库的最大会话数。
- 调整open_cursors参数以增大打开游标的数量,避免游标溢出。
以上是一些常见的Oracle数据库参数优化技巧,但具体的优化策略需要根据实际情况进行调整,可以参考Oracle官方文档和专业的DBA建议。
oracle 12c 参数
oracle 12c 参数Oracle 12c参数Oracle是一款非常强大的数据库管理软件,可以为企业提供高效稳定的数据管理支持。
Oracle数据库的运行需要众多参数的配合,针对每个参数的设置可以使得Oracle 的运行更加稳定、高效。
在Oracle 12c中,有大量的数据库参数需要进行设置,本文将介绍一些关键的参数设置方法。
1、SGA参数设置SGA是Oracle中非常重要的内存区域,被用于缓存数据和元数据,减少磁盘I/O。
通过调整SGA大小可以实现提高访问性能的目的。
可以使用下面的命令来查询SGA参数的值:SQL> show parameter sga可以通过编辑初始化文件ORACLE_HOME/dbs/initoradb.ora或使用ALTER SYSTEM语句在SGA参数或组件级别上设置SGA参数。
设置SGA最重要的是备份与恢复,为此可以将SGA的大小保存在PFILE 或SPFILE中,以便在备份与还原过程中使用。
SGA参数的设置包括:shared_pool_size:由SQL语句共享池的大小决定。
在高流量情况下,共享池的尺寸应适当增加以提高查询的效率。
db_cache_size:用于缓存数据块和索引块的缓冲池大小。
它决定了数据块的内存使用量。
large_pool_size:在执行如连接服务器,排序操作等任务时,处理多个连接的顶层堆栈使用的内存。
java_pool_size:用于Java等对象的内存池大小。
2、PGA参数设置Oracle数据库中的PGA(Process Global Area)是实现Oracle“进程内内存”概念的关键,它由每个进程的私有内存组成。
PGA存储了一个进程的全局变量信息,设计合理的PGA大小,可以使得Oracle各个进程的访问效率更高。
可以使用下面的命令来查询PGA参数的值:SQL> show parameter pga可以通过编辑初始化文件ORACLE_HOME/dbs/initoradb.ora或者使用ALTER SESSION 语句在针对性的设置PGA参数。
Oracle性能调优——基本参数调整
Oracle性能调整(一)——基本参数调整一、操作系统参数交换区是Oracle的一项基本的要求。
可以根据Oracle的发行要求来确定。
一般交换区大小的要求是该服务器内存的2倍至4倍之间,建议是内存的4倍Note2:oracle 文件设置当服务器平台已完成操作系统的安装后,就应该开始认真的考虑下面的问题:A、是否采用裸设备实际应用的生产系统基本都是采用裸设备,使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。
B、安装点的考虑Oracle的安装点就是指数据文件、日志文件和控制文件的安置路径,为了使系统在以后运行性能达到优化,建议将数据文件、日志文件和控制文件的安置路径与数据库系统存放在不同的路径上。
最好将数据文件、日志文件和控制文件分别存放在不同的路径。
C、SYSTEM表空间对应数据文件在自定义安装会话中,建议你根据需要设置system表空间所对应的数据文件的大小。
一般要设置比默认值的2倍。
该数据文件的大小最好是在300MB至500MB间。
因为数据文件太小不利于系统的运行。
D、临时表空间对应的数据文件临时表空间对应的数据文件可以根据将来系统存放的应用的处理情况来定。
比如系统将来可能要经常进程排序处理,则需要设置较大的临时表空间,也可能需要再建立新的临时表空间。
这里建议临时表空间的数据文件在100MB至300MB左右。
E、回滚段表空间对应的数据文件回滚表空间都是系统管理,初始值也是根据系统事务量预估计的值,实际到运行阶段如果系统常出现ORA-01555错误的时候,可能就需要增加回滚表空间的大小。
F、日志文件的大小日志文件的大小对于Oracle系统的运行也是相当重要。
默认值是太小。
实际根据事务繁忙预估计日志大小,没有固定的具体值范围,建议重做日志切换时间不能过短也不能过长,一般在20-40分钟左右。
该参数可以在系统运行期间根据数据库系统日志切换时间重新调整,控制文件的大小。
G、数据库块的大小如果你的应用系统是OLTP的话,可以采用较小的数据库块。
oracle参数
oracle参数
Oracle参数是指Oracle数据库中的各种配置设置,可以通过修改这些参数来优化数据库的性能和功能。
Oracle数据库中有大量的参数,可以用来调整数据库的各种方面,例如内存、网络、并发、日志等等。
以下是一些常见的Oracle参数:
1. DB_CACHE_SIZE:指定SGA中用于数据块缓存的大小。
适当地设置该参数可以提高查询性能。
2. SHARED_POOL_SIZE:指定SGA中用于共享SQL和PL/SQL语句的内存大小。
适当地设置该参数可以减少SQL执行时间。
3. PROCEDURE_CACHE_SIZE:指定SGA中用于存储存储过程或函数的内存大小。
适当地设置该参数可以加快存储过程或函数的执行速度。
4. PGA_AGGREGATE_TARGET:指定PGA的内存大小。
PGA用于存储每个用户会话的私有信息,例如排序缓存、哈希表、连接信息等等。
5. LOG_BUFFER:指定重做日志缓冲区的大小。
适当地设置该参数可以提高重做日志的写入速度。
6. MAX_CONNECTIONS:指定最大并发连接数。
适当地设置该参数可以保证系统的稳定性和可扩展性。
7. SESSIONS_PER_USER:指定每个用户可以打开的最大会话数。
适当地设置该参数可以控制用户的资源使用,并防止资源竞争。
以上是一些常见的Oracle参数,但实际上还有很多其他参数可以用于优化数据库性能和功能。
在设置Oracle参数时,需要考虑到系统资源、工作负载、用户需求等方面的因素,并进行适当的测试和调整。
oracle 修改SGA过大ORA-27100
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1000M
SQL> startup force
修改成功,数据库能正常访问!
SGA_TARGET:
在10g之前,SGA的各个内存区的大小都需要通过各自的参数指定,并且都无法超过参数指定大小的值,尽管他们之和可能并没有达到SGA的最大限制。此外,一旦分配后,各个区的内存只能给本区使用,相互之间是不能共享的。拿SGA中两个最重要的内存区Buffer Cache和Shared Pool来说,它们两个对实例的性能影响最大,但是就有这样的矛盾存在:在内存资源有限的情况下,某些时候数据被cache的需求非常大,为了提高 buffer hit,就需要增加Buffer Cache,但由于SGA有限,只能从其他区“抢”过来——如缩小Shared Pool,增加Buffer Cache;而有时又有大块的PLSQL代码被解析驻入内存中,导致Shared Pool不足,甚至出现4031错误,又需要扩大Shared Pool,这时可能又需要人为干预,从Buffer Cache中将内存夺回来。
init.ora.118201118470文件进行编译启动,在重新打来sqlplus进入实例后
Java代码
SQL> CREATE SPFILE FROM PFILE=\'E:\\ora9i\\admin\\eygle\\pfile\\init.ora\';
创建成功
SQL> CREATE SPFILE FROM PFILE=\'E:\\ora9i\\admin\\eygle\\pfile\\init.ora\';
oracle-sga内部参数调整详解
SQL> startup
ORACLE instance started.
Total System Global Area 4294967296 bytes
Fixed Size 2026296 bytes
Variable Size 805307592 bytes
一、Oracle如何调整SGA的大小Oracle
10G开始支持使用SGA_TARGET参数进行SGA自动管理,Oracle可自动调节共享池和数据缓冲池的大小,以下是OS:RH AS4 U7 64bit环境 Oracle 10.2.0.1版本的一个测试,先查看现在已有的SGA设置:
SQL> show parameter sga;
NAME TYPE VALUE
----------- ------------------------------
lock_sga boolean FALSE
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
[oracle@erpdevdb dbs]$ vi initerpstudydb.ora
SPFILE='+DGSTUDY/erpstudydb/spfileerpstudydb.ora'
动态调整job_queue_processes=100,資料庫重启后确定是否以更改
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100;
调整processes=200參數值,存入spfile,重启资料库后show parameter查看更改后的值
修改数据库的oracle的sga和pga的值
修改数据库的ORACLE的SGA和PGA的值/**时间:2009-04-07 Monday*环境:Windows 2003 Oracle10g10.2.0.1.0*标题:修改数据库的ORACLE的SGA和PGA的值*/1、在用客户端连接:用plsql连接数据库时出现“ORA-12518:TNS:监听程序无法分发客户机连接”2、查看了alert_SID.log日志:Doing block recovery for file 3 block 35992Sat Apr 04 07:35:14 2009Errors in filee:\oracle\product\10.2.0\admin\xboms\bdump\xboms_pmon_3920.trc:ORA-04030: 在尝试分配8389132 字节(pga heap,redo read buffer) 时进程内存不足Sat Apr 04 07:35:23 2009Process startup failed, error stack:Sat Apr 04 07:35:23 2009Errors in filee:\oracle\product\10.2.0\admin\xboms\bdump\xboms_psp0_3408.trc:ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997ORA-27301: OS 故障消息: 重叠I/O 操作在进行中。
ORA-27302: 错误发生在: skgpspawn3、$ORACLE_HOME/network/log/listener.log日志:03-4月-2009 22:10:40 开始就报下面的错误:04-4月-2009 07:36:19 * ping * 004-4月-2009 07:36:19 *(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER= SYSTEM))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=erp1)(PORT=1568)))(VERSION=16986956 8)) * status * 004-4月-2009 07:36:28 *oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe)(HOST=ERP1)(U SER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.142.80.40)(PORT=2287)) * establish * XBOMS* 12518TNS-12518: TNS: 监听程序无法分发客户机连接TNS-12560: TNS: 协议适配器错误TNS-00530: 协议适配器错误32-bit Windows Error: 233: Unknown error对数据库做个AWR(自动负载资料库)报告和ADDM(自动数据库诊断监听)报告,addm要求增加数据库的SGA 服务器的CPU是8个2.00GHz,8GB内存。
SGA建议值和修改
ORACLE数据库SGA分配原则以及设置方法----HRP项目研发中心(董珮)一、SGA分配原则以及设置方法在调整SGA前,先看下服务器操作系统是32位还是64位的,如果是32位的,则SGA 最大不能超过1.7G,如果是64位的,则不能超过4G。
1.SGA、PGA的分配原则OLTP:SGA=系统内存*0.56,PGA=SGA*(0.1~0.2)OLAP:SGA=系统内存*0.48,PGA=SGA*(0.45~0.65)8G的话SGA设置4G就差不多了...PGA设置为1G差不多了2.设置方法(修改前请备份SPFILEORCL.ORA文件,该文件路径为:10g oracle为%%\oracle\product\10.2.0\db_1\dbs\SPFILE KYEEYXT.ORA 11g oracle为%%\app\Administrator\product\11.2.0\dbhome_1\database \SPFILE KYEEYXT.ORA)SQL> show parameter sga;SQL> alter system set sga_max_size=4096M scope=spfile;System altered.SQL> alter system set sga_target=4096M scope=spfile;System altered.3.重启数据库更改设置生效SQL>shutdown immediate; --停止数据库服务Database closed.Database dismounted.ORACLE instance shut down.SQL> startup --启动数据库服务ORACLE instance started.Total System Global Area 4294967296 bytesFixed Size 2026296 bytesVariable Size 805307592 bytesDatabase Buffers 3472883712 bytesRedo Buffers 14749696 bytesDatabase mounted.Database opened.SQL> show parameter sga; --查看SGA设置是否生效NAME TYPE VALUE----------- ------------------------------lock_sga boolean FALSEpre_page_sga boolean FALSE sga_max_size big integer 4Gsga_target big integer 4G二、注意事项SGA调整过大的时候数据库将会启动不起来,以下为当不小心调整的SGA超过了系统内存的情况下的处理办法:SQL> show parameter pfile找到SPFILE KYEEYXT.ORA的文件%ORACLE_HOME%\DATABASE\SPFILE KYEEYXT.ORA修改该文件中sga_max_size和sga_target的值为正常值就可以了,记得一定要在修改SGA 前备份SPFILE KYEEYXT.ORA文件!!!!切记!!!注:文中红色字体均为可自定义部分,需要根据现场实际情况来进行修改。
oracle 19c参数
oracle 19c参数Oracle 19c参数设置详解Oracle数据库是一款业界著名的关系型数据库管理系统,其版本不断更新迭代,最新版本为Oracle 19c。
在数据库的运行过程中,参数的设置对于性能和稳定性起着至关重要的作用。
本文将详细介绍Oracle 19c的一些重要参数及其设置方法,帮助读者更好地优化数据库的性能和稳定性。
1. SGA_TARGETSGA_TARGET参数决定了系统全局区(SGA)的大小,SGA是Oracle数据库在内存中的关键组件,包括缓冲区高速缓存、共享池和重做日志缓冲区等。
通过合理设置SGA_TARGET参数,可以提高数据库的性能。
可以使用以下语句设置SGA_TARGET参数的值:ALTER SYSTEM SET SGA_TARGET=XXXM SCOPE=SPFILE;2. PGA_AGGREGATE_TARGETPGA_AGGREGATE_TARGET参数用于控制PGA(程序全局区)的大小,PGA用于存储用户进程的私有数据,如排序操作和HASH JOIN的中间结果。
通过适当设置PGA_AGGREGATE_TARGET参数,可以优化排序和连接操作的性能。
设置PGA_AGGREGATE_TARGET参数的方法如下:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM SCOPE=SPFILE;3. PROCESSESPROCESSES参数决定了数据库同时能够处理的最大用户连接数。
在高并发环境下,需要增加PROCESSES参数的值,以支持更多的用户连接。
可以使用以下语句设置PROCESSES参数的值:ALTER SYSTEM SET PROCESSES=XXX SCOPE=SPFILE;4. SESSIONSSESSIONS参数用于限制数据库同时打开的会话数,每个用户连接都会占用一个会话。
在高并发环境下,需要增加SESSIONS参数的值,以支持更多的用户同时访问。
oracle10g_参数调整(processes和sga)
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
SQL> alter system set sga_target = 700m;
SQL> commit;
Commit complete
完成所有操作后,完成对oracle数据库sga的调整
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
sga_max_size big integer 164M
sga_target big integer 0
SQL> show parameter statistics_level;
NAME TYPE VALUE
查看你这一行数据
processes integer 500
即表明数据库的连接数被成功修改为500
2.调整oracle数据库的sga(相关参数的设置与服务器的物理内存有关,下面参数适用内存为2G的服务器,如果内存为其他值的请与开发这边联系,确定具体的参数值)
1.oracle连接数调整
oracle连接数默认为150,通过一下设置把oracle的连接数调整到500
oracle 11g sga pga的设置原则 和方法
oracle 11g sga pga的设置原则和方法Oracle 11g中SGA(System Global Area)和PGA(Program Global Area)的设置原则和方法如下:1. SGA的设置原则:- 根据系统的内存大小和应用的需求,确定SGA的大小。
SGA主要包括Buffer Cache、Shared Pool、Large Pool、Java Pool等组件,需要根据数据库的访问模式和数据量大小来进行调整。
- 尽量使用自动内存管理(Automatic Memory Management,AMM)来管理SGA的大小和组件分配,这样可以更加灵活地管理内存资源。
2. SGA的设置方法:- 手动设置SGA大小:可以通过修改初始化参数文件(initSID.ora)的SGA相关参数来手动设置SGA的大小,如SGA_TARGET、SGA_MAX_SIZE等。
需要重启数据库以使设置生效。
- 使用AMM:在使用AMM的情况下,只需要设置SGA_TARGET参数为所需的SGA大小,Oracle会自动根据系统的内存大小和负载情况进行动态调整。
3. PGA的设置原则:- 根据应用的并发性和查询的复杂度,以及数据库服务器的硬件资源(CPU、内存)等因素来确定PGA的大小。
- PGA主要包括Sort Area、Hash Area、Bitmap Merge Area等组件,需要根据查询的需求和并发性来决定这些组件的大小。
4. PGA的设置方法:- 使用PGA_AGGREGATE_TARGET参数:PGA_AGGREGATE_TARGET参数用于指定PGA的目标大小,Oracle会根据这个目标值和实际的应用需求来动态分配PGA的大小。
- 手动设置PGA大小:可以通过设置PGA相关的初始化参数(如SORT_AREA_SIZE、HASH_AREA_SIZE等)来手动控制PGA的大小,需要重启数据库以使设置生效。
如何在自动SGA管理模式下调节参数设置解读
如何在自动SGA管理模式下调节参数设置我们知道,在Oracle10g自动SGA管理模式下,SGA的相关参数不受手动控制。
可是有些时候我们需要调整一下参数,如db_keep_cache_size,可能会遇到内存不足的错误:SQL> alter system set db_keep_cache_size=3584M scope=both sid='*';alter system set db_keep_cache_size=3584M scope=both sid='*'*ERROR at line 1:ORA-02097: parameter cannot be modified because specified value is invalidORA-00384: Insufficient memory to grow cache在自动模式下,内存设置由双下划线参数控制,如__db_cache_size:SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'4 /Enter value for par: db_cache_sizeold 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'new 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%db_cache_size%'NAME VALUEDESCRIB------------------------------ -------------------- ------------------------------------------------------------__db_cache_size 482344960Actual size of DEFAULT buffer pool for standard block sizebuffersdb_cache_size 0Size of DEFAULT buffer pool for standard block size buffers注意当前的SGA_TARGET和SGA_MAX_SIZE的设置:SQL> show parameter sgaNAME TYP E VALUE------------------------------------ ----------- ------------------------------lock_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 680Msga_target big integer 680M我们可以先调节sga_target参数:SQL> alter system set sga_target=400M;System altered.SQL> select * from v$sgainfo;NAME BYTES RES------------------------------ ---------- ---Fixed SGA Size 1263848 NoRedo Buffers 7122944 NoBuffer Cache Size 205520896 YesShared Pool Size 197132288 YesLarge Pool Size 4194304 YesJava Pool Size 4194304 YesStreams Pool Size 0 YesGranule Size 4194304 NoMaximum SGA Size 713031680 NoStartup overhead in Shared Pool 41943040 NoFree SGA Memory Available 29360128011 rows selected.如果内存空闲,可以调节,那么可以看到参数的变化:SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'4 /Enter value for par: db_cache_sizeold 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'new 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%db_cache_size%'NAME VALUEDESCRIB------------------------------ -------------------- ------------------------------------------------------------__db_cache_size 188743680Actual size of DEFAULT buffer pool for standard block sizebuffersdb_cache_size 0Size of DEFAULT buffer pool for standard block size buffers再调高sga_target:SQL> alter system set sga_target=600M;System altered.SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'4 /Enter value for par: db_cacheold 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'new 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%db_cache%'NAME VALUEDESCRIB------------------------------ -------------------- ------------------------------------------------------------__db_cache_size 398458880Actual size of DEFAULT buffer pool for standard block sizebuffersdb_cache_size 0Size of DEFAULT buffer pool for standard block size buffers_db_cache_pre_warm TRUEBuffer Cache Pre-Warm Enabled : hidden parameter_db_cache_crx_check FALSEcheck for costly crx examination functions_db_cache_process_cr_pin_maxmaximum number of cr pins a process may havedb_cache_advice ONBuffer cache sizing advisory_db_cache_advice_sample_factor4 cache advisory sampling factor_db_cache_advice_batch_size 128cache advisory simulation batch size8 rows selected.观察SGA组件的变化:SQL> select * from v$sgainfo;NAME BYTES RES------------------------------ ---------- ---Fixed SGA Size 1263848 NoRedo Buffers 7122944 NoBuffer Cache Size 415236096 YesShared Pool Size 197132288 YesLarge Pool Size 4194304 YesJava Pool Size 4194304 Yes Streams Pool Size 0 Yes Granule Size 4194304 No Maximum SGA Size 713031680 NoStartup overhead in Shared Pool 41943040 NoFree SGA Memory Available 8388608011 rows selected.现在增加db_keep_cache_size,数据库会自动调整,去减少db_cache_size的内存分配:SQL> show parameter keepNAME TYP E VALUE------------------------------------ ----------- ------------------------------buffer_pool_keep stringcontrol_file_record_keep_time integer 7db_keep_cache_size big integer 16M SQL> alter system set db_keep_cache_size=200M;System altered.SQL> alter system set db_keep_cache_size=300M;System altered.SQL> show parameter sgaNAME TYP E VALUE------------------------------------ ----------- ------------------------------lock_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 680Msga_target big integer 600MSQL> SET linesize 120SQL> COL name for a30SQL> COL value for a20SQL> COL describ for a60SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ2 FROM SYS.x$ksppi x, SYS.x$ksppcv y3 WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'4 /Enter value for par: db_cache_sizeold 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'new 3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%cache_size%'NAME VALUEDESCRIB------------------------------ -------------------- ------------------------------------------------------------__db_cache_size 100663296Actual size of DEFAULT buffer pool for standard block sizebuffersdb_cache_size 0Size of DEFAULT buffer pool for standard block size buffers这种曲线调节,关键是释放了buffer cache的内存,这取决于系统的压力、buffer使用情况,在无人使用时较易成功。
oracle内存分配与调整
pga_aggregate_t (PGA ): 说明 : 指定连接到例程的所有服务器进程的目标 PGA
总内存。请在启用自动设置工作区之前将此参数设置 为一个正数。这部分内存不驻留在 SGA 中。数据库 将此参数值用作它所使用的目标 PGA 内存量。设置 此参数时, 要将 SGA 从可用于 Oracle 例程的系统内 存总量中减去。然后可将剩余内存量分配给 pga_aggregate_target。 值范围 : 整数(zhěngshù)加字母 K, M 或 G, 以将此限 值指定为千字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G 默认值 : "未指定", 表示完全禁用对工作区的自动优化。
我们期望该参数能大一些。但是该参数的增大,却也有负面的影响,因为需要
维护共享的结构,内存的增大也会使得SQL 的老化的代价更高,带来大量的 管理的开销,所有这些可能会导致CPU 的严重问题。在一个充分使用绑定变 量的比较大的系统shared_pool_size 的开销通常应该维持在300M 以内。除非
系统使用了大量的存储过程、函数、包,比如oracle erp 这样的应用,可能会
达到500M甚至更高。于是我们假定一个1G内存的系统,可能考虑设置该参数 为100M,2G 的系统考虑设置为150M,8G 的系统可以考虑设置为200—300M。
精品资料
• Data buffer
• 现在我们来谈数据缓冲区,在确定了 SGA 的大小(dàxiǎo)并分配完了前面部分的 内存后,其余的,都分配给这部分内存。通 常,在允许的情况下,我们都尝试使得这部 分内存更大。这部分内存的作用主要是缓存 DB BLOCK,减少甚至避免从磁盘上获取数 据,在8i中通常是由
oracle实例的内存(SGA和PGA)进行调整,优化数据库性能
total PGA allocated 52124672 bytes
-----这个值等于参数PGA_AGGREGATE_TARGET的值,如果此值为0,表示禁用了PGA自动管理。
aggregate PGA auto target 75220992 bytes
-----表示PGA还能提供多少内存给自动运行模式,通常这个值接近pga_aggregate_target-total pga inuse.
global memory bound 20971520 bytes
-----工作区执行的最大值,如果这个值小于பைடு நூலகம்M,马上增加PGA大小
total PGA inuse 30167040 bytes
PGA memory freed back to OS 0 bytes
total PGA used for auto workareas 8891392 bytes
maximum PGA used for auto workareas 22263808 bytes
total PGA used for manual workareas 0 bytes ---为0自动管理
maximum PGA used for manual workareas 0 bytes ---为0自动管理
over allocation count 0
select 1 from tab2 where a.col3 = b.col3
)
where ....
修改oracle10g数据库SGA和PGA大小
pre_page_sga boolean FALSE
sga_max_size big integer 436M
sga_target big integer 436M
和pgaoracle推荐oltponlinetransactionprocessing系统oracle占系统总内存的80然后再分配80给sga20给pga
修改oracle10G数据库SGA和PGA大小
修改SGA和PGA
oracle推荐OLTP(on-line Transaction Processing)系统oracle占系统总内存的80%,然后再分配80%给SGA,20%给PGA。也就是
2、修改sga_target
SQL>alter system set sga_target=436M;
3、修改sga_max_size
SQL> alter system set sga_max_size=436M scope=spfile;
4、重启数据库使其生效:
SQL>shutdown immediate;
##注意,重启前一定先完成上述两部操作,且sga_target不得大于sga_max_size,一般保持两者相等
。否则可能导致数据库无法启动。
SQL>startup
5、查看SGA是否生效:
SQL>show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- -----
SGA=system_total_memory*80%*80%
PGA=system_total_memory*80%*20%
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle如何调整SGA的大小
2009-08-27 16:07
Oracle 10G开始支持使用SGA_TARGET参数进行SGA自动管理,Oracle可自动调节共享池和数据缓冲池的大小,以下是OS:RH AS4 U7 64bit环境Oracle 10.2.0.1版本的一个测试,先查看现在已有的SGA设置:
SQL> show parameter sga;
NAME TYPE VALUE
----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 2G
sga_target big integer 2G
更改SGA大小:
SQL> alter system set sga_max_size=4096M scope=spfile;
System altered.
SQL> alter system set sga_target=4096M scope=spfile;
System altered.
如果是RAC环境,需要这样增加sid='*':
alter system set sga_target=20G scope=spfile sid='*';
重启使更改生效:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 4294967296 bytes
Fixed Size 2026296 bytes
Variable Size 805307592 bytes
Database Buffers 3472883712 bytes
Redo Buffers 14749696 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 4G
sga_target big integer 4G
如果更改spfile导致数据库无法启动,可以在pfile后填加附加参数,现在一般的pfile都是一行SPFILE='spfileSID.ora',在后边加参数会覆盖spfile的已有参数:
SQL> alter system set lock_sga=true scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
[oracle@erpdevdb dbs]$ vi initerpstudydb.ora
SPFILE='+DGSTUDY/erpstudydb/spfileerpstudydb.ora'
lock_sga=false
SQL> startup
ORACLE instance started.
启动后,可以重新设置scope=spfile的参数,再删除pfile里后加的信息即可。