实际工作中,Oracle中有两个很重要:Server Process 和 PGA。...PGA内存作用和构成 1、PGA作用 2、PGA构成 1)private SQL area 2)Session Memory (hold a session’s variables (logon information...) and other information related to the session.) 3)SQL Work Areas ?...from v$session where sid in (select distinct sid from v$mystat))); select spid,program,pga_max_mem,pga_alloc_mem...pm where p.PID=pm.PID and p.SPID in (select spid from v$process where addr in (select paddr from v$session
如无特殊说明数据库版本为11.2.0.4 ---- PGA_AGGREGATE_TARGET ?...参数类型:整型 语法:PGA_AGGREGATE_TARGET = integer [K | M | G] 默认值:10M或者20% SGA中的多者 通过ALTER SYSTEM修改 此为基本参数 取值范围...10M-4096G ---- 取值意义 该参数指定所有服务器进程总的PGA大小 将该参数设成非零值启用自动PGA管理,同时 WORKAREA_SIZE_POLICY该参数会设为auto 将该参数设成零时...指的是PGA中用于一些耗内存的操作(sort, group-by, hash-join, bitmap merge, and bitmap create) 自动PGA管理会自动调节该区域中各种子区域的大小...---- 参考连接 https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams193.htm#REFRN10165 ---- 下期参数
序列是数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。
' ||''''||s.sid||','||s.serial# || ''';' Oracle_level_kill, TO_CHAR (logon_time, 'dd/mm/yyyy hh24:mi...再解释下v$session中: SPINED状态的session问题,根据@dbsnake大拿的意思,这种状态是Oralce自身判断需要kill -9干掉OS进城后的状态,但该session还在v$session...至于上述"SPID不是OS进程的ID么"的问题,则是因为Oracle内部已经用kill -9干掉该进程了,那当然提示no such process等错误。...KILL状态的session,是使用alter system从Oracle级干掉的session,等待事务回滚。...说明: 处于SNIPED的session,例如用PLSQL登陆的超时了,被kill -9,此时不要重新登录,只需要执行一条SQL,它会报错,此时从另一个session看该SNIPED的session被清空了
PGA。...特性版本 从Oracle 12.2.0.1开始推出这个特性,但是仅在Exadata RAC环境中使用, 从Oracle 18c开始, Non-Exadata 的RAC环境也会使用这个特性。...和MGA是不同的内存区域,因此会从常规页分配PGA,通过/dev/shm领域分配MGA。...但是MGA同样会被统计到PGA的使用中去,所以可以通过v$pgastat确认MGA的大小。另外,PGA和MGA的合计大小也将受到PGA_AGGREGATE_LIMIT的限制。...Solaris https://docs.oracle.com/en/database/oracle/oracle-database/19/cwsol/configuring-additional-shared-memory-identifiers-limit.html
因为Oracle依靠会话游标来将目标SQL所涉及的数据从Buffer Cache的对应数据块读到PGA里,然后在PGA里做后续的排序、表连接等处理,最后将最终的处理结果返回给用户,所以,会话游标是当前会话解析和执行...Oracle会根据参数SESSION_CACHED_CURSORS的值来决定是否将已经用过的会话游标缓存在对应会话的PGA中。...联系1.会话游标是以哈希表的方式缓存在PGA中,意味着Oracle会通过相关的哈希运算来存储和访问在当前会话的PGA中的对应会话游标。...① 在Oracle 11gR2中,一个会话游标能够被缓存在PGA中的必要条件是该会话游标所对应的SQL解析和执行的次数要超过3次。...Oracle这么做的目的是为了避免那些执行次数很少的SQL所对应的会话游标也被缓存在PGA里,这些SQL很可能只执行一次而且不会重复执行,所以把这些执行次数很少的SQL所对应的会话游标缓存在PGA中是没有太大意义的
'alter system kill session ' || ''''||sid|| ',' || serial# ||''''|| 'immediate;' kill_session,..., FINAL_BLOCKING_SESSION, COUNT(*) FROM v$session WHERE upper(event) LIKE '%&cursor%'...immediate;' kill_session, status from gv$session a where a.type='USER' and (a.inst_id,a.sid)...in ( select BLOCKING_INSTANCE, BLOCKING_SESSION from v$session where upper(event) like '%&cursor%...' ) order by inst_id; 所有含有关键字“LOCAL=NO”的进程是Oracle数据库中远程连接进程的共同特点,因此通过以下命令可以kill掉所有的进程 ps -ef|grep -v
最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。 以下是自己写的脚本。实现的效果如下。...对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。...program format a35 break on report compute sum of cnt on report select status,count(*) cnt from v\$session...select program,cnt,status from (select program,count(*) cnt,status from v\$session group by program,status...program1", $issue_program3 "program2" from (select program,username,status,count(*) cnt from V\$SESSION
system | session system : -- 查询视图:v$parameter isses_modifiable 可以被alter session修改 isssy_modifiable...---------------------------- pga_aggregate_target big integer 129M SQL> alter system set pga_aggregate_target...set sql_trace = true; Session altered. -- 可以从v$parameter视图中来得到哪些可以使用alter system修改,哪些可以使用alter session...set sql_version = '8.1.6'; /*支持session类型修改*/ Session altered....------------ pga_aggregate_target big integer 76M /* 更多 */ Oracle 数据库实例启动关闭过程 Oracle 10g SGA 的自动化管理
big integer 1M 此时,sga和pga自动调整,sga_target最小为4M,pga_aggregate_target最小为1M; 如果,pga_aggregate_target...= 0,sga_target = 0,则sga和pga也是自动调整,sga占用60%,pga占用40%。...FROM v$sql t1, v$session t2 WHERE t1.address = t2.sql_address AND t2.sid = &sid; --&sid 就是上一条...sql中查到的sid 9.3如有記錄則表示有lock,記錄下SID和serial# ,执行下面的sql,即可解除锁 alter system kill session 'SID,serial#'; 10...count(1) from v$session group by event, WAIT_CLASS order by 2,3 desc; 关于Oracle的等待事件可参见随笔:Oracle Tuning
对于上面的参数文件里列出的信息,如果参数前面带有星号,则表明当前的参数为共用参数,前面有实例名的则为实例参数 3、参数文件的修改 参数文件中参数修改方式如下: alter system|session...system | session system : system级别有效,影响整个系统及所有使用者 session : 仅当前session有效,一旦退出之后将实效 'sid'...SQL> show parameter pga -->当前的pga已经被改为100m NAME TYPE...SQL> ho cat /u01/oracle/db/dbs/initora10g1.ora.tmp |grep pga *.pga_aggregate_target=112197632...#新的pfile文件中同时存在pga的值 ora10g1.pga_aggregate_target=104857600 #有两个指定了实例名,此时谁生效呢?
PGA,即程序全局区(Program Global Area),是Oracle体系机构的重要组成部分。Oracle 数据库对系统内存的总开销即是PGA+SGA。...决定 2、PGA的结构 PGA包括了以下几个结构: 排序区(Sort) 游标状态区(Cursor) 会话信息区(Session) 堆栈区...自动PGA内存管理:告诉Oracle可以使用的PGA的总量,由Oraclce根据系统负载决定具体分配。... a.决定了所有session总计可使用最大PGA内存值,该参数可动态修改。...的值应该基于Oracle实例可利用内存的总量来设置。
Oracle:locks High 数据库中存在锁 session使用量过高 (Oracle:session.last(0)}*100/Oracle:maxsession.last(0)})>80 High...session过多,比如session超过80% Process 使用量过高 (Oracle:procnum.last(0)}*100/Oracle:maxprocs.last(0)})>80 High...process过多,比如process超过80% 异常信息的通用审计 Oracle:audit High 异常信息的审计,比如密码错误次数过多 active session数过高 Oracle:session_active...Warning 表空间使用率超过90% 归档日志量过高 Oracle:archive Warning 归档日志量 正常运行时间 Oracle:uptime Average 正常运行情况 PGA 使用量过高...(Oracle:pga.last(0)}*100/Oracle:pga_aggregate_target.last(0)})>90 Average PGA使用率过高 缓存命中率不足 Oracle:hitratio_table_proc.avg
Memory Management using Resource Manager Oracle数据库资源管理器(资源管理器)现在可以在多租户容器数据库(CDB)中管理可插入数据库(PDBs)之间的内存使用...alter session set container=PDB1; ALTER SYSTEM SET SGA_TARGET = 1500M SCOPE = BOTH; ALTER SYSTEM SET...PGA_AGGREGATE_TARGET设置是一个目标。因此,Oracle数据库尝试将PGA内存使用限制在目标上,但是使用可以超过设置的次数。...要指定对PGA内存使用的硬限制,可以使用PGA_AGGREGATE_LIMIT初始化参数。Oracle数据库确保PGA大小不超过这个限制。...alter session set container=PDB1; ALTER SYSTEM SET PGA_AGGREGATE_LIMIT = 700M SCOPE = BOTH; ALTER SYSTEM
Oracle在解析和执行目标SQL时,会先去当前会话的PGA中查找是否存在匹配的缓存会话游标(Session Cursor)。...当Oracle第一次解析和执行目标SQL时(显然是硬解析),当前会话的PGA中肯定不存在匹配的会话游标,这时Oracle会新生成一个会话游标和一对共享游标(包含一个父游标和一个子游标),这其中的共享游标会存储能被所有会话共享...(Session)的PGA中寻找是否存在匹配的缓存会话游标。...l 如果在当前会话的PGA中找不到匹配的缓存会话游标,那么Oracle就会去SGA的库缓存(Library Cache)中查找是否存在匹配的父游标。...l 如果在当前会话的PGA中找到了匹配的缓存会话游标,那么此时Oracle就不再需要新生成一个会话游标,并且也不再需要像软解析那样得去SGA的库缓存中查找匹配的父游标了,因为Oracle此时可以重用找到的匹配会话游标
big integer 4010M 所以对于ctest sga+pga=12G+4G=16G,大体如此。...看来尽管sga,pga会显示有一个很大的值,其实还是根据实际的内存资源来分配。 这个时候问题就来了,为什么能够设置sga,pga为一个较高的值,而且数据库中似乎能够验证通过。...fs.aio-max-nr = 1048576 kernel.shmall = 33554432 kernel.shmmax = 107374182400 kernel.shmmni = 4096 查看当前的session...big integer 4G pga适度改小一些,然后停备库,听备库还有什么方法论吗,那就是看看session的情况,是否有其它额外的session在运行。...SQL> select username,count(*)from v$session group by username; USERNAME COUNT
三、问题排查 发现此数据库内存管理是自动管理的,SGA、PGA 设置的值不合理,当出现大量连接时,PGA 设置不合理,新的会话连接则会出现问题应用方反馈出性能问题;另外大量非活跃会话未释放也没有从数据库端限制...Example of an INACTIVE session: - A user starts a program/session, then leaves it running and idle...[oracle@JiekeXu ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/ [oracle@JiekeXu admin]$...pre_page_sga boolean FALSE sga_max_size big integer 39168M sga_target big integer 0 SQL> show parameter pga...=14G scope=spfile sid='*'; AIX 操作系统内存 64G,数据库内存 38.25G,将其调整为 30G,PGA 调整为 14G,shared_pool 5G,db_cache
PGA_AGGREGATE_LIMIT : The maximum PGA size for the PDB....PGA_AGGREGATE_TARGET : The target PGA size for the PDB....关于哪些值可以设置也有一些限制,官方文档中给出了详细的解释(http://docs.oracle.com/database/122/ADMIN/using-oracle-resource-manager-for-pdbs-with-sql-plus.htm...---- sga_target big integer 2544M SQL> 检查PDB的当前设置: CONN / AS SYSDBA ALTER SESSION...SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS'; ALTER SESSION SET NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24
三 问题排查 发现此数据库内存管理是自动管理的,SGA、PGA 设置的值不合理,当出现大量连接时,PGA 设置不合理,新的会话连接则会出现问题应用方反馈出性能问题;另外大量非活跃会话未释放也没有从数据库端限制...Example of an INACTIVE session: - A user starts a program/session, then leaves it running and idle...pre_page_sga boolean FALSE sga_max_size big integer 39168M sga_target big integer 0 SQL> show parameter pga...=14G scope=spfile sid='*'; AIX 操作系统内存 64G,数据库内存 38.25G,将其调整为 30G,PGA 调整为 14G,shared_pool 5G,db_cache...Oracle 相关认证证书查询及真伪辨别 Oracle 11g 临时表空间管理 Oracle 每日一题系列合集
({Template_Oracle_OLTP:pga.last(0)}*100/{Template_Oracle_OLTP:pga_aggregate_target.last(0)})>95 也就意味着...oracle@teststd.test.com (ARC0) 931 116 38.788 37.0642586 oracle@teststd.test.com (ARC3) 937...oracle@teststd.test.com (W00C) 1491 32.53 32.468 31.6490288 oracle@teststd.test.com (W001) 1327...33.90 31.968 31.6361275 oracle@teststd.test.com (W002) 8181 32.53 31.843 31.5896568 oracle...[oracle@teststd ~]$ ps -ef|grep 941 oracle 941 1 0 2016 ?
领取专属 10元无门槛券
手把手带您无忧上云