<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>About DATABASE</title>
		<link>http://theone79.tistory.com/</link>
		<description>ORACLE DATABASE에 대한 정보가 있는 곳 ..
DATABASE 와 여러정보 함께 공유해요~~</description>
		<language>ko</language>
		<pubDate>Tue, 15 May 2012 17:41:00 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>[PineTree]</managingEditor>
		<image>
			<title>About DATABASE</title>
			<url>http://cfs14.tistory.com/upload_control/download.blog?fhandle=YmxvZzI3MjIyNkBmczE0LnRpc3RvcnkuY29tOi9hdHRhY2gvMC8zLmpwZw%3D%3D</url>
			<link>http://theone79.tistory.com</link>
			<description>ORACLE DATABASE에 대한 정보가 있는 곳 ..
DATABASE 와 여러정보 함께 공유해요~~</description>
		</image>
		<item>
			<title>Automatic Tuning of Undo_retention Causes Space Problems [ID 420525.1]</title>
			<link>http://theone79.tistory.com/830</link>
			<description>&lt;P&gt;Automatic Tuning of Undo_retention Causes Space Problems [ID 420525.1] &lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; 수정 날짜 09-FEB-2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 유형 PROBLEM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 상태 PUBLISHED&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;In this Document&lt;br /&gt;&amp;nbsp; Symptoms&lt;br /&gt;&amp;nbsp; Cause&lt;br /&gt;&amp;nbsp; Solution&lt;br /&gt;&amp;nbsp; References&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Applies to: &lt;br /&gt;Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.3 - Release: 10.2 to 10.2&lt;br /&gt;Information in this document applies to any platform.&lt;br /&gt;Oracle Server Enterprise Edition - Version: 10.2.0.1 to 10.2.0.3 -- fixed by patchset 10.2.0.4 and no issues on this at 11g &lt;br /&gt;Symptoms&lt;br /&gt;You have verified that Note 413732.1 is not applicable and the problem is not a misunderstanding in the way EXPIRED/UNEXPIRED are used and reused over time.&lt;/P&gt;
&lt;P&gt;Look for: &lt;/P&gt;
&lt;P&gt;1.) System (Automatic) Managed Undo &lt;br /&gt;undo_management=auto in init.ora file &lt;/P&gt;
&lt;P&gt;2.) Fixed size undo tablespace&lt;br /&gt;SQL&amp;gt; select autoextensible from dba_data_files where tablespace_name='&amp;lt;current_undo_tablespace &amp;gt;' &lt;/P&gt;
&lt;P&gt;returns &quot;No&quot; for all the undo tablespace datafiles. &lt;/P&gt;
&lt;P&gt;3.) The undo tablespace is already sized such that it always has more than enough space to store all the undo generated within the undo_retention time, and the in-use undo space never exceeds the undo tablespace warning alert threshold (see below for the query to show the thresholds). &lt;/P&gt;
&lt;P&gt;4.) The tablespace threshold alerts recommend that the DBA add more space to the undo tablespace: &lt;/P&gt;
&lt;P&gt;SQL&amp;gt; select creation_time, metric_value, message_type,reason, suggested_action from dba_outstanding_alerts where object_name='&amp;lt;current_undo_ts&amp;gt;'; &lt;/P&gt;
&lt;P&gt;returns a suggested action of: &quot;Add space to the tablespace&quot; &lt;/P&gt;
&lt;P&gt;Or, &lt;/P&gt;
&lt;P&gt;This recommendation has been reported in the past but the condition has now cleared: &lt;br /&gt;SQL&amp;gt; select creation_time, metric_value, message_type, reason, suggested_action, resolution from dba_alert_history where object_name='&amp;lt;current_undo_ts&amp;gt;'; &lt;/P&gt;
&lt;P&gt;5.) The undo tablespace in-use space exceeded the warning alert threshold at some point in time: &lt;/P&gt;
&lt;P&gt;To see the warning alert percentage threshold: &lt;/P&gt;
&lt;P&gt;SQL&amp;gt; select object_type, object_name, warning_value, critical_value from dba_thresholds where object_type='TABLESPACE'; &lt;/P&gt;
&lt;P&gt;To see the (current) undo tablespace percent of space in-use: &lt;br /&gt;SQL&amp;gt; select &lt;br /&gt;((select (nvl(sum(bytes),0)) &lt;br /&gt;from dba_undo_extents &lt;br /&gt;where tablespace_name='&amp;lt;current_undo_ts&amp;gt;' &lt;br /&gt;and status in ('ACTIVE','UNEXPIRED')) *100) / &lt;br /&gt;(select sum(bytes) &lt;br /&gt;from dba_data_files &lt;br /&gt;where tablespace_name='&amp;lt;current_undo_ts&amp;gt;') &lt;br /&gt;&quot;PCT_INUSE&quot; &lt;br /&gt;from dual; &lt;/P&gt;
&lt;P&gt;Cause&lt;br /&gt;This is due to Bug 5387030 that is fixed in 10.2.0.4 patchset of RDBMS server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Solution&lt;br /&gt;Apply the patch for the Bug 5387030. Check the Oracle Support Portal for patch availability for your platform and RDBMS version.&lt;/P&gt;
&lt;P&gt;Workaround&lt;/P&gt;
&lt;P&gt;There are 3 possible alternate workarounds (any one of these should resolve the problem of the alerts triggering unnecessarily): &lt;/P&gt;
&lt;P&gt;1.) Set the autoextend and maxsize attribute of each datafile in the undo ts so it is autoextensible and its maxsize is equal to its current size so the undo tablespace now has the autoextend attribute but does not autoextend: &lt;/P&gt;
&lt;P&gt;SQL&amp;gt; alter database datafile '&amp;lt;datafile_flename&amp;gt;' &lt;br /&gt;autoextend on maxsize &amp;lt;current_size&amp;gt;; &lt;/P&gt;
&lt;P&gt;With this setting, v$undostat.tuned_undoretention is not calculated based on a percentage of the undo tablespace size, instead v$undostat.tuned_undoretention is set to the maximum of (maxquerylen secs + 300) undo_retention specified in init.ora file.&lt;/P&gt;
&lt;P&gt;2.) Set the following hidden parameter in init.ora file: &lt;br /&gt;_smu_debug_mode=33554432 &lt;/P&gt;
&lt;P&gt;or &lt;/P&gt;
&lt;P&gt;SQL&amp;gt; Alter system set &quot;_smu_debug_mode&quot; = 33554432; &lt;/P&gt;
&lt;P&gt;With this setting, v$undostat.tuned_undoretention is not calculated based on a percentage of the fixed size undo tablespace, instead v$undostat.tuned_undoretention is set to the maximum of (maxquerylen secs + 300) undo_retention specified in init.ora file.&lt;/P&gt;
&lt;P&gt;3.) Set the following hidden parameter in init.ora: &lt;br /&gt;_undo_autotune = false &lt;/P&gt;
&lt;P&gt;or &lt;/P&gt;
&lt;P&gt;SQL&amp;gt; Alter system set &quot;_undo_autotune&quot; = false; &lt;/P&gt;
&lt;P&gt;With this setting, v$undostat (and therefore v$undostat.tuned_undoretention) is not maintained and the undo_retention used is the one specified in init.ora file.&amp;nbsp;&amp;nbsp; NOTE:&amp;nbsp; This means you loose all advantages in having automatic undo management and is not an ideal long term fix.&lt;/P&gt;
&lt;P&gt;NOTE: Even with the patch fix installed, the autotuned retention can still grow under certain circumstances.&amp;nbsp; The fix attempts to throttle back how aggressive that autotuning will be.&amp;nbsp; Options 2 and 3 may be needed to get around this aggressive growth in some environments.&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;References&lt;br /&gt;NOTE:413732.1 - Full UNDO Tablespace In 10gR2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;관련 자료&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------&lt;br /&gt;제품 &lt;br /&gt;--------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;•Oracle Database Products &amp;gt; Oracle Database &amp;gt; Oracle Database &amp;gt; Oracle Server - Enterprise Edition &lt;br /&gt;키워드 &lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;TABLESPACE; UNDO_MANAGEMENT; UNDO_RETENTION; UNDO TABLESPACE &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;br /&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-830-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-830-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/ADMIN&quot;&gt;ADMIN&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/830&quot; &gt;Automatic Tuning of Undo_retention Causes Space Problems [ID 420525.1]&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
17:24:53&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/829&quot; &gt;Configuring the Oracle Network Environment&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/805&quot; &gt;Oracle Hang 상황에서 액티브 세션 리스트 얻기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(8)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/802&quot; &gt;오라클 버전간의 파라미터 변경사항 비교 (Oracle 9i, 10g, 11g)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/799&quot; &gt;오라클 모니터링 쿼리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/797&quot; &gt;oracle inactive session 정리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/15&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>ADMIN</category>
			<category>420525.1</category>
			<category>AUM</category>
			<category>oracle</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/830</guid>
			<comments>http://theone79.tistory.com/830#entry830comment</comments>
			<pubDate>Tue, 15 May 2012 17:24:53 +0900</pubDate>
		</item>
		<item>
			<title>Configuring the Oracle Network Environment</title>
			<link>http://theone79.tistory.com/829</link>
			<description>&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#2b8400&gt;● 개요&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #e7fdb5 1px solid; BORDER-LEFT: #e7fdb5 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #e7fdb5 1px solid; BORDER-RIGHT: #e7fdb5 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;- 추가적인 리스너를 생성할 수 있다.&lt;br /&gt;- 오라클 넷 서비스를 생성할 수 있다.&lt;br /&gt;- connect-time failover를 구성할 수 있다.&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;FONT color=#2b8400&gt;&lt;STRONG&gt;● 오라클 넷 서비스(Oracle Net Services)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;FONT color=#174600&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&amp;nbsp;&amp;nbsp; ◎ 정의&lt;/SPAN&gt;&lt;/FONT&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: 네트워크 connection을 가능하게 하는 소프트웨어&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;FONT color=#174600&gt;&amp;nbsp;&amp;nbsp; ◎ 전체 구조도 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;TEXT-ALIGN: center; CLEAR: both&quot; class=&quot;imageblock center&quot;&gt;&lt;IMG style=&quot;CURSOR: pointer&quot; alt=&quot;&quot; src=&quot;http://cfile5.uf.tistory.com/image/17767D144B19FF384FE5CF&quot; width=683 height=434&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;FONT color=#174600&gt;&amp;nbsp; ◎ 리스너에 추가하는 법&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ○ telnet으로 추가&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 리스너가 동작중인지 확인&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] ps -ef|grep lsnr&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- linstener.ora가 있는 디렉토리로 이동 후 확인&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] cd $ORACLE_HOME/network/admin&lt;br /&gt;OS] ls&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- listener.ora의 내용을 확인 &lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] vi listener.ora&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 내용을 확인해보면 다음과 같다. 빨간색 부분을 추가한다.(띄어쓰기 안맞을 경우 에러 발생할 가능성이 있다.)&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;L1 =&lt;br /&gt;&amp;nbsp; (DESCRIPTION_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = ora10gr2.gsedu.com)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;SID_LIST_L1 =&lt;br /&gt;&lt;SPAN style=&quot;WIDTH: 1px; FLOAT: right; HEIGHT: 1px&quot; id=callbacknestaozjffltistorycom2007425&gt;&lt;/SPAN&gt;&amp;nbsp; (SID_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_DESC =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_NAME = orcl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (GLOBAL_DBNAME = orcl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_DESC =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_NAME = ikdb)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (GLOBAL_DBNAME = ikdb)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#e31600&gt;L2 =&lt;br /&gt;&amp;nbsp; (DESCRIPTION_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = ora10gr2.gsedu.com)(PORT = 1621))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;FONT color=#e31600&gt;SID_LIST_L2 =&lt;br /&gt;&amp;nbsp; (SID_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_DESC =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID_NAME = jgh_db)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (GLOBAL_DBNAME = jgh_db)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 리스너를 start시킨다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 기본은 1521 포트의 리스너가 start되지만 리스너를 명시해서 start, stop을 할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] lsnrctl start&lt;br /&gt;OS] lsnrctl stop &lt;br /&gt;OS] lsnrctl start L1&lt;br /&gt;OS] lsnrctl start L2&lt;br /&gt;OS] lsnrctl stop L1&lt;br /&gt;OS] lsnrctl stop L2&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- lsnrctl 명령으로도 가능&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] lsnrctl&lt;br /&gt;LSNRCTL&amp;gt; start l1&lt;br /&gt;LSNRCTL&amp;gt; start l2&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;LSNRCTL&amp;gt; service l1&lt;br /&gt;LSNRCTL&amp;gt; service l2&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;LSNRCTL&amp;gt; status l1&lt;br /&gt;LSNRCTL&amp;gt; status l2&lt;br /&gt;LSNRCTL&amp;gt; set current l2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- 디폴트 리스너를 바꿀 수 있다.&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;FONT color=#174600&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ○ Oracle Net Manager로 추가&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] netmgr&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;FONT color=#174600&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ○ Oracle Configuration Assistant로 추가&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;OS] netca&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;FONT color=#174600&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ○ EM으로 추가&lt;/FONT&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&amp;nbsp;※ Server에 기본 리스너외에 추가 리스너 등록&lt;/SPAN&gt;&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;SQL&amp;gt; alter system set local_listener =&amp;nbsp;&lt;FONT color=#e31600&gt;a&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- 같은 machine내에 a리스트를 보고 등록&lt;br /&gt;SQL&amp;gt; alter system set remote_listener = &lt;FONT color=#e31600&gt;a&amp;nbsp;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-- 다른 machine의 리스너 등록&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&amp;lt;tnsnames.ora&amp;gt;&lt;br /&gt;&lt;FONT color=#e31600&gt;a&amp;nbsp;&lt;/FONT&gt;=&lt;br /&gt;(DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1621))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVER = DEDICATED)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SID = orcl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;)&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;※ RAC환경에서의 설정&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - SID는 중복 불가, SERVICE_NAME은 중복 가능&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;SERVER1 (192.168.0.10)&lt;br /&gt;&lt;/STRONG&gt;OS] vi initi1.ora&lt;br /&gt;instance_name = i1&lt;br /&gt;service_names = haha, hoho&lt;br /&gt;remote_listener = .....&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;SERVER2 (192.168.0.11)&lt;br /&gt;&lt;/STRONG&gt;OS] vi initi2.ora&lt;br /&gt;instance_name = i2&lt;br /&gt;service_names = haha, hoho&lt;br /&gt;remote_listener = .....&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;SERVER3 (192.168.0.12)&lt;br /&gt;&lt;/STRONG&gt;OS] vi initi3.ora&lt;br /&gt;instance_name = i3&lt;br /&gt;service_names = haha, hoho&lt;br /&gt;remote_listener = .....&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;CLIENT&lt;/STRONG&gt;&lt;br /&gt;&amp;lt;tnsnames.ora&amp;gt;&lt;br /&gt;sqlplus &lt;A href=&quot;mailto:chris/chris@a&quot;&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;chris/chris@a&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- a :&amp;nbsp;connect identifier(=network alias, service alias)&lt;br /&gt;a&amp;nbsp;=&lt;br /&gt;(DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVER = DEDICATED)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVICE_NAME = haha)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&amp;nbsp;&lt;br /&gt;)&lt;br /&gt;-- connect discriptor&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;- haha라는 서비스명으로 접속하므로 i1이&amp;nbsp;shutdown되어 있더라도 i2로 접속이&amp;nbsp;가능&lt;br /&gt;&amp;nbsp; SID=i1으로 할 경우 문제가 생길 소지가 있음. SERVICE_NAME으로 하는 것이 좋음&lt;br /&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;STRONG&gt;※ instance name이 같은 서버가 있어도 도메인으로 식별 가능&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;instance1&lt;/STRONG&gt;&lt;br /&gt;instance_name = HRDB&lt;br /&gt;db_domain = asia.com&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;STRONG&gt;instance2&lt;/STRONG&gt;&lt;br /&gt;instance_name = HRDB&lt;br /&gt;db_domain = africa.com&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;※ Dedicated Server vs. Shared Server&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&amp;nbsp; Dedicated Server&lt;/STRONG&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 하나의 유저에 하나의 서버 프로세스가 담당.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - sserver process당 PGA가 생긴다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dedicate server로 접속시 client의 tnsnames.ora설정 파일&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&amp;lt;tnsnames.ora&amp;gt;&lt;br /&gt;shared =&lt;br /&gt;&amp;nbsp; (DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.122.1)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.122.1)(PORT = 1621))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LOAD_BALANCE = yes)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVER = &lt;FONT color=#e31600&gt;DEDICATED&lt;/FONT&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVICE_NAME = orcl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;STRONG&gt;Shared Server&lt;br /&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 일정 갯수의 서버 프로세스를 유저서버프로세스가 공유하는 형식&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;FONT style=&quot;BACKGROUND-COLOR: #ffff00; COLOR: #000000; FONT-SIZE: 120%; FONT-WEIGHT: bold&quot; id=altools-findtxt size=5&gt;UGA&lt;/FONT&gt;(user session data, cursor state, sort data)가 SGA내에 생김(서버 프로세스가 공유하기 위해서)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- 아래의&amp;nbsp;파일들을 설정해주어야 함 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;shared server 접속시 client의 tnsnames.ora 설정 파일&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&amp;lt;tnsnames.ora&amp;gt;&lt;br /&gt;shared =&lt;br /&gt;&amp;nbsp; (DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.122.1)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.122.1)(PORT = 1621))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (LOAD_BALANCE = yes)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (CONNECT_DATA =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVER = &lt;FONT color=#e31600&gt;SHARED&lt;/FONT&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SERVICE_NAME = orcl)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server의 파라미터 파일 설정&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #eeeeee 1px solid; BORDER-RIGHT: #eeeeee 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;SQL&amp;gt; alter system set shared_servers = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- 서버프로세스를 2개&lt;br /&gt;SQL&amp;gt; alter system set dispatchers = '(protocol=tsp)(dispatchers=3)';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-- 디스패쳐를 3개&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;기타참고사항&lt;br /&gt;&lt;/STRONG&gt;&lt;br /&gt;- JDBC 드라이버&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Java Database Connectivity의 약자. 번역기. DBMS의 벤더들이 만든다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oracle net을 simmulate한 것&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;사용시에 오라클의 버전에 맞게 사용할 것&lt;br /&gt;&lt;br /&gt;- 리스너가 살아있는지 확인(서버가 살아있는지 확인하는 것은 아님)&lt;br /&gt;&amp;nbsp;&amp;nbsp; tnsping 172.16.122.106:1521/orcl&lt;br /&gt;&lt;br /&gt;- name resolution &lt;br /&gt;&amp;nbsp; : connect identifier(network alias, service alias)를 connect descriptor로 바꾸는 행위를 말한다.&lt;br /&gt;&lt;br /&gt;- linux : oerr ora 12154 명령을 치면 에러에 대한 내용이 나옴.&lt;br /&gt;&lt;br /&gt;- 오라클에서의 connection과 session&lt;br /&gt;&amp;nbsp;&amp;nbsp; - connection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : communication path way&lt;br /&gt;&amp;nbsp;&amp;nbsp; - session&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : log in ~ log out&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-829-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-829-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/ADMIN&quot;&gt;ADMIN&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/830&quot; &gt;Automatic Tuning of Undo_retention Causes Space Problems [ID 420525.1]&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
17:24:53&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/829&quot; &gt;Configuring the Oracle Network Environment&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/805&quot; &gt;Oracle Hang 상황에서 액티브 세션 리스트 얻기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(8)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/802&quot; &gt;오라클 버전간의 파라미터 변경사항 비교 (Oracle 9i, 10g, 11g)&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/799&quot; &gt;오라클 모니터링 쿼리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/797&quot; &gt;oracle inactive session 정리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/15&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>ADMIN</category>
			<category>listener</category>
			<category>oracle</category>
			<category>remote listener</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/829</guid>
			<comments>http://theone79.tistory.com/829#entry829comment</comments>
			<pubDate>Fri, 11 May 2012 11:07:44 +0900</pubDate>
		</item>
		<item>
			<title>oracle RAC 10.2.0.1 -&gt; 10.2.0.5 패치</title>
			<link>http://theone79.tistory.com/828</link>
			<description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;&quot;&gt;&lt;a href=&quot;http://theone79.tistory.com/attachment/cfile2.uf@196D6F394FAC728D23A219.pdf&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; RAC 10g R2 patch.pdf&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-828-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-828-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/RAC&quot;&gt;RAC&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/828&quot; &gt;oracle RAC 10.2.0.1 -&amp;gt; 10.2.0.5 패치&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/825&quot; &gt;UDP Buffer Tuning 기법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/660&quot; &gt;RAC 에서 특정 Instance만 성능이 느린 이유&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/04/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/387&quot; &gt;RAC(OPS) 환경하에서 양쪽 Node의 archived log file을 RMAN을 사용하여 동시에 BACKUP 받는 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/02/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/335&quot; &gt;Linux / FireWire 환경에 Oracle RAC 10g Release 2 Cluster 설치하기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/12/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/333&quot; &gt;RAC Cluster/Database 구성의 검증&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/12/23&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>RAC</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/828</guid>
			<comments>http://theone79.tistory.com/828#entry828comment</comments>
			<pubDate>Fri, 11 May 2012 11:00:02 +0900</pubDate>
		</item>
		<item>
			<title>oracle silent install</title>
			<link>http://theone79.tistory.com/827</link>
			<description>&lt;P&gt;dbworks 에서 받은 파일입니다.&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;&quot;&gt;&lt;a href=&quot;http://theone79.tistory.com/attachment/cfile9.uf@125DEF3A4FAC7202209419.pdf&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Oracle Silent Install Guide.pdf&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-827-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-827-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/INSTALL&quot;&gt;INSTALL&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/827&quot; &gt;oracle silent install&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/808&quot; &gt;[ Oracle - Admin ] Linux 커널 매게변수 및 Shell Limit&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/01/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/689&quot; &gt;오라 클 9.2.0.1에서 Patch 셋 올리기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/05/31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/622&quot; &gt;oracle enterprise manager 한글 버튼 깨짐 문제&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/01/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/597&quot; &gt;RAC 패치 절차&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/12/15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/532&quot; &gt;Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 4 on AMD64/EM64T&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/09/07&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>INSTALL</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/827</guid>
			<comments>http://theone79.tistory.com/827#entry827comment</comments>
			<pubDate>Fri, 11 May 2012 10:57:25 +0900</pubDate>
		</item>
		<item>
			<title>11g 데이타베이스 에러수집방법</title>
			<link>http://theone79.tistory.com/826</link>
			<description>&lt;DIV class=&quot;document_8730_2285 xe_content&quot;&gt;
&lt;DIV class=jive-message-body jQuery1336701106796=&quot;7&quot;&gt;OTN펌&lt;br /&gt;
&lt;LI&gt;목적 : &lt;br /&gt;Oracle 11g 부터 Alert.log 와 trace file 은 새로운 형식으로 생성이 되며, 이는 ADR (Automatic Diagnotic Repository) 에 생성이 된다. &lt;br /&gt;본 문서에서는 Database 에 심각한 에러가 발생한 경우, ADRCI 명령어를 이용하여 에러를 확인하고 관련된 alert.log 및 trace file 을 오라클 고객지원센터로 전송하는 방법에 대해서 설명한다. &lt;br /&gt;
&lt;P&gt;&lt;/P&gt;
&lt;LI&gt;IPS 사용법 : &lt;br /&gt;ORACLE 11g 는 problem (Database 에서 발생한 에러코드)과 incident (에러가 발생한 기록)에 관련된 trace file 들을 자동으로 수집해주는 기능을 제공한다. &lt;br /&gt;이 기능을 IPS (Incident Packaging Service) 라고 하며, 인터페이스로 GUI 환경과 ADRCI command 를 제공한다. &lt;br /&gt;Database 에 발생한 모든 심각한 에러들은 각각의 incident 를 생성한다.&lt;br /&gt;IPS 를 통해서 생성된 압축 파일은 에러에 대한 alert.log file, 모든 trace file 과 진단 정보를 포함하고 있기 때문에, 해당 error 에 대한 정보수집을 간편히 수행할 수 있다. &lt;br /&gt;
&lt;P&gt;Database 의 에러 확인 및 관련 file을 오라클 고객지원센터로 전송하는 방법 : &lt;br /&gt;
&lt;P&gt;1. Database 에서 발생한 심각한 에러 발생 &lt;br /&gt;
&lt;P&gt;SQL&amp;gt; select * from atab;&lt;br /&gt;select * from atab&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-01578: ORACLE data block corrupted (file # 6, block # 11)&lt;br /&gt;ORA-01110: data file 6: '/opt/oracle/oradata/db11g/tt.dbf' &lt;br /&gt;
&lt;P&gt;2. ADR과 Alert.log 에서 에러를 확인한다. &lt;br /&gt;
&lt;P&gt;ADR에서 에러를 확인하기 위하여 11g 환경의 OS prompt에서 adrci를 실행한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;%] adrci&lt;/B&gt;&lt;br /&gt;
&lt;P&gt;ADR 홈 경로를 확인한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;adrci&amp;gt; show home&lt;/B&gt;&lt;br /&gt;--&amp;gt; 모든 ADR HOME 을 보여준다. 확인하고자 하는 ADR HOME 을 지정한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;adrci&amp;gt; set homepath &amp;lt;ADR HOME&amp;gt;&lt;/B&gt;&lt;br /&gt;
&lt;P&gt;에러 코드를 problem 이라고 하며, 이를 확인하기 위해서 다음을 실행한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;adrci&amp;gt; show problem&lt;/B&gt;&lt;br /&gt;
&lt;P&gt;ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:&lt;br /&gt;*************************************************************************&lt;br /&gt;PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME&lt;br /&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;br /&gt;1 ORA 1578 18104 2009-06-01 22:06:19.501207 +10:00&lt;br /&gt;1 rows fetched&lt;br /&gt;
&lt;P&gt;Database 에 문제가 되고 있는 에러 코드를 확인할 수 있다. &lt;br /&gt;이 중, 분석이 필요한 에러코드에 대하여 압축파일을 생성할 수 있다. &lt;br /&gt;
&lt;P&gt;3. 분석이 필요한 에러의 발생 기록을 확인한다. &lt;br /&gt;
&lt;P&gt;에러의 발생 기록들은 Incident 라고 하며, 모든 incident 는 Alert.log 에 기록된다. &lt;br /&gt;각각의 incident 는 유일한 incident ID 를 가진다. &lt;br /&gt;
&lt;P&gt;ADR 에서 'show incident' 명령을 수행하여 에러 발생 기록을 확인할 수가 있으며, &lt;br /&gt;에러에 대한 problem key를 확인하기 위해서는 'show problem' 을 수행한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;adrci&amp;gt; show incident -p &quot;problem_key='ORA 1578'&quot;&lt;/B&gt;&lt;br /&gt;
&lt;P&gt;ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:&lt;br /&gt;*************************************************************************&lt;br /&gt;INCIDENT_ID PROBLEM_KEY CREATE_TIME&lt;br /&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;br /&gt;18147 ORA 1578 2009-06-01 22:02:08.805002 +10:00&lt;br /&gt;
&lt;P&gt;동일한 problem에 대한 incidnet는 여러 건이 발생할 수 있다. &lt;br /&gt;
&lt;P&gt;4. IPS (incident packaging service) 를 수행하여 alert.log , trace file 및 diag 정보에 대한 압축 파일 생성. &lt;br /&gt;
&lt;P&gt;압축 파일을 생성하기 위해서는 특정 경로를 포함한 'IPS pack' 명령을 사용한다. &lt;br /&gt;다음의 예는 incident 관련 file들을 /tmp directory 에 압축 파일로 생성하는 방법이다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;adrci&amp;gt; ips pack incident 18147 in /tmp&lt;/B&gt;&lt;br /&gt;Generated package 9 in file /tmp/ORA1578_20090602113045_COM_1.zip, mode complete&lt;br /&gt;
&lt;P&gt;IPS pack 의 예제) &lt;br /&gt;
&lt;P&gt;&lt;B&gt;ips pack problem 100 in /tmp&lt;/B&gt;&lt;br /&gt;-- problem id 100 에 관련된 trace file 들을 /tmp directory 에 압축파일로 생성한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;ips pack incident 6439 in /tmp&lt;/B&gt;&lt;br /&gt;-- incident id 6439 에 관련된 trace file 들을 /tmp directory 에 압축파일로 생성한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;ips pack problemkey &quot;ORA 1578&quot;&lt;/B&gt;&lt;br /&gt;-- problem_key 'ORA 1578' 를 가지는 모든 problem 에 관련된 trace file 들을 현재 directory 에 압축파일로 생성한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;ips pack seconds 8&lt;/B&gt; &lt;br /&gt;-- 최근 8 초 이내에 발생한 incident 에 대한 압축 파일을 생성한다. &lt;br /&gt;
&lt;P&gt;&lt;B&gt;ips pack time '2007-05-01 10:00:00.00' to '2007-05-01 23:00:00.00'&lt;/B&gt;&lt;br /&gt;-- 특정 시간대의 incident 에 대한 압축파일을 생성한다. &lt;br /&gt;
&lt;P&gt;'IPS pack' 명령은 'IPC create' 와 'IPS generage' 명령을 일괄적으로 수행할 수 있는 명령이다. &lt;br /&gt;
&lt;P&gt;이와 같이 생성된 압축 파일을 SR (service request)을 통해 오라클 고객지원센터로 전송하면 된다. &lt;br /&gt;&lt;br /&gt;동영상 참조 : &lt;br /&gt;&lt;A href=&quot;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=ATT&amp;amp;id=443529.1:Steps&amp;amp;inline=1&quot;&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;IPS package 를 생성하는 방법 (동영상 자료 02:30) &lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;br /&gt;(My Oracle Support 접속 필요)&lt;br /&gt;&lt;br /&gt;참고자료 : &lt;br /&gt;DOC ID : 443529.1 &lt;br /&gt;11g Quick Steps to Package and Send Critical Error Diagnostic Information to Support (Video)&lt;br /&gt;&lt;br /&gt;DOC ID: 738732.1&lt;br /&gt;ADR Different Methods to Create IPS Package&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/LI&gt;&lt;/DIV&gt;
&lt;DIV class=document_popup_menu&gt;&lt;A href=&quot;http://support.dbworks.co.kr/8730/8e3/trackback&quot; name=trackback&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;엮인글 주소 : http://support.dbworks.co.kr/8730/8e3/trackback&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; &lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV class=trackbackBox&gt;
&lt;DIV class=trackbackUrl&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV class=replyBox&gt;
&lt;DIV class=&quot;replyItem &quot;&gt;
&lt;DIV class=author&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV class=&quot;replyItem &quot;&gt;
&lt;DIV class=clear&gt;&lt;/DIV&gt;
&lt;DIV class=replyContent&gt;&lt;!--BeforeComment(9781,2285)--&gt;
&lt;DIV class=&quot;comment_9781_2285 xe_content&quot;&gt;
&lt;P&gt;추가적으로 trace file정리시&lt;/P&gt;
&lt;P&gt;adrci&amp;gt;purge -age 30&lt;/P&gt;
&lt;P&gt;하면 됩니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-826-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-826-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/ORACLE%20%2011G&quot;&gt;ORACLE  11G&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/826&quot; &gt;11g 데이타베이스 에러수집방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/511&quot; &gt;기준선 및 개선된 계획&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/08/25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/444&quot; &gt;Oracle Advanced Compression&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/04/02&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>ORACLE  11G</category>
			<category>11g</category>
			<category>oracle</category>
			<category>trace</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/826</guid>
			<comments>http://theone79.tistory.com/826#entry826comment</comments>
			<pubDate>Fri, 11 May 2012 10:54:02 +0900</pubDate>
		</item>
		<item>
			<title>UDP Buffer Tuning 기법</title>
			<link>http://theone79.tistory.com/825</link>
			<description>&lt;P&gt;오라클 매거진 2007년 가을호&amp;nbsp;발췌자료입니다.&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;일반적으로 RAC의 Inter-Connects의 성능과 가장 연관이 깊은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;것이 UDP Buffer의 크기이다. 오라클이 공식적으로 권고하는 UDP&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Buffer 크기는 256K이고 대부분의 시스템에서 적절한 성능을 보장하고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;있다. Inter-Connect을 통해 주고 받는 Data량이 많은 경우 UDP Buffer &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Size를 1M~2M 정도 사용하기도 하며 Transaction에 비해 UDP Buffer &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Size 가 작을 경우 Packet Loss 현상이 발생할 수 있다. &lt;STRONG&gt;&lt;U&gt;Packet Loss 현&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;&lt;U&gt;상이 자주 발생할 경우“gc cr block lost”,“gc current block lost”&lt;/U&gt;&lt;/STRONG&gt;의 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Oracle Wait Event가 나타난다. 이는 각 OS 별 Monitoring Tool인 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;nmon, topas, glance이나 Network 명령인 ifconfig, netstat 등과&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Network 진단 Tool을 통해 UDP Packet Receive Error나 Dropped 된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;비율을 Monitoring 하도록 한다.&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;[oracle@rac1]$ netstat -s&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Ip: ………&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Tcp: …….&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;WIDTH: 450pt; BORDER-COLLAPSE: collapse&quot; border=0 cellSpacing=0 cellPadding=0 width=599&gt;
&lt;COLGROUP&gt;
&lt;COL style=&quot;WIDTH: 54pt&quot; width=72&gt;
&lt;COL style=&quot;WIDTH: 112pt; mso-width-source: userset; mso-width-alt: 4768&quot; width=149&gt;
&lt;COL style=&quot;WIDTH: 54pt&quot; width=72&gt;
&lt;COL style=&quot;WIDTH: 230pt; mso-width-source: userset; mso-width-alt: 9792&quot; width=306&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 30pt; mso-height-source: userset&quot; height=40&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: transparent; WIDTH: 450pt; FONT-FAMILY: 994268_10; HEIGHT: 30pt; FONT-SIZE: 10pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8&quot; class=xl72 height=40 width=599 colSpan=4&gt;&lt;U&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;&lt;STRONG&gt;OS별 Default UDP Buffer Size와 조절방법(MAX:8M)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 16.5pt&quot; height=22 jQuery1336700728953=&quot;9&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; HEIGHT: 16.5pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl69 height=22&gt;&lt;FONT size=3 face=Tahoma&gt;&lt;STRONG&gt;kernel&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl70&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;&lt;STRONG&gt;Value&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl70&gt;&lt;STRONG&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Default&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl71&gt;&lt;STRONG&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Command&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 21pt; mso-height-source: userset&quot; height=28&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 21pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl64 height=28&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Linex&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;net.core.rmem_max&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;131071&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl65&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;sysctl -w net.core.rmem_max = 8388608&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 32.25pt; mso-height-source: userset&quot; height=43&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 32.25pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl64 height=43&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Solaris&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;udp_max_buf&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;262144&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl65&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;ndd -set /dev/udp udp_max_buf 8388608&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 33.75pt&quot; height=45&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 33.75pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl66 height=45&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;AIX&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl67&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;sb_max&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl67 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;1048576&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; WIDTH: 230pt; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl68 width=306&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;no -o sb_max=8388608&lt;br /&gt;(1048576, 4194304, 83388608 값 중에서만)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot; jQuery1336700728953=&quot;8&quot;&gt;
&lt;P&gt;&lt;br /&gt;앞의 Network Setting 값들은 System 운영 중에 변경이 가능하며 System Rebooting 시에는 Default 값으로 초기화되므로 System Starting Script나 Kernel Level에서 값을 Settting하여 자동 적용이 되도록 한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;고객사 장애사례&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instance Recovery 및 Reconfigure 시간을 최대 단축하는 &lt;/P&gt;
&lt;P&gt;Hidden Parameter(_imr_max_reconfig_max)와 Instance Recovery 없이 (_imr_active=false) Open 시도를 해도 두 번째 Node의 DB는 약20분 후에 Open됨.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;DB Mount 상태에서 10046-level 12로 event를 걸어 DB Open하여 trace를 살펴보니 Inter-connects 간 &lt;STRONG&gt;&lt;U&gt;DB Open전에 동기화를 위한 Recursive Call 시 ”global cache cr request”event와 해당 elaspsed time이 굉장히 자주 많이 발생하&lt;/U&gt;&lt;/STRONG&gt;여 Inter-Connects 간 Network 전송속도에 문제가 있을 것으로 판단하여 OS의 Inter-Connects용 Gigabit-NIC 설&lt;br /&gt;정 값을 확인해보니 100 M Full 설정이 되어 있어 1000 M Full로 변경하여 정상적으로 DB Open 및 업무가 진행이 되었다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 
&lt;DIV class=autosourcing-stub&gt;
&lt;P style=&quot;PADDING-BOTTOM: 0px; FONT-STYLE: normal; MARGIN: 11px 0px 7px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: Dotum; FONT-SIZE: 12px; FONT-WEIGHT: normal; PADDING-TOP: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;일반적으로 RAC의 Inter-Connects의 성능과 가장 연관이 깊은&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;것이 UDP Buffer의 크기이다. 오라클이 공식적으로 권고하는 UDP&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Buffer 크기는 256K이고 대부분의 시스템에서 적절한 성능을 보장하고&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;있다. Inter-Connect을 통해 주고 받는 Data량이 많은 경우 UDP Buffer &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Size를 1M~2M 정도 사용하기도 하며 Transaction에 비해 UDP Buffer &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Size 가 작을 경우 Packet Loss 현상이 발생할 수 있다. &lt;STRONG&gt;&lt;U&gt;Packet Loss 현&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;&lt;U&gt;상이 자주 발생할 경우“gc cr block lost”,“gc current block lost”&lt;/U&gt;&lt;/STRONG&gt;의 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Oracle Wait Event가 나타난다. 이는 각 OS 별 Monitoring Tool인 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;nmon, topas, glance이나 Network 명령인 ifconfig, netstat 등과&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Network 진단 Tool을 통해 UDP Packet Receive Error나 Dropped 된&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;비율을 Monitoring 하도록 한다.&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;[oracle@rac1]$ netstat -s&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Ip: ………&lt;/SPAN&gt;&lt;br /&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;Tcp: …….&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 994268_12; FONT-SIZE: 12pt&quot;&gt;
&lt;P&gt;&lt;/P&gt;&lt;/TABLE&gt;
&lt;TABLE style=&quot;WIDTH: 450pt; BORDER-COLLAPSE: collapse&quot; border=0 cellSpacing=0 cellPadding=0 width=599&gt;
&lt;COLGROUP&gt;
&lt;COL style=&quot;WIDTH: 54pt&quot; width=72&gt;
&lt;COL style=&quot;WIDTH: 112pt; mso-width-source: userset; mso-width-alt: 4768&quot; width=149&gt;
&lt;COL style=&quot;WIDTH: 54pt&quot; width=72&gt;
&lt;COL style=&quot;WIDTH: 230pt; mso-width-source: userset; mso-width-alt: 9792&quot; width=306&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 30pt; mso-height-source: userset&quot; height=40&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #ece9d8; BACKGROUND-COLOR: transparent; WIDTH: 450pt; FONT-FAMILY: 994268_10; HEIGHT: 30pt; FONT-SIZE: 10pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8&quot; class=xl72 height=40 width=599 colSpan=4&gt;&lt;U&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;&lt;STRONG&gt;OS별 Default UDP Buffer Size와 조절방법(MAX:8M)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 16.5pt&quot; height=22&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; HEIGHT: 16.5pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl69 height=22&gt;&lt;FONT size=3 face=Tahoma&gt;&lt;STRONG&gt;kernel&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl70&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;&lt;STRONG&gt;Value&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl70&gt;&lt;STRONG&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Default&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: #eeece1; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl71&gt;&lt;STRONG&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Command&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 21pt; mso-height-source: userset&quot; height=28&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 21pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl64 height=28&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Linex&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;net.core.rmem_max&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;131071&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl65&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;sysctl -w net.core.rmem_max = 8388608&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 32.25pt; mso-height-source: userset&quot; height=43&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 32.25pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl64 height=43&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;Solaris&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;udp_max_buf&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl63 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;262144&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl65&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;ndd -set /dev/udp udp_max_buf 8388608&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 33.75pt&quot; height=45&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; HEIGHT: 33.75pt; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl66 height=45&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;AIX&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl67&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;sb_max&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 0.5pt solid&quot; class=xl67 align=right&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;1048576&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext; BACKGROUND-COLOR: transparent; WIDTH: 230pt; FONT-FAMILY: 994268_10; FONT-SIZE: 10pt; BORDER-TOP: windowtext; BORDER-RIGHT: windowtext 1pt solid&quot; class=xl68 width=306&gt;&lt;FONT size=3 face=&quot;맑은 고딕&quot;&gt;no -o sb_max=8388608&lt;br /&gt;(1048576, 4194304, 83388608 값 중에서만)&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=0 cellSpacing=6 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top colSpan=4 align=left&gt;&lt;STRONG&gt;Tuning Inter-Instance Performance in RAC and OPS [ID 181489.1]&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top colSpan=2&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top colSpan=6 align=left&gt;
&lt;HR SIZE=1&gt;
&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=&quot;25%&quot; colSpan=2&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=&quot;50%&quot; colSpan=3 noWrap&gt;&lt;EM&gt;수정 날짜&lt;/EM&gt; 29-MAR-2009&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;유형&lt;/EM&gt; BULLETIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;EM&gt;상태&lt;/EM&gt; PUBLISHED&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;PRE jQuery1336700728953=&quot;11&quot;&gt;
&lt;FONT face=&quot;&quot;&gt;PURPOSE
-------

This note was written to help DBAs and Support Analysts Understand Inter-Instance
Performance and Tuning in RAC.


SCOPE &amp;amp; APPLICATION
-------------------

Real Application Clusters uses the interconnect to transfer blocks and messages 
between instances.  If inter-instance performance is bad, almost all database 
operations can be delayed.  This note describes methods of identifying and 
resolving inter-instance performance issues.


TUNING INTER-INSTANCE PERFORMANCE IN RAC AND OPS
------------------------------------------------




SYMPTOMS OF INTER-INSTANCE PERFORMANCE PROBLEMS
-----------------------------------------------

The best way to monitor inter-instance performance is to take AWR or statspack 
snaps on each instance (at the same time) at regular intervals.  

If there are severe inter-instance performance issues or hung sessions, you 
may also want to run the racdiag.sql script from the following note 
to collect additional RAC specific data:

  Note 135714.1 
  Script to Collect RAC Diagnostic Information (racdiag.sql) 

The output of the script has tips for how to read the output.  

Within the AWR, statspack report, or racdiag.sql output, you can use the wait 
events and global cache statistics to monitor inter-instance performance.  It 
will be important to look for symptoms of inter-instance performance issues.  
These symptoms include:

1. The average cr block receive time will be high.  This value is calculated by
dividing the 'global cache cr block receive time' statistic by the 
'global cache cr blocks received' statistic:

	global cache cr block receive time
	----------------------------------
     	 global cache cr blocks received

Multiply this calculation by 10 to find the average number of milliseconds.  In a 
9.2 statspack report you can also use the following Global Cache Service Workload 
characteristics:

Ave receive time for CR block (ms):                        4.1

The following query can also be run to monitor the average cr block receive time 
since the last startup:

set numwidth 20
column &quot;AVG CR BLOCK RECEIVE TIME (ms)&quot; format 9999999.9
select b1.inst_id, b2.value &quot;GCS CR BLOCKS RECEIVED&quot;, 
b1.value &quot;GCS CR BLOCK RECEIVE TIME&quot;,
((b1.value / b2.value) * 10) &quot;AVG CR BLOCK RECEIVE TIME (ms)&quot;
from gv$sysstat b1, gv$sysstat b2
where b1.name = 'global cache cr block receive time' and
b2.name = 'global cache cr blocks received' and b1.inst_id = b2.inst_id ;

The average cr block receive time or current block receive time should typically be 
less than 15 milliseconds depending on your system configuration and volume, is the 
average latency of a consistent-read request round-trip from the requesting instance 
to the holding instance and back to the requesting instance. 

Please note that if you are on 9i and the global cache current block receive 
time is abnormally high and the average wait time for the 'global cache null 
to x' wait event is low (under 15ms) then you are likely hitting bug 2130923 
(statistics bug).  This is a problem in the way statstics are reported and does 
not impact performance.

More about that issue is documented in the following note:

  Note 243593.1 
  RAC: Ave Receive Time for Current Block is Abnormally High in Statspack 

2. &quot;Global cache&quot; or &quot;gc&quot; events will be the top wait event.  Some of these wait
events show the amount of time that an instance has requested a data block for a 
consistent read or current block via the global cache.  



When a consistent read buffer cannot be found in the local cache, an attempt is 
made to find a usable version in another instance. There are 3 possible outcomes, 
depending on whether any instance in the cluster has the requested data block 
cached or not: 

a) A cr block is received (i.e. another instance found or managed to produce the 
   wanted version).  The &quot;global cache cr blocks received&quot; statistic is incremented. 
b) No other instance has the block cached and therefor the requesting instance 
   needs to read from disk, but a shared lock will be granted to the requestor 
   The &quot;global cache gets&quot; statistic is incremented 
c) 9i RAC+ Only --&amp;gt; A current block is received (the current block is good enough for 
   the query ).  The &quot; global cache current blocks received&quot; statistic is 
   incremented.

In all three cases, the requesting process may wait for global cache cr request.
The view X$KCLCRST (CR Statistics) may be helpful in debugging 'global cache cr 
request' wait issues.  It will return the number of requests that were handled for 
data or undo header blocks, the number of requests resulting in the shipment of a 
block (cr or current),  and the number of times a read from disk status is returned.

It should be noted that having 'global cache' or 'gc' waits does not always
indicate an inter-instance performance issue.  Many times this wait is 
completely normal if data is read and modified concurrently on multiple
instances.  Global cache statistics should also be examined to determine if 
there is an inter-instance performance problem.

3. The GES may run out of tickets.  When viewing the racdiag.sql output 
(Note 135714.1) or querying the gv$ges_traffic_controller or 
gv$dlm_traffic_controller views, you may find that the TCKT_AVAIL shows '0'.  To 
find out the available network buffer space we introduce the concepts of tickets.  
The maximum number of tickets available is a function of the network send buffer 
size. In the case of lmd and lmon, they always buffer their messages in case of 
ticket unavailability.  A node relies on messages to come back from the remote 
node to release tickets for reuse.

4. The above information should be enough to identify an inter-instance performance
problem but additional calculations can be made to monitor inter-instance 
performance can be found in the documentation.


IDENTIFYING AND RESOLVING INTER-INSTANCE PERFORMANCE PROBLEMS
-------------------------------------------------------------

Inter-Instance performance issues can be caused by:

1. Under configured network settings at the OS.  Check UDP, or other network protocol 
settings and tune them.  See your OS specific documentation for instructions on how 
to do this.  If using UDP, make sure the parameters relating to send buffer space, 
receive buffer space, send highwater, and receive highwater are set well above the 
OS default.  The alert.log will indicate what protocol is being used.  Example:

	cluster interconnect IPC version:Oracle RDG
	IPC Vendor 1 proto 2 Version 1.0

Changing network parameters to optimal values:

 Sun (UDP Protcol) 
	UDP related OS parameters can be queried with the following command:
		ndd /dev/udp udp_xmit_hiwat
		ndd /dev/udp udp_recv_hiwat 
                ndd /dev/udp udp_max_buf 
	Set the udp_xmit_hiwat and udp_recv_hiwat to the OS maximum with:
		ndd -set /dev/udp udp_xmit_hiwat &amp;lt;value&amp;gt;
		ndd -set /dev/udp udp_recv_hiwat &amp;lt;value&amp;gt; 
                ndd -set /dev/udp udp_max_buf &amp;lt;1M or higher&amp;gt;
 IBM AIX (UDP Protocol)
	UDP related OS parameters can be queried with the following command:
		no -a
	Set the udp_sendspace and udp_recvspace to the OS maximum with:
		no -o &amp;lt;parameter&amp;gt;
 Linux (edit files)
	/proc/sys/net/core/rmem_default 
	/proc/sys/net/core/rmem_max
	/proc/sys/net/core/wmem_default
	/proc/sys/net/core/wmem_max 
 HP-UX (HMP Protocol):
	The file /opt/clic/lib/skgxp/skclic.conf contains the Hyper Messaging Protocol (HMP)
        configuration parameters that are relevant for Oracle:
	- CLIC_ATTR_APPL_MAX_PROCS Maximum number of Oracle processes. This includes
	  the background and shadow processes. It does not
	  include non-IPC processes like SQL client processes.
	- CLIC_ATTR_APPL_MAX_NQS This is a derivative of the first parameter; it will 
          be removed in the next release. For the time being, this should be set to 
          the value of CLIC_ATTR_APPL_MAX_PROCS.
	- CLIC_ATTR_APPL_MAX_MEM_EPTS Maximum number of Buffer descriptors. Oracle 
	  seems to require about 1500-5000 of them depending on the block size (8K or 
	  2K). You can choose the maximum value indicated above.
	- CLIC_ATTR_APPL_MAX_RECV_EPTS Maximum number of Oracle Ports. Typically, 
	  Oracle requires as many ports as there are processes. Thus it should be 
	  identical to CLIC_ATTR_APPL_MAX_PROCS.
	- CLIC_ATTR_APPL_DEFLT_PROC_SENDS Maximum number of outstanding sends. You 
	  can leave it at the default value of 1024.
	- CLIC_ATTR_APPL_DEFLT_NQ_RECVS Maximum number of outstanding receives on a 
	  port or buffer. You can leave it at the default value of 1024.
 HP-UX (UDP Protcol):
	Not tunable before HP-UX 11i Version 1.6
      For HP-UX 11i Version 1.6 or later be able to use below command to set socket_udp_rcvbuf_default &amp;amp; socket_udp_sndbuf_default 
      ndd -set /dev/udp socket_udp_rcvbuf_default 1048576
      echo $?
      ndd -set /dev/udp socket_udp_sndbuf_default 1048576
      echo $? 
 HP Tru64 (RDG Protocol):
	RDG related OS parameters are queried with the following command:
		/sbin/sysconfig -q rdg 
	The most important parameters and settings are:
	- rdg_max_auto_msg_wires - MUST be set to zero.
	- max_objs - Should be set to at least &amp;lt;# of Oracle processes * 5&amp;gt; and up to 
	  the larger of 10240 or &amp;lt;# of Oracle processes * 70&amp;gt;. Example: 5120
	- msg_size - Needs to set to at least &amp;lt;db_block_size&amp;gt;, but we recommend 
	  setting it to 32768, since Oracle9i supports different block sizes for each 
	  tablespace.
	- max_async_req - Should be set to at least 100 but 256+ may provide better 
	  performance.
	- max_sessions - Should be set to at least &amp;lt;# of Oracle processes + 20&amp;gt;, 
	  example: 500	
 HP TRU64 (UDP Protocol):
	UDP related OS parameters are queried with the following command:
		/sbin/sysconfig -q udp 
	udp_recvspace 
	udp_sendspace 


2. If the interconnect is slow, busy, or faulty, you can look for dropped packets,
retransmits, or cyclic redundancy check errors (CRC).  You can use netstat commands
to check the networks.  On Unix, check the man page for netstat for a list of options.  
Also check the OS logs for any errors and make sure that inter-instance traffic is 
not routed through a public network.  


With most network protcols, you can use 'oradebug ipc' to see which interconnects 
the database is using:

  SQL&amp;gt; oradebug setmypid
  SQL&amp;gt; oradebug ipc

This will dump a trace file to the user_dump_dest.  The output will look something 
like this:

SSKGXPT 0x1a2932c flags SSKGXPT_READPENDING     info for network 0
        socket no 10    IP 172.16.193.1         UDP 43749
        sflags SSKGXPT_WRITESSKGXPT_UP  info for network 1
        socket no 0     IP 0.0.0.0      UDP 0...

So you can see that we are using IP 172.16.193.1 with a UDP protocol.


3. A large number of processes in the run queue waiting for CPU or scheduling
delays.  If your CPU has limited idle time and your system typically processes 
long-running queries, then latency may be higher.  Ensure that LMSx processes get 
enough CPU.

4. Latency can be influenced by a high value for the DB_FILE_MULTIBLOCK_READ_COUNT 
parameter. This is because a requesting process can issue more than one request 
for a block depending on the setting of this parameter.  


ADDITIONAL RAC AND OPS PERFORMANCE TIPS
---------------------------------------

1. Poor SQL or bad optimization paths can cause additional block gets via the
interconnect just as it would via I/O.  

2. Tuning normal single instance wait events and statistics is also very 
important.

3. A poor gc_files_to_locks setting can cause problems.  In almost all cases 
in RAC, gc_files_to_locks does not need to set at all.  


4. The use of locally managed tablespaces (instead of dictionary managed) with 
the 'SEGMENT SPACE MANAGEMENT AUTO' option can reduce dictionary and freelist 
block contention.  Symptoms of this could include 'buffer busy' waits.  See the 
following notes for more information:

  Note 105120.1
  Advantages of Using Locally Managed vs Dictionary Managed Tablespaces 

  Note 103020.1 
  Migration from Dictionary Managed to Locally Managed Tablespaces 

  Note 180608.1
  Automatic Space Segment Management in RAC Environments


Following these recommendations can help you achieve maximum performance in
your clustered environment.


RELATED DOCUMENTS
-----------------
Oracle Documentation
Note 188135.1 - Documentation Index for Real Application Clusters and Parallel Server 
Note 94224.1 FAQ- STATSPACK COMPLETE REFERENCE 
Note 135714.1 - Script to Collect RAC or OPS Diagnostic Information 
Note 157766.1 - Sessions Wait Forever for 'global cache cr request' Wait Event...
Note 151051.1 - PARAMETER:CLUSTER_INTERCONNECTS
Note 120650.1 - Init.ora Parameter &quot;OPS_INTERCONNECTS&quot; Reference Note

&lt;/FONT&gt;&lt;/PRE&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-825-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-825-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/RAC&quot;&gt;RAC&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/828&quot; &gt;oracle RAC 10.2.0.1 -&amp;gt; 10.2.0.5 패치&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/825&quot; &gt;UDP Buffer Tuning 기법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/660&quot; &gt;RAC 에서 특정 Instance만 성능이 느린 이유&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/04/14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/387&quot; &gt;RAC(OPS) 환경하에서 양쪽 Node의 archived log file을 RMAN을 사용하여 동시에 BACKUP 받는 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/02/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/335&quot; &gt;Linux / FireWire 환경에 Oracle RAC 10g Release 2 Cluster 설치하기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/12/23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/333&quot; &gt;RAC Cluster/Database 구성의 검증&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/12/23&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>RAC</category>
			<category>inter-connect</category>
			<category>oracle</category>
			<category>RAC</category>
			<category>udp</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/825</guid>
			<comments>http://theone79.tistory.com/825#entry825comment</comments>
			<pubDate>Fri, 11 May 2012 10:49:52 +0900</pubDate>
		</item>
		<item>
			<title>세마포어에 대하여</title>
			<link>http://theone79.tistory.com/824</link>
			<description>&lt;P&gt;*&amp;nbsp; 유닉스는 내부 프로세스 간의 커뮤니케이션을 위하여 세마포어를 사용한다.&lt;br /&gt;&amp;nbsp;세마포어는 유닉스에 의해서 증감되는 정수(integer) 값 이다. 하나의&lt;br /&gt;&amp;nbsp;세마포어에 대해서 하나의 프로세스만이 작업을 할 수 있도록 하여 프로세스&lt;br /&gt;&amp;nbsp;간의 동기화를&amp;nbsp; 유지하는데 이용된다.&amp;nbsp; 다른 프로세스가 사용 중인 세마포어를&lt;br /&gt;&amp;nbsp;이용하고자 하는&amp;nbsp; 프로세스는 세마포어의 상태가 증가되거나 0 이 될 때 까지&lt;br /&gt;&amp;nbsp;기다리게 된다.&amp;nbsp; (옵션에 따라 다를 수 있다). &lt;/P&gt;
&lt;P&gt;*&amp;nbsp; 유닉스에서의 세마포어는 한개 씩 이용되는 경우는 거의 없기 때문에 보통 &lt;br /&gt;&amp;nbsp;세마포어 집합으로 관리된다. 유닉스 커널이 설정될 때 시스템에서 사용&lt;br /&gt;&amp;nbsp;가능한&amp;nbsp; 세마포어의 최대 갯수와 세마포어 집합 당 최대 세마포어 갯수 및 할당&lt;br /&gt;&amp;nbsp;가능한 세마포어 집합의 최대 갯수가 설정된다. 이 값들은 유닉스 커널을 다시&lt;br /&gt;&amp;nbsp;만들고&amp;nbsp; 시스템을 리부팅 하여야만 변경이 가능하다. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;오라클과 세마포어&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 오라클은 백그라운드 프로세스들 간의 Concurrency 를 조절하기 위하여 &lt;br /&gt;&amp;nbsp;세마포어를 사용한다.&amp;nbsp; 그리고 Fast(Shared Memory) Driver 가 사용되는 경우&lt;br /&gt;&amp;nbsp;유저 프로세스와&amp;nbsp; 쉐도우 프로세스 간의 Two-Task Communication 에도&lt;br /&gt;&amp;nbsp;사용된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;사용 중인 세마포어&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 현재 시스템에 할당된 세마포어를 확인하는 명령은 다음과 같다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; # ipcs -sb&lt;/P&gt;
&lt;P&gt;&amp;nbsp;이 명령은 할당된 모든 세마포어 집합과 ID Number, Owner, 각 집합의 &lt;br /&gt;&amp;nbsp;세마포어 수 등을 보여준다.&amp;nbsp; 때때로 비정상적으로 종료된 오라클 프로세스에 &lt;br /&gt;&amp;nbsp;의해서&amp;nbsp; 점유된&amp;nbsp; 리소스가 릴리스 되지 않고 남아 있는 경우가 있다.&amp;nbsp; 만약,&lt;br /&gt;&amp;nbsp;오라클이 Shutdown 상태인데도 불구하고&amp;nbsp; ipcs&amp;nbsp; -sb 를 통해서 보았을 때&lt;br /&gt;&amp;nbsp;오라클이 점유한 세마포어가 사용중으로 나온다면 그것들을 IPCRM명령으로 &lt;br /&gt;&amp;nbsp;Free 시켜야 한다. &lt;br /&gt;&amp;nbsp;즉,&amp;nbsp; 오라클이 할당한 세마포어 집합에 대하여 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #ipcrm -s ID&amp;nbsp;&amp;nbsp; (ID는 ipcs 에서 출력됨) &lt;/P&gt;
&lt;P&gt;&amp;nbsp;명령으로 릴리스 시킨다.&amp;nbsp;&amp;nbsp; 아니면 시스템을 리부팅 하여도 된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;데이타베이스의 기동&amp;gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; 오라클은 백그라운드 프로세스에 필요한 모든 세마포어를 데이타베이스&lt;br /&gt;&amp;nbsp;기동시에 할당한다. init&amp;lt;SID&amp;gt;.ora 화일의 Processes 파라미터는 오라클에서&lt;br /&gt;&amp;nbsp;할당할 최대 세마포어&amp;nbsp; 갯수를 결정한다. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;?가장 흔하게 발생하는 에러는 데이타베이스 기동시에 나타나는 다음과 같은&lt;br /&gt;&amp;nbsp;에러이다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-7279&amp;nbsp; :&amp;nbsp; spcre:semget error, unable to get first semaphore set&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 시스템은 한 집합내에 가장 많은 세마포어를 가진 것이나&amp;nbsp; Processes 변수에&lt;br /&gt;&amp;nbsp;의해 설정되는 세마포어 갯수 중 적은 값을 가진 첫번 째 세마포어 집합을&lt;br /&gt;&amp;nbsp;할당하려고&amp;nbsp; 한다.&amp;nbsp; 만약, 시스템에 설정된 세마포어가 부족하거나, 세마포어가&lt;br /&gt;&amp;nbsp;이미 너무&amp;nbsp; 많이&amp;nbsp; 사용중이거나, 사용중이지 않은 세마포어 집합이 세마포어를&lt;br /&gt;&amp;nbsp;너무 많이&amp;nbsp; 갖고 있는가를 체크해 보고 그렇지 않다면 시스템에 충분한&lt;br /&gt;&amp;nbsp;세마포어를&amp;nbsp; 할당하도록&amp;nbsp; 한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;?설정된 세마포어가 없거나 모든 세마포어가 이미 할당된 상태라면 다음과&lt;br /&gt;&amp;nbsp;같은 에러가 발생한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-7251&amp;nbsp; :&amp;nbsp; spcre:semget error, could not allocate any semaphores&lt;/P&gt;
&lt;P&gt;&amp;nbsp;?첫번째 세마포어 집합이 할당되었지만 두번째 세마포어를 할당받지 못하면&lt;br /&gt;&amp;nbsp;다음과 같은 에러가 발생한다.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-7252&amp;nbsp; :&amp;nbsp; spcre:semget error, could not allocate semaphores&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; 죽어있는 오라클 프로세스에 의해서 세마포어가 점유되어 있는가를 확인하고&lt;br /&gt;&amp;nbsp;만약 그런 문제가 아니라면 더 많은 세마포어를 할당함으로써&amp;nbsp; 문제를 해결할&lt;br /&gt;&amp;nbsp;수 있다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;shutdown abort&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; Shutdown abort 명령이 내려지면 사용자 Process가 끝나기를 기다리지 않고&lt;br /&gt;&amp;nbsp;오라클 백그라운드 프로세스는 죽게되고 그것에 의해서 점유된 세마포어는&lt;br /&gt;&amp;nbsp;Release 된다. 사용자는 세마포어를 늘리거나 줄여서 데이타베이스에&lt;br /&gt;&amp;nbsp;작업을요구할 때야 비로소 데이타베이스가 Shutdown 되었음을 알게 된다. 이&lt;br /&gt;&amp;nbsp;때&amp;nbsp; 사용자에 의한 세마포어 변경 요구는 실패하게 되며&amp;nbsp; 유저 프로세스와&lt;br /&gt;&amp;nbsp;오라클 Shadow Process도 함께 죽게 된다. 그러면서 다음과 같은 에러가&lt;br /&gt;&amp;nbsp;발생한다. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-7264&amp;nbsp; :&amp;nbsp; spwat:semop error, unable to decrement semaphore&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-7265&amp;nbsp; :&amp;nbsp; sppst:semop error, unable to increment semaphore&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MIPS RISC 기반의 유닉스 시스템&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DEC RISC Ultrix, MIPS machine 같은 MIPS RISC 기반의 유닉스 시스템의&lt;br /&gt;&amp;nbsp;경우에는 오라클은 Startup시에 Latching을 위하여 별도의 세마포어를&lt;br /&gt;&amp;nbsp;할당한다. 오라클은 이 때 할당된 세마포어를 사용자가 데이타베이스에 접속할&lt;br /&gt;&amp;nbsp;때 Latch 로 사용한다. 프로세스가 죽게되면 프로세스에 의해서 변경된&lt;br /&gt;&amp;nbsp;세마포어는 원래의 상태로 되돌아 간다. 따라서 접속하는 모든 프로세스는 Undo&lt;br /&gt;&amp;nbsp;Structure를 할당할 수 있어야 하는데 Undo Structure가 충분하지 못하면&lt;br /&gt;&amp;nbsp;다음과 같은 에러가 발생한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-9702&amp;nbsp; :&amp;nbsp; sem_acquire: cannot acquire latch semaphore&lt;/P&gt;
&lt;P&gt;&amp;nbsp;해결방법은 Undo Structure가 사용가능할 때까지 기다리든지 시스템의 Undo&lt;br /&gt;&amp;nbsp;Structure 의 최대값(SEMMNU)를 늘리면 된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Fast Driver의 사용&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Fast Driver에 의해서 데이타베이스에 접속되는 경우에는 Shared Memory&lt;br /&gt;&amp;nbsp;Buffer에 대한 사용허가를 관리하기 위하여 세마포어가 사용된다. 이 때 하나의&lt;br /&gt;&amp;nbsp;접속되는 세션마다 3개의 세마포어로 구성된 세마포어 집합이 할당된다. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;?시스템의 세마포어가 모두 할당되었다면 다음과 같은 에러가 발생한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORA-2721&amp;nbsp; :&amp;nbsp; osnseminit: cannot create semaphore set&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 이 경우에는 이용가능한 세마포어가 생길 때 까지 기다려야 한다. 그리고&lt;br /&gt;&amp;nbsp;비정상적으로&amp;nbsp; 프로세스를 종료하는 경우에는 할당된 세마포어가 Release되지&lt;br /&gt;&amp;nbsp;못하며 어떤 프로세스가 어떤&amp;nbsp; 세마포어를 사용하는가를 구분하기 힘드므로&lt;br /&gt;&amp;nbsp;사용상의 주의가 필요하다. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;세마포어 사용 계획&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;세마포어 커널 파라미터의 이름, 조정 방법 및 커널 재생성 방법은 시스템에&lt;br /&gt;&amp;nbsp;따라서 다르다.&amp;nbsp; 필요한 세마포어의 갯수는 다음의 공식으로 구할 수 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; proc(init&amp;lt;SID&amp;gt;.ora에서의 processes 파라미터)&lt;br /&gt;&amp;nbsp;&amp;nbsp; +&amp;nbsp; test(MIPS RISC 프로세서를 쓰는 경우는 1, 그 외에는 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp; + 3 * f(fast driver connection 갯수)&lt;br /&gt;&amp;nbsp;&amp;nbsp; + sys(오라클 외의 프로그램에서 필요한 세마포어 수)&lt;br /&gt;&amp;nbsp; ------------------------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp; = tot(필요한 최소한의 세마포어 수)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 세마포어의 최대 갯수를 지정하는 파라미터(보통 SEMMNS)는 최소한 위에서&lt;br /&gt;&amp;nbsp;계산한&amp;nbsp; 값보다 커야 한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 일반적으로 하나의 집합마다 가능한 세마포어의 최대 갯수(보통 SEMMSL)는&lt;br /&gt;&amp;nbsp;10~25 정도이다. fast driver를 많이 쓰는 경우라면 세마포어 집합의 갯수가 더&lt;br /&gt;&amp;nbsp;많이&amp;nbsp; 필요하다.&lt;br /&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-824-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-824-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/OS&quot;&gt;OS&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/OS/UNIX%20공통&quot;&gt;UNIX 공통&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/824&quot; &gt;세마포어에 대하여&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/671&quot; &gt;linux/unix date로 어제(yesterday) 날짜 출력&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2010/05/05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/548&quot; &gt;Linux find 명령어 완전 정복 가이드&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2009/10/07&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>UNIX 공통</category>
			<category>unix</category>
			<category>세마포어</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/824</guid>
			<comments>http://theone79.tistory.com/824#entry824comment</comments>
			<pubDate>Fri, 11 May 2012 10:43:34 +0900</pubDate>
		</item>
		<item>
			<title>화일의 손상 여부를 확인하는 dbv 사용 방법</title>
			<link>http://theone79.tistory.com/823</link>
			<description>&lt;P&gt;제목 : 화일의 손상 여부를 확인하는 dbv 사용 방법&lt;br /&gt;==============================================&lt;/P&gt;
&lt;P&gt;dbv 란 database verify 의 약자로, 7.3.2 부터 지원되는 유틸리티입니다.&lt;br /&gt;dbv 는 data 나 index block 이 어느 정도 신뢰성이 있는지, 손상(corruption)의 &lt;br /&gt;유무에 대한 정도를 점검해 줍니다. dbv 는 block level 까지만 점검하기 &lt;br /&gt;때문에, 'ANALYZE TABLE .. VALIDATE STRUCTURE CASCADE' 와는 달리 index 와 &lt;br /&gt;data block 간의 일치성 점검은 수행하지는 않습니다. &lt;/P&gt;
&lt;P&gt;(dbv 는 analyze 시 table lock(TM) 이 걸리는 문제 때문에, analyze 할 수&lt;br /&gt;없는 상황에서 유용하게 사용될 수 있습니다.)&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;사용 방법&lt;br /&gt;~~~~~~~~&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Unix:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbv FILE [options]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; Windows NT: DBVERFxx FILE [options]&amp;nbsp; (xx 는 Oracle server ersion)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (즉, Oracle 8.0 에서는DBVERF80)&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 옵션:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Keyword&amp;nbsp;&amp;nbsp; Description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Default)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File to Verify&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (NONE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start Block&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (First Block of File)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Block&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Last Block of File)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLOCKSIZE Logical Block Size (2048)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOGFILE&amp;nbsp;&amp;nbsp; Output Log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (NONE)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FEEDBACK&amp;nbsp; Display Progress&amp;nbsp;&amp;nbsp; (0)&lt;/P&gt;
&lt;P&gt;1. dbv 유틸리티는 data file 에 대해서만 사용될 수 있습니다.&lt;br /&gt;redo log 나 control file 에 대해서는 작업할 수 없습니다.&lt;/P&gt;
&lt;P&gt;2. raw device 에 대해서는 직접 dbv 를 수행할 수 없고, 다음과 같이&lt;br /&gt;symbolic link 를 사용해야 합니다. 또한, link name 은 반드시&lt;br /&gt;확장자(extension)를 주십시오&lt;/P&gt;
&lt;P&gt;예) ln -s /dev/rvol/tools01 /user2/oraclerc/mytools01.dbf&lt;/P&gt;
&lt;P&gt;3. raw device 에 대해서는&amp;nbsp; START 와 END 를 사용해야 합니다.&lt;br /&gt;end 값을 지나치게 크게 주면, file 의 마지막 block 을 corrupt 로&lt;br /&gt;report 할 수 있으니, 가급적 analyze 를 이용하십시오.&lt;/P&gt;
&lt;P&gt;예) START=1 END=&amp;lt;num blocks -1&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;주의 사항&lt;br /&gt;~~~~~~~~&lt;br /&gt;1. page number 는 해당 화일 내의 database block number 입니다.&lt;/P&gt;
&lt;P&gt;2. 'Marked Corrupt' 나 'Failing' 이 있다면, 다시 dbv 를 수행하여&lt;br /&gt;일시적인 현상인지 확인합니다. &lt;br /&gt;(Datafile들은 db 가 open 된 상태이고, read-only 일 때 정확한 결과를&lt;br /&gt;얻을 수 있습니다.)&lt;/P&gt;
&lt;P&gt;만약, 재수행 시에도 위 에러가 발생한다면, 어떤 block 인지 찾아서 index&lt;br /&gt;이면 ANALYZE INDEX .. VALIDATE STRUCTURE, table 이면 ANALYZE TABLE ..&lt;br /&gt;VALIDATE STRUCTURE CASCADE 를 하십시오.&lt;/P&gt;
&lt;P&gt;참고) object 찾는 방법은 FILE ID # 6, BLOCK # 82 일때,&lt;/P&gt;
&lt;P&gt;svrmgrl&lt;br /&gt;connect internal;&lt;br /&gt;select * from dba_extents &lt;br /&gt;where file_id = 6 and 82 between block_id and block_id + blocks -1;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;예) dbv 의 결과&lt;/P&gt;
&lt;P&gt;$ dbv file=/mnt3/rctest73/app/oracle/oradata/RC73/tools01.df&lt;/P&gt;
&lt;P&gt;DBVERIFY: Release 7.3.4.0.0 - Production on Mon Nov 23 13:51:14 1998&lt;/P&gt;
&lt;P&gt;Copyright (c) Oracle Corporation 1979, 1996.&amp;nbsp; All rights reserved.&lt;/P&gt;
&lt;P&gt;DBVERIFY - Verification starting : FILE =&lt;br /&gt;/mnt3/rctest73/app/oracle/oradata/RC7f&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;DBVERIFY - Verification complete&lt;/P&gt;
&lt;P&gt;Total Pages Examined&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 15360&lt;br /&gt;Total Pages Processed (Data) : 3086&lt;br /&gt;Total Pages Failing&amp;nbsp;&amp;nbsp; (Data) : 0&lt;br /&gt;Total Pages Processed (Index): 2385&lt;br /&gt;Total Pages Failing&amp;nbsp;&amp;nbsp; (Index): 0&lt;br /&gt;Total Pages Empty&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9201&lt;br /&gt;Total Pages Marked Corrupt&amp;nbsp;&amp;nbsp; : 0&lt;br /&gt;Total Pages Influx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;br /&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-823-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-823-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/823&quot; &gt;화일의 손상 여부를 확인하는 dbv 사용 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/822&quot; &gt;Oracle 데이터베이스 신규 취약점 주의&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/811&quot; &gt;오라클 12년도 교육 과정&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/796&quot; &gt;Oracle Shared Server 튜닝&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/1&quot; &gt;쿼리문이 제대로 Index를 타는지 확인하는 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/03/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/2&quot; &gt;Oracle ERP에서 사용하는 DB관련 작업&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2007/10/22&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>ORACLE</category>
			<category>dbv</category>
			<category>oracle</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/823</guid>
			<comments>http://theone79.tistory.com/823#entry823comment</comments>
			<pubDate>Fri, 11 May 2012 10:40:40 +0900</pubDate>
		</item>
		<item>
			<title>Oracle 데이터베이스 신규 취약점 주의</title>
			<link>http://theone79.tistory.com/822</link>
			<description>&lt;P&gt;cve-2012-1675개요&lt;/P&gt;
&lt;P&gt;2012년 5월 1일, Oracle사는 자사 보안업데이트 발표 체계인 Critical Patch Update(CPU)를 통해 패치가 되지 아니한 Oracle 데이터베이스 제품 취약점에 대한 임시 조치 권고 발표[1]&lt;br /&gt;CPU를 통해 패치되지 아니한 취약점에 대해 개념증명코드(PoC)가 공개되어 패치 전에 취할 수 있는 조치에 대한 보안권고&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;설명&lt;/P&gt;
&lt;P&gt;TNS listener와 관련된 취약점으로 원격에서 사용자 인증 없이 데이터베이스에 대한 악용이 가능함&lt;br /&gt;※ TNS(Transparent Network Substrate) : Oracle에서 개발한 기술로 서로 다른 Network 구성을 가지고 있는 Client/Server 또는 Server/Server 간에도 Data의 전송을 가능하게 해주는 Network 기술&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;해당 소프트웨어&lt;/P&gt;
&lt;P&gt;Oracle Database 11g Release 2, versions 11.2.0.2, 11.2.0.3&lt;br /&gt;Oracle Database 11g Release 1, version 11.1.0.7&lt;br /&gt;Oracle Database 10g Release 2, versions 10.2.0.3, 10.2.0.4, 10.2.0.5&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;임시 조치 방안&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Real Application Clusters(RAC) 사용자는 My Oracle Support Note 1340831.1 참고 [2]&lt;br /&gt;※ RAC(Real Application Clusters) : Oracle 데이터베이스 환경에서 클러스터링과 고가용성 기능을 가능케 하는 추가 기능&lt;br /&gt;Real Application Clusters(RAC) 미사용자는 My Oracle Support Note 1453883.1 참고 [3]&lt;br /&gt;상기 문서를 검토하고 벤더사 및 유지보수업체와 협의/검토 후 조치 요망&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;기타 문의사항&lt;/P&gt;
&lt;P&gt;&amp;nbsp;한국인터넷진흥원 인터넷침해대응센터: 국번없이 118 &lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[참고사이트]&lt;br /&gt;[1] &lt;A href=&quot;http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html&quot;&gt;http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html&lt;/A&gt;&lt;br /&gt;[2] &lt;A href=&quot;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1340831.1&quot;&gt;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1340831.1&lt;/A&gt;&lt;br /&gt;[3] &lt;A href=&quot;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1453883.1&quot;&gt;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1453883.1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;br /&gt;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-822-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-822-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/823&quot; &gt;화일의 손상 여부를 확인하는 dbv 사용 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/822&quot; &gt;Oracle 데이터베이스 신규 취약점 주의&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/811&quot; &gt;오라클 12년도 교육 과정&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/796&quot; &gt;Oracle Shared Server 튜닝&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2011/12/13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/1&quot; &gt;쿼리문이 제대로 Index를 타는지 확인하는 방법&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2008/03/27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/2&quot; &gt;Oracle ERP에서 사용하는 DB관련 작업&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2007/10/22&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>ORACLE</category>
			<category>cve-2012-1675</category>
			<category>oracle</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/822</guid>
			<comments>http://theone79.tistory.com/822#entry822comment</comments>
			<pubDate>Thu, 10 May 2012 10:42:21 +0900</pubDate>
		</item>
		<item>
			<title>Oracle Wait Event 모니터링</title>
			<link>http://theone79.tistory.com/821</link>
			<description>&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Oracle Wait Event &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;모니터링 &lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;&quot;&gt;&lt;a href=&quot;http://theone79.tistory.com/attachment/cfile30.uf@1603F4504FA0C017031145.doc&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/doc.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Oracle_Wait_Event_모니터링.doc&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;글&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;?xml:namespace prefix = st1 /&gt;&lt;st1:PersonName w:st=&quot;on&quot;&gt;안진철&lt;/st1:PersonName&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt; (&lt;/FONT&gt;&lt;A href=&quot;mailto:jcahn@warevalley.com&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;U&gt;jcahn@warevalley.com&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;現 &lt;/FONT&gt;&lt;SPAN&gt;&lt;A href=&quot;http://www.warevalley.com/&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;&lt;U&gt;㈜웨어밸리&lt;/U&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT color=#000000&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;책임 컨설턴트&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;前&lt;SPAN&gt; LG-EDS &lt;/SPAN&gt;기술 연구부문&lt;SPAN&gt; DB &lt;/SPAN&gt;팀&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;- &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;솔루션 컨설팅 경력&lt;SPAN&gt; 6&lt;/SPAN&gt;년&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;WIDTH: 50%; BACKGROUND: #cccccc; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm&quot; border=0 cellSpacing=0 cellPadding=0 width=&quot;50%&quot; Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #ece9d8; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8; PADDING-TOP: 0cm&quot;&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;연재 순서&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 12pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto&quot; align=left&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[1] Oracle Wait Event &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;모니터링&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;(2003&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 28&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;)&lt;br /&gt;&lt;/FONT&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning01.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[2] Enqueue&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;와 Latch (2003&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 2&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 12&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;br /&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning02.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[3] Shared Pool &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;관련 Wait Event (2003&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 2&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 26&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;br /&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning03.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[4] buffer cache &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;관련 Wait Event (2003&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 3&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 12&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;br /&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning04.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[5] redo log &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;관련 Wait Event (2003&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 3&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 26&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;br /&gt;&lt;A href=&quot;http://www.oracle.com/technology/global/kr/pub/columns/dbtuning05.html&quot;&gt;&lt;U&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;[6] Top SQL &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;튜닝 (2003&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;년 4&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;월 9&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;&lt;SPAN&gt;일)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;WIDTH: 50%; BACKGROUND: #cccccc; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm&quot; border=0 cellSpacing=0 cellPadding=0 width=&quot;50%&quot; Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #ece9d8; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8; PADDING-TOP: 0cm&quot;&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;[1] Oracle Wait Event &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;모니터링&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;흔히&lt;SPAN&gt; DBA&lt;/SPAN&gt;를&lt;SPAN&gt; 3D&lt;/SPAN&gt;업종이라고 부르는 이유 가운데 하나는 몸은 고달픈데 반해 그 성과가 별로 티가 나지 않는다는 사실 때문일 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;실제로&lt;SPAN&gt;, DBA&lt;/SPAN&gt;가 수행해야 하는 일상적인 관리 업무들은 몸은 다소 피곤하게 만들지 몰라도 어느 정도 경험이 쌓이면 그리 부담을 주는 일은 아니다&lt;SPAN&gt;. &lt;/SPAN&gt;우리가 한단계 업그레이드된 전문가로서 인정 받는&lt;SPAN&gt; DBA&lt;/SPAN&gt;가 되기 위해서는 장애상황 혹은 유사 장애 상황에서&lt;SPAN&gt; DB &lt;/SPAN&gt;모니터링 작업을 수행하고 분석할 수 있어야 한다&lt;SPAN&gt;. &lt;/SPAN&gt;시스템이 갑자기 느려지고 업무가 마비되는 상황에 맞닥뜨렸을 때 문제의 원인이 무엇인지를 집어낼 수 있는 능력이 있어야 하며 최소한 오라클의 문제인지 아닌지를 판단할 수는 있어야 몸으로 야간작업이나 때우는&lt;SPAN&gt; DBA&lt;/SPAN&gt;가 아니라 조직에 없어서는 안될 전문가로서의 나의 존재가치를 인정 받을 수 있을 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;이 글에서는 오라클&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;에 대하여 간단히 알아보고 일시적인 성능저하 상황에서&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;를 모니터링하고 그 원인을 찾아가는 방법에 대하여 다루어 보고자 한다&lt;SPAN&gt;. &lt;/SPAN&gt;짧은 지면 위에 다룰 수 있는 내용도 제한되어 있고 글쓴이의 지식 또한 일천하지만 오라클 전문가가 되기 위해 같은 길을 가고 있는 동료로서 가진 지식 몇 가지 공유한다는 취지로 이 글을 쓴다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;오라클의&lt;SPAN&gt; Wait Event &lt;/SPAN&gt;정보는&lt;SPAN&gt; V$SYSTEM_EVENT, V$SESSION_EVENT, V$SESSION_WAIT &lt;/SPAN&gt;등이 있는데&lt;SPAN&gt;, &lt;/SPAN&gt;이 가운데&lt;SPAN&gt; V$SESSION_WAIT&lt;/SPAN&gt;는 각 세션이 현재&lt;SPAN&gt; Waiting &lt;/SPAN&gt;하고 있는&lt;SPAN&gt; Event&lt;/SPAN&gt;나 마지막으로&lt;SPAN&gt; Wait&lt;/SPAN&gt;한&lt;SPAN&gt; Event &lt;/SPAN&gt;정보를 보관하고 있으며&lt;SPAN&gt;, V$SYSTEM_EVENT&lt;/SPAN&gt;와&lt;SPAN&gt; V$SESSION_EVENT&lt;/SPAN&gt;는 시스템이&lt;SPAN&gt; Startup&lt;/SPAN&gt;된 이후 각각 시스템 전체&lt;SPAN&gt;, &lt;/SPAN&gt;혹은 세션별로 발생한&lt;SPAN&gt; Wait Event &lt;/SPAN&gt;정보를 누적하여 기록하고 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;오라클의&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;는 성격에 따라&lt;SPAN&gt; Network&lt;/SPAN&gt;교신이나&lt;SPAN&gt; IO&lt;/SPAN&gt;를 위해 대기하는 일상적인&lt;SPAN&gt; Wait&lt;/SPAN&gt;와 특정 자원에 대해 여러 프로세스가 동시에 액세스하고자 할 때 발생하는&lt;SPAN&gt; Wait, &lt;/SPAN&gt;별달리 할 일이 없어 대기하고 있는&lt;SPAN&gt; Idle Wait &lt;/SPAN&gt;등 세가지 유형으로 구분할 수 있는데 그 유형에 따라 해석방법도 달라진다&lt;SPAN&gt;. &lt;/SPAN&gt;일단&lt;SPAN&gt;, Idle Wait&lt;/SPAN&gt;는 일반적인 관심의 대상에서 제외되며&lt;SPAN&gt; IO&lt;/SPAN&gt;나&lt;SPAN&gt; Network &lt;/SPAN&gt;관련&lt;SPAN&gt; Wait&lt;/SPAN&gt;는 작업량이 증가하면 같이 증가하는&lt;SPAN&gt; Wait&lt;/SPAN&gt;이므로 전체 서비스 시간&lt;SPAN&gt;(CPU time)&lt;/SPAN&gt;과 비교하여 상대적으로 평가해야 하며 총&lt;SPAN&gt; Wait time&lt;/SPAN&gt;보다는 평균&lt;SPAN&gt; Wait Time&lt;/SPAN&gt;에 관심을 두고 분석을 해야 할 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;시스템 자원에 대한&lt;SPAN&gt; Wait&lt;/SPAN&gt;는 데이터베이스 서버 튜닝시 가장 주된 관심 대상이 되며 이들&lt;SPAN&gt; Wait&lt;/SPAN&gt;에 대해서는 평균&lt;SPAN&gt; Wait Time&lt;/SPAN&gt;뿐만 아니라 총&lt;SPAN&gt; Wait Time&lt;/SPAN&gt;에도 관심을 가지고 분석해야 할 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;유형별로 대표적인&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;를 살펴본다면 아래와 같다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;[&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;주요&lt;SPAN&gt; Wait Event]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: #cccccc 1pt outset; BORDER-LEFT: #cccccc 1pt outset; WIDTH: 656px; BACKGROUND: white; HEIGHT: 461px; BORDER-TOP: #cccccc 1pt outset; BORDER-RIGHT: #cccccc 1pt outset; mso-cellspacing: .7pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt; mso-border-alt: outset #CCCCCC .75pt&quot; border=1 cellSpacing=1 cellPadding=0 width=656 Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 90pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #cccccc; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=120&gt;
&lt;P style=&quot;TEXT-ALIGN: center; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=center&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;구분&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; BACKGROUND: #cccccc; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: center; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=center&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;이벤트명&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; BACKGROUND: #cccccc; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: center; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=center&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;설 명&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 1&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 90pt; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; rowSpan=2 width=120&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;일상적인&lt;SPAN&gt; Wait Event &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;db file scattered read&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Full Scan&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;시 &lt;SPAN&gt;OS&lt;/SPAN&gt;에&lt;SPAN&gt; I/O&lt;/SPAN&gt;를 요청해놓고 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 2&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;db file sequential read&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Index Scan&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;시&lt;SPAN&gt; OS&lt;/SPAN&gt;에&lt;SPAN&gt; I/O&lt;/SPAN&gt;를 요청해놓고 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 3&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 90pt; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; rowSpan=3 width=120&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;(IO, Network)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;log file sync&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;변경&lt;SPAN&gt; log buffer&lt;/SPAN&gt;를&lt;SPAN&gt; log file&lt;/SPAN&gt;에 반영하는 동안 대기&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 4&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;DFS lock handle&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;OPS &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;환경에서 노드간 분산&lt;SPAN&gt; Lock &lt;/SPAN&gt;교환에 따른 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 5&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;global cache cr request&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;OPS &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;환경에서 노드간&lt;SPAN&gt; Buffer Block &lt;/SPAN&gt;교환에 의한 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 6&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 90pt; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; rowSpan=7 width=120&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;자원 경합에 따른&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt; &lt;br /&gt;Wait Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;enqueue&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Type&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;에 따라 세분화&lt;SPAN&gt; (24&lt;/SPAN&gt;개의&lt;SPAN&gt; enqueue type (9i))&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 7&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;latch free&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Name&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;에 따라 세분화&lt;SPAN&gt; (239&lt;/SPAN&gt;개의&lt;SPAN&gt; latch&lt;/SPAN&gt;가 존재&lt;SPAN&gt; (9i))&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 8&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;buffer busy waits&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;동일블록에 대한 동시 액세스에 따른 경합&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 9&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;free buffer waits&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;free buffer&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;를 할당위해&lt;SPAN&gt; DBWR&lt;/SPAN&gt;의&lt;SPAN&gt; Write&lt;/SPAN&gt;를 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 10&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Log buffer space&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Log buffer&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;를 할당 받기 위해&lt;SPAN&gt; LGWR&lt;/SPAN&gt;의&lt;SPAN&gt; write&lt;/SPAN&gt;를 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 11&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;library cache lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;SGA&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;내의&lt;SPAN&gt; library cache&lt;/SPAN&gt;를 참조하기 위한 대기&lt;SPAN&gt;(&lt;/SPAN&gt;검색&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 12&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;row cache lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;SGA&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;내의&lt;SPAN&gt; dictionary cache&lt;/SPAN&gt;를 참조하기 위한 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 13&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 90pt; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; rowSpan=2 width=120&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Idle Event&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;SQL*Net message from client&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;Client&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;로부터의 작업요청을 대기&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 14; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 186px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=227&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Pmon timer&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 329px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=361&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;PMON&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;이 할일 없을 때 대기하는&lt;SPAN&gt; Event&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 12pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;업무시간대에 시스템이 갑자기 느려졌다면서 오라클 서버에 문제가 없는지 문의가 들어오면 글쓴이는 우선 아래의&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 수행시켜본다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: #cccccc 1pt outset; BORDER-LEFT: #cccccc 1pt outset; MARGIN: auto auto auto 1.45pt; WIDTH: 668px; BACKGROUND: white; BORDER-TOP: #cccccc 1pt outset; BORDER-RIGHT: #cccccc 1pt outset; mso-cellspacing: .7pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt; mso-border-alt: outset #CCCCCC .75pt&quot; border=1 cellSpacing=1 cellPadding=0 width=668 Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 664px; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=696&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;select /*+ ordered / distinct /* &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;속도를 위해&lt;SPAN&gt; v$sql&lt;/SPAN&gt;을 조인할 경우 중복되는 레코드 제거&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.sid SID, s.username, s.program, p.spid &quot;OS-Pid&quot;,w.seconds_in_wait as &quot;W_time(Sec)&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;decode(w.wait_time,0,'Wai-ting', 'Waited') Status, w.ename event,&lt;br /&gt;-- &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p1text || ':' || decode(event,'latch free',p1raw, to_char(p1)) ||','||&lt;br /&gt;-- &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p2text || ':' || to_char(p2) ||','|| p3text || ':' || to_char(p3) &quot;Additional Info&quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q.sql_text&lt;br /&gt;from ( select a.*, decode(a.event,'latch free', 'latch free (' ||b.name||')', &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'row cache lock', 'row cache lock (' || c.parameter || ')',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'enqueue', 'enqueue ('||chr(bitand(p1, -16777216)/16777215)||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chr(bitand(p1,16711680)/65535)||':'||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;decode(bitand(p1,65535), 1, 'N', 2, 'SS',3,'SX',4,'S',5,'SSX',6,'X') ||')',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.event ) ename&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from v$session_wait a, v$latchname b, v$rowcache c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where a.p2 = b.latch#(+) and a.p1 = c.cache#(+) and c.type(+) = 'PARENT'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;and a.event not in ('rdbms ipc message','smon timer','pmon timer','slave wait','pipe get','null event',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'SQL*Net message from client', 'SQL*Net message to client','PX Idle Wait', &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'PX Deq: Execution Msg', 'KXFQ: kxfqdeq - normal deqeue',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'ges remote message', 'wakeup time manager', /* idle event &lt;/SPAN&gt;적절히 수정&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'lock manager wait for remote message', 'single-task message')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) w, v$session s, v$process p, v$sql q&lt;br /&gt;where w.sid = s.sid and s.paddr = p.addr&lt;br /&gt;and s.sql_hash_value = q.hash_value(+) and s.sql_address = q.address(+)&lt;br /&gt;order by w.ename;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;SQL&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;의 구체적인 내용이야 필요한 정보와 개인적 취향에 따라 달라지겠지만&lt;SPAN&gt;, &lt;/SPAN&gt;중요한 것은 일단&lt;SPAN&gt; V$SESSION_WAIT &lt;/SPAN&gt;뷰로부터 실시간&lt;SPAN&gt; Wait Event &lt;/SPAN&gt;정보를 얻어낸다는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;위&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 수행했을 때 나타나는 결과가 없다면 일단 오라클 측면에서 업무성능을 심각하게 마비시키는&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 발생하고 있지 않다고 봐도 큰 무리가 없을 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;일반적인 상태에서는 주로&lt;SPAN&gt; 'db file sequential read'&lt;/SPAN&gt;나&lt;SPAN&gt; 'db file scattered read' &lt;/SPAN&gt;가 나타날 텐데&lt;SPAN&gt;, &lt;/SPAN&gt;이러한&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;는 보통 짧은 시간 동안 지속되며 대상 자원&lt;SPAN&gt;(&lt;/SPAN&gt;블록&lt;SPAN&gt;)&lt;/SPAN&gt;을 바꿔가며&lt;SPAN&gt; Wait&lt;/SPAN&gt;가 반복되는 형태로 나타날 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;이는 작업 처리량이 많을 때 일상적으로 발생하는&lt;SPAN&gt; IO&lt;/SPAN&gt;관련&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;이므로 해당 세션에서&lt;SPAN&gt; IO&lt;/SPAN&gt;를 제법 많이 유발하고 있다는 정도로 이해하고 넘어가면 될 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;물론&lt;SPAN&gt;, Wait&lt;/SPAN&gt;의 지속시간이 길거나 지나치게 빈번히 나타나는&lt;SPAN&gt; SQL&lt;/SPAN&gt;에 대해서는 비효율적인 실행계획을 수립하고 있지 않은지 검토해서 튜닝해 주어야 한다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;성능저하의 원인이 오라클 쪽에 있는 경우에는 특정 자원에 대한&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 상당히 오랫동안 지속되어 현재까지&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 진행 중인 세션들&lt;SPAN&gt;(STATUS&lt;/SPAN&gt;가&lt;SPAN&gt; 'Wai-ting' (wait_time=0)&lt;/SPAN&gt;이며&lt;SPAN&gt; 'W_time(sec)' (seconds_in_wait) &lt;/SPAN&gt;값이 상당히 큰 세션&lt;SPAN&gt;)&lt;/SPAN&gt;이 존재할 가능성이 높다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클의 내부적인 작업들은 매우 짧은 기간에 처리되어야 하므로&lt;SPAN&gt;, Idle event(where&lt;/SPAN&gt;절에서&lt;SPAN&gt; not in&lt;/SPAN&gt;으로 처리한 부분&lt;SPAN&gt;, &lt;/SPAN&gt;버전에 따라 달라질 수 있다&lt;SPAN&gt;.) &lt;/SPAN&gt;이외의 특정&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;가 눈에 띌 정도로 검출된다는 것은 오라클 내부적으로는 훨씬 더 많은&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 발생하고 있다고 생각해야 한다&lt;SPAN&gt;. &lt;/SPAN&gt;바로 이런 세션들이 문제의 범인들이며 이제부터&lt;SPAN&gt; DBA&lt;/SPAN&gt;는 이들&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;에 대한 원인을 파악하여 조치하는 작업을 해주어야 한다&lt;SPAN&gt;. &lt;/SPAN&gt;각각의&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;에 따라 원인을 추적하고 조치하는 방법은 달라질 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;다음 호에서는&lt;SPAN&gt;, &lt;/SPAN&gt;자주 경험하는 몇가지 대표적인&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;들에 대하여&lt;SPAN&gt; SGA &lt;/SPAN&gt;영역별로 구분하여 좀 더 자세히 살펴보고&lt;SPAN&gt;, &lt;/SPAN&gt;그에 앞서&lt;SPAN&gt; Lock &lt;/SPAN&gt;또는&lt;SPAN&gt; Latch Event&lt;/SPAN&gt;의 이해를 위해 필요한&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;의 개념을 간단히 알아보도록 하겠다&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 12pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;[2] Enqueue&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;와&lt;SPAN&gt; Latch &lt;/SPAN&gt;개념 이해하기&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; &lt;br /&gt;&lt;br /&gt;DBMS&lt;/SPAN&gt;의 가장 주된 기능 중에 하나는 동일 자원에 대한 동시 액세스를 관리하는 것이며&lt;SPAN&gt;, &lt;/SPAN&gt;이를 위해 오라클이 사용하는 대표적인 제어 구조가&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;는 모두 특정 자원에 대한 접근을&lt;SPAN&gt; serialize&lt;/SPAN&gt;하는 것이 목적이라는 점에서는 같은&lt;SPAN&gt; Lock&lt;/SPAN&gt;의 일종이지만 관리방식이나 용도에서 차이가 있다&lt;SPAN&gt;. Enqueue&lt;/SPAN&gt;는 이름에서 보듯&lt;SPAN&gt; Queue&lt;/SPAN&gt;를 통해 관리된다&lt;SPAN&gt;. &lt;/SPAN&gt;대상 자원에 대한&lt;SPAN&gt; Owner, Waiter, Converter Queue&lt;/SPAN&gt;를 관리하면서 먼저 요청한 순서대로&lt;SPAN&gt; Lock&lt;/SPAN&gt;을 획득하도록 하는 구조이며&lt;SPAN&gt;, Exclusive &lt;/SPAN&gt;모드 뿐 아니라 다양한 수준의 공유를 허용한다&lt;SPAN&gt;. &lt;/SPAN&gt;대표적인 것이 테이블 데이터를&lt;SPAN&gt; Update&lt;/SPAN&gt;할 때 사용되는&lt;SPAN&gt; TM, TX enqueue&lt;/SPAN&gt;이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;반면에&lt;SPAN&gt;, Latch&lt;/SPAN&gt;는&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;에 비해 훨씬 단순한 구조로서 매우 짧은 시간 내에 획득되고 해제된다&lt;SPAN&gt;. Queue&lt;/SPAN&gt;를 통해 관리되지 않으므로 먼저&lt;SPAN&gt; Request&lt;/SPAN&gt;한 프로세스가 먼저&lt;SPAN&gt; latch&lt;/SPAN&gt;를 획득한다는 보장이 없으며&lt;SPAN&gt;, &lt;/SPAN&gt;대부분의 경우&lt;SPAN&gt; Exclusive&lt;/SPAN&gt;모드로만 획득된다&lt;SPAN&gt;. Latch&lt;/SPAN&gt;는 주로&lt;SPAN&gt; SGA&lt;/SPAN&gt;의 특정 메모리 구조체에 대한 액세스&lt;SPAN&gt;(library cache latch, cache buffers chains latch) &lt;/SPAN&gt;혹은 메모리 할당 시&lt;SPAN&gt; (shared pool latch) &lt;/SPAN&gt;사용되거나 오라클의 중요한 코드가 동시에 수행되지 않도록 하기 위한 용도로&lt;SPAN&gt;(redo writing latch) &lt;/SPAN&gt;사용된다&lt;SPAN&gt;. Latch&lt;/SPAN&gt;는&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;보다는 하위&lt;SPAN&gt; level&lt;/SPAN&gt;에서&lt;SPAN&gt; Locking &lt;/SPAN&gt;자체의 부하를 최소화하며 작동하는 제어 메커니즘이라고 할 수 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;실제로&lt;SPAN&gt; Enqueue &lt;/SPAN&gt;역시 내부적으로는&lt;SPAN&gt; Latch (enqueues, enqueue hash chains latch )&lt;/SPAN&gt;에 의해 운영된다는 점을 생각하면 둘 사이의 차이를 쉽게 이해할 수 있을 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;■ Enqueue&lt;br /&gt;&lt;br /&gt;Enqueue &lt;/SPAN&gt;정보는 내부적으로&lt;SPAN&gt; Enqueue Resource &lt;/SPAN&gt;배열과&lt;SPAN&gt; Enqueue Lock &lt;/SPAN&gt;배열에 저장된다&lt;SPAN&gt;. &lt;/SPAN&gt;특정 자원에 대한&lt;SPAN&gt; Lock&lt;/SPAN&gt;이 요청되면 대상을 하나의&lt;SPAN&gt; Resource&lt;/SPAN&gt;로 정의하여 할당하고 그&lt;SPAN&gt; Resource&lt;/SPAN&gt;에 대해 관련&lt;SPAN&gt; Lock &lt;/SPAN&gt;정보를&lt;SPAN&gt; Owner, Waiter, Converter&lt;/SPAN&gt;가운데 하나로서&lt;SPAN&gt; Link&lt;/SPAN&gt;시키는 방식으로 운영되며&lt;SPAN&gt;, &lt;/SPAN&gt;이러한 정보는&lt;SPAN&gt; V$RESOURCE&lt;/SPAN&gt;와&lt;SPAN&gt; V$LOCK &lt;/SPAN&gt;뷰를 통해 조회해 볼 수 있다&lt;SPAN&gt;. V$RESOURCE&lt;/SPAN&gt;와&lt;SPAN&gt; V$LOCK&lt;/SPAN&gt;은&lt;SPAN&gt; 1:M &lt;/SPAN&gt;관계로 하나의&lt;SPAN&gt; Resource&lt;/SPAN&gt;에 대하여 여러 건의&lt;SPAN&gt; Lock &lt;/SPAN&gt;레코드가&lt;SPAN&gt; Owner (LMODE&amp;gt;0, REQUEST=0), Waiter (LMODE=0 ,REQUEST&amp;gt;0), Converter (LMODE&amp;gt;0, REQUEST&amp;gt;0) &lt;/SPAN&gt;중 하나로서 대응된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;Enqueue Wait&lt;/SPAN&gt;이 발생하는 것은 다른 세션이 이미 나보다 먼저 해당 자원에 대한&lt;SPAN&gt; Lock&lt;/SPAN&gt;을 잡고 있으므로 인해 내가 원하는 모드로&lt;SPAN&gt; Lock&lt;/SPAN&gt;을 할당 받을 수 없기 때문이다&lt;SPAN&gt;. &lt;/SPAN&gt;자신이 필요로 하는&lt;SPAN&gt; Lock&lt;/SPAN&gt;의 획득에 실패한 세션은&lt;SPAN&gt; Owner&lt;/SPAN&gt;가 작업을 완료하고 자신을 깨워줄 때까지&lt;SPAN&gt;(&lt;/SPAN&gt;세마포어를 포스트해줄 때까지&lt;SPAN&gt;) Waiter &lt;/SPAN&gt;혹은&lt;SPAN&gt; Converter Queue&lt;/SPAN&gt;에서 대기하게 되며&lt;SPAN&gt;, &lt;/SPAN&gt;기다려도 소식이 없으면&lt;SPAN&gt; 3&lt;/SPAN&gt;초 간격으로&lt;SPAN&gt; timeout&lt;/SPAN&gt;에 의해 일어나 혹시&lt;SPAN&gt; Deadlock &lt;/SPAN&gt;상황이 아닌지 점검해 본 후 다시&lt;SPAN&gt; Sleep&lt;/SPAN&gt;에 빠져들기를 반복하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;튜닝관련 자료를 보다 보면 가끔&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;에 대한&lt;SPAN&gt; Wait&lt;/SPAN&gt;이 많은 경우에&lt;SPAN&gt; Enqueue_resource&lt;/SPAN&gt;나&lt;SPAN&gt; Enqueue_lock &lt;/SPAN&gt;파라미터를 증가시켜 주어야 한다는 가이드를 보게 되는 경우가 있는데 이 파라미터들은&lt;SPAN&gt; Enqueue resource&lt;/SPAN&gt;와&lt;SPAN&gt; lock &lt;/SPAN&gt;배열의 크기를 늘려줄 뿐 특정&lt;SPAN&gt; Enqueue &lt;/SPAN&gt;자원에 대한 동시 경합을 해소시키는 것과는 상관이 없다&lt;SPAN&gt;. Enqueue Wait&lt;/SPAN&gt;를 해소하기 위한 구체적인 방법은 &lt;SPAN&gt;Enqueue type&lt;/SPAN&gt;에 따라 달라지지만 결국은&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;를 불필요하게 요청하는 경우가 없는지를 살펴&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;에 대한 요청을 최소화하고&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;를 점유하는 시간을 최대한 단축시키는 것이다&lt;SPAN&gt;. TX Enqueue&lt;/SPAN&gt;에 대한&lt;SPAN&gt; Wait&lt;/SPAN&gt;은 대상 자원에 대한&lt;SPAN&gt; Lock&lt;/SPAN&gt;을 소유하고 있는 세션과 그 세션이 수행 중인&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 찾아 트랜잭션이 장시간 지속되고 있는 이유가 무엇인지 애플리케이션 측면에서 조사해야 하며&lt;SPAN&gt;, SQ enqueue&lt;/SPAN&gt;는&lt;SPAN&gt; Sequence &lt;/SPAN&gt;값 할당 시 발생하는 경합이므로&lt;SPAN&gt; cache&lt;/SPAN&gt;값을 늘려줌으로써 완화시킨다거나&lt;SPAN&gt; ST Enqueue&lt;/SPAN&gt;의 경합이 존재할 경우에는&lt;SPAN&gt; Locally managed tablespace&lt;/SPAN&gt;를 사용하거나&lt;SPAN&gt; Initial, Next &lt;/SPAN&gt;등의&lt;SPAN&gt; extent &lt;/SPAN&gt;크기를 적당한 값으로 조정하여 실시간 공간할당을 감소시켜주는 등의 방법들이&lt;SPAN&gt; Enqueue Wait&lt;/SPAN&gt;에 대처하는 대표적인 사례이다&lt;SPAN&gt;. &lt;/SPAN&gt;지난 호에서 소개한&lt;SPAN&gt; Session Waiter &lt;/SPAN&gt;스크립트는&lt;SPAN&gt; Enqueue Wait &lt;/SPAN&gt;이벤트에 대해서&lt;SPAN&gt; Enqueue type&lt;/SPAN&gt;과 모드를 함께 표시하여 주도록 하고 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;참고로&lt;SPAN&gt; Enqueue type&lt;/SPAN&gt;별 누적&lt;SPAN&gt; Wait&lt;/SPAN&gt;현황을 확인하고자 하면 아래&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 수행하면 된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select q.ksqsttyp type,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;q.ksqstget gets,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;q.ksqstwat waits,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; round(q.ksqstwat/q.ksqstget,3) waitratio&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from sys.x$ksqst q&lt;br /&gt;where q.inst_id = userenv('Instance') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;and q.ksqstget &amp;gt; 0&lt;br /&gt;order by waits desc&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;■ Latch&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;오라클 운영 시에 하위레벨에서 내부적으로 처리되는 다양한 조작들이&lt;SPAN&gt; latch&lt;/SPAN&gt;의 관할 하에 수행되는데&lt;SPAN&gt; V$LATCHNAME&lt;/SPAN&gt;을 조회해보면&lt;SPAN&gt; (9i &lt;/SPAN&gt;기준으로&lt;SPAN&gt;) 239 &lt;/SPAN&gt;종류나 되는&lt;SPAN&gt; Latch&lt;/SPAN&gt;가 존재하는 것을 확인할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;이 가운데 우리가 자주 접하게 되는&lt;SPAN&gt; latch&lt;/SPAN&gt;는 다음과 같은 정도이며 각&lt;SPAN&gt; Latch&lt;/SPAN&gt;의 기능은 관련&lt;SPAN&gt; SGA&lt;/SPAN&gt;별&lt;SPAN&gt; Wait&lt;/SPAN&gt;를 다룰 때 간단하게나마 소개하도록 하겠다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: #cccccc 1pt outset; BORDER-LEFT: #cccccc 1pt outset; WIDTH: 450pt; BACKGROUND: white; BORDER-TOP: #cccccc 1pt outset; BORDER-RIGHT: #cccccc 1pt outset; mso-cellspacing: .7pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt; mso-border-alt: outset #CCCCCC .75pt&quot; border=1 cellSpacing=1 cellPadding=0 width=600 Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 82.5pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #f2f2f2; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=110&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Shared pool&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 345.75pt; PADDING-RIGHT: 3.75pt; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=461&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;library cache latch, shared pool latch, row cache objects&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 1&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 82.5pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #f2f2f2; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=110&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Buffer Cache&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 345.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=461&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;cache buffers chains latch, cache buffers lru latch, cache buffer handle&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 2&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 82.5pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #f2f2f2; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=110&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Redo log&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 345.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=461&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;redo allocation latch, redo copy latch, redo writing latch&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 3; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 82.5pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #f2f2f2; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=110&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;OPS&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 345.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=461&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;dlm resource hash list&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;▷ Willing to wait &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;모드와&lt;SPAN&gt; No-wait &lt;/SPAN&gt;모드&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;Latch &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;획득 방식은&lt;SPAN&gt; No-wait&lt;/SPAN&gt;과&lt;SPAN&gt; Willing to wait &lt;/SPAN&gt;의 두 가지 모드로 구분할 수 있다&lt;SPAN&gt;. Willing to wait &lt;/SPAN&gt;모드는&lt;SPAN&gt; Latch&lt;/SPAN&gt;의 획득에 실패하면 좀더 시간을 끌면서 해당&lt;SPAN&gt; Latch&lt;/SPAN&gt;를 잡을 때까지 재시도를 해보는 방식을 말한다&lt;SPAN&gt;. &lt;/SPAN&gt;일차적으로는&lt;SPAN&gt; CPU&lt;/SPAN&gt;를 놓지 않고 정해진 횟수만큼&lt;SPAN&gt; Spinning&lt;/SPAN&gt;을 한 후 재시도를 해보다가 그래도 실패하면&lt;SPAN&gt; CPU&lt;/SPAN&gt;를 놓고&lt;SPAN&gt; Sleep&lt;/SPAN&gt;하다가&lt;SPAN&gt; timeout&lt;/SPAN&gt;되어 재시도하는 작업을 반복하면서&lt;SPAN&gt; Latch&lt;/SPAN&gt;의 획득을 노력하게 된다&lt;SPAN&gt;. Latch&lt;/SPAN&gt;가&lt;SPAN&gt; sleep&lt;/SPAN&gt;에 들어가게 되면&lt;SPAN&gt; 'latch free' wait event &lt;/SPAN&gt;대기가 시작된다&lt;SPAN&gt;. sleep&lt;/SPAN&gt;의 지속시간은&lt;SPAN&gt; sleep &lt;/SPAN&gt;횟수가 늘어갈수록 점점 길어지게 되는데&lt;SPAN&gt;, &lt;/SPAN&gt;따라서&lt;SPAN&gt; V$LATCH&lt;/SPAN&gt;의&lt;SPAN&gt; Gets&lt;/SPAN&gt;와&lt;SPAN&gt; Sleeps&lt;/SPAN&gt;의 비율과 함께&lt;SPAN&gt; Sleep1~sleep4 &lt;/SPAN&gt;항목에서 몇차&lt;SPAN&gt; Sleep&lt;/SPAN&gt;까지 발생했는지 여부도 각&lt;SPAN&gt; Latch Wait&lt;/SPAN&gt;의 심각성을 판단하는 요소 가운데 하나가 된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;No-wait &lt;/SPAN&gt;모드는&lt;SPAN&gt; Willing to wait&lt;/SPAN&gt;과는 달리 더 이상 미련을 두지 않고 해당&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 획득을 포기하는 것이다&lt;SPAN&gt;. No-wait &lt;/SPAN&gt;모드가 사용되는 경우는 두 가지가 있는데&lt;SPAN&gt;, &lt;/SPAN&gt;하나는 동일한 기능을 하는&lt;SPAN&gt; Latch&lt;/SPAN&gt;가 여러 개 존재하여 그 중에 하나만 획득하면 충분하여서 특정&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 미련을 가질 필요가 없는 경우이다&lt;SPAN&gt;. &lt;/SPAN&gt;물론&lt;SPAN&gt;, &lt;/SPAN&gt;이 때에도 같은 기능의 모든&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 시도가 실패로 끝날 경우에는&lt;SPAN&gt; Willing to wait &lt;/SPAN&gt;모드로 요청을 할 것이다&lt;SPAN&gt;. No-wait &lt;/SPAN&gt;모드가 사용되는 다른 한가지 경우는&lt;SPAN&gt; dead lock&lt;/SPAN&gt;을 피하기 위해서 이다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클은 기본적으로&lt;SPAN&gt; latch dead lock &lt;/SPAN&gt;상황을 피하기 위하여 모든&lt;SPAN&gt; Latch&lt;/SPAN&gt;에&lt;SPAN&gt; level&lt;/SPAN&gt;을 부여하여 정해진 순서를 따라서만&lt;SPAN&gt; Latch&lt;/SPAN&gt;를 획득하도록 하고 있는데&lt;SPAN&gt;, &lt;/SPAN&gt;필요에 의해 이 규칙을 어기고&lt;SPAN&gt; Latch&lt;/SPAN&gt;를 획득하고자 할 경우 일단&lt;SPAN&gt; No-wait &lt;/SPAN&gt;모드로 시도를 해보는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;다행히&lt;SPAN&gt; Latch&lt;/SPAN&gt;를 잡으면 좋은 것이고 비록&lt;SPAN&gt; latch&lt;/SPAN&gt;를 잡을 수 없더라도 무한정 기다림으로써&lt;SPAN&gt; dead lock &lt;/SPAN&gt;상태에 빠지는 일은 피할 수 있는 것이다&lt;SPAN&gt;. No-wait &lt;/SPAN&gt;모드의&lt;SPAN&gt; Latch&lt;/SPAN&gt;작업에서는 당연히&lt;SPAN&gt; Latch &lt;/SPAN&gt;관련&lt;SPAN&gt; wait&lt;/SPAN&gt;이 발생하지 않으며&lt;SPAN&gt;, redo copy latch&lt;/SPAN&gt;를 제외하고는&lt;SPAN&gt; Willing to wait &lt;/SPAN&gt;모드로&lt;SPAN&gt; Latch&lt;/SPAN&gt;를 획득하는 경우가 훨씬 많다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ Parent latch&lt;/SPAN&gt;와&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; Child latch&lt;br /&gt;&lt;br /&gt;Latch &lt;/SPAN&gt;가운데에는 동일 기능을 하는&lt;SPAN&gt; Child latch&lt;/SPAN&gt;들의&lt;SPAN&gt; set&lt;/SPAN&gt;으로 운영되는&lt;SPAN&gt; Latch&lt;/SPAN&gt;도 있으며 하나의&lt;SPAN&gt; Latch&lt;/SPAN&gt;로만 운영되는&lt;SPAN&gt; Latch&lt;/SPAN&gt;도 있다&lt;SPAN&gt;. &lt;/SPAN&gt;전자의 대표적인 예로는&lt;SPAN&gt; cache buffers chains (&lt;/SPAN&gt;버퍼캐쉬 블록 들을 같은 이름의 다수의&lt;SPAN&gt; Latch&lt;/SPAN&gt;가 나누어 담당&lt;SPAN&gt;)&lt;/SPAN&gt;가 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;후자의 예로는&lt;SPAN&gt; shared pool latch (shared pool&lt;/SPAN&gt;내에서 메모리 할당을 위해 획득해야 하는&lt;SPAN&gt; Latch&lt;/SPAN&gt;로 시스템에 하나만 존재&lt;SPAN&gt;)&lt;/SPAN&gt;가 있다&lt;SPAN&gt;. &lt;/SPAN&gt;이와 같은&lt;SPAN&gt; Latch &lt;/SPAN&gt;관련 통계 정보는&lt;SPAN&gt; Parent latch&lt;/SPAN&gt;와&lt;SPAN&gt; Child latch&lt;/SPAN&gt;의 개념으로 관리가 되는데&lt;SPAN&gt; Latch set&lt;/SPAN&gt;에서 개별&lt;SPAN&gt; Child latch&lt;/SPAN&gt;에 대한 통계정보는&lt;SPAN&gt; V$LATCH_CHILDREN &lt;/SPAN&gt;뷰를 통해 조회할 수 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;단일&lt;SPAN&gt; Latch &lt;/SPAN&gt;혹은&lt;SPAN&gt; Latch set&lt;/SPAN&gt;의 마스터&lt;SPAN&gt; Latch (parent)&lt;/SPAN&gt;에 대한 통계정보는&lt;SPAN&gt; V$LATCH_PARENT &lt;/SPAN&gt;뷰를 통해 조회할 수 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;지금까지 한 회 분량을 할애하여&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대해 요약해본 이유는&lt;SPAN&gt;, &lt;/SPAN&gt;많은&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 &lt;SPAN&gt;SGA&lt;/SPAN&gt;내의 공유자원&lt;SPAN&gt; (Block, Cursor &lt;/SPAN&gt;등&lt;SPAN&gt;)&lt;/SPAN&gt;에 대한 경합으로 인해 발생하며 이러한 경합은 다시 해당 자원에 대한 동시 액세스를 제어하는&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 경합으로 흔히 드러나게 되므로 오라클의&lt;SPAN&gt; Wait Event&lt;/SPAN&gt;를 모니터링하기 위해서는&lt;SPAN&gt; Enqueue&lt;/SPAN&gt;와&lt;SPAN&gt; Latch&lt;/SPAN&gt;의 구조와 작동원리에 대해 이해하는 것이 필수적이기 때문이다&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 12pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan; mso-margin-top-alt: auto&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;[3] Shared Pool &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;관련&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; Wait&lt;br /&gt;&lt;br /&gt;■Share pool&lt;/SPAN&gt;과 성능문제&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;오라클이 공유 메모리&lt;SPAN&gt;(SGA)&lt;/SPAN&gt;를 사용하는 가장 큰 이유는 기본적으로 메모리 사용을 최소화하면서 처리성능은 최대화하기 위한 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;한번 액세스된 블록을&lt;SPAN&gt; Database buffer cache&lt;/SPAN&gt;에 캐쉬 함으로써 비용이 큰&lt;SPAN&gt; Disk I/O&lt;/SPAN&gt;를 최소화하는 것처럼&lt;SPAN&gt;, &lt;/SPAN&gt;한번 처리된&lt;SPAN&gt; SQL&lt;/SPAN&gt;의 실행 정보를&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;에 공유함으로써 파싱 작업을 위한&lt;SPAN&gt; CPU, &lt;/SPAN&gt;메모리 자원의 사용을 최소화하고&lt;SPAN&gt; SQL &lt;/SPAN&gt;수행속도를 증가시킬 수 있다&lt;SPAN&gt;. Shared Pool&lt;/SPAN&gt;에는&lt;SPAN&gt; SQL&lt;/SPAN&gt;이나&lt;SPAN&gt; PL/SQL&lt;/SPAN&gt;을 수행하기 위한 각종 정보&lt;SPAN&gt; - SQL&lt;/SPAN&gt;구문 및 실행계획&lt;SPAN&gt;, PL/SQL &lt;/SPAN&gt;소스&lt;SPAN&gt;, &lt;/SPAN&gt;테이블&lt;SPAN&gt;, &lt;/SPAN&gt;뷰 등의 각종 오브젝트와 오브젝트 상호간의 의존관계&lt;SPAN&gt;, &lt;/SPAN&gt;권한관계 등&lt;SPAN&gt; - &lt;/SPAN&gt;가 저장되어 있다&lt;SPAN&gt;. &lt;/SPAN&gt;지면 관계상 이 글에서&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의 관리 메커니즘을 상세히 기술할 수는 없지만 몇 가지 내재적인 특징으로 인해&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;은 오라클의 메모리 영역 가운데에서도 가장 성능문제의 요소가 많은 곳이면서도 효과적인 튜닝이 수월치 않은 영역이기도 하다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;무엇보다&lt;SPAN&gt;, Shared Pool&lt;/SPAN&gt;에서 가장 문제가 되는 것은 메모리의 조각화&lt;SPAN&gt;(Fragmentation)&lt;/SPAN&gt;이다&lt;SPAN&gt;. Shared Pool&lt;/SPAN&gt;에서 라이브러리 캐쉬 오브젝트를 위해 할당되는 메모리 단위를&lt;SPAN&gt; chunk&lt;/SPAN&gt;라고 부르는데&lt;SPAN&gt; chunk&lt;/SPAN&gt;의 크기는 수 바이트에서 수&lt;SPAN&gt; K&lt;/SPAN&gt;바이트에 이르기까지 필요에 의해 다양하게 할당된다&lt;SPAN&gt;. &lt;/SPAN&gt;새로운&lt;SPAN&gt; chunk&lt;/SPAN&gt;의 할당이 필요하게 되면&lt;SPAN&gt;, &lt;/SPAN&gt;프로세스는 이미 존재하는&lt;SPAN&gt; chunk&lt;/SPAN&gt;로부터 필요한 만큼의 크기만을 떼어내어 사용하므로 시간이 흐를수록 점차 메모리가 조각화 되는 것을 피할 수 없다&lt;SPAN&gt;. ( &lt;/SPAN&gt;이는&lt;SPAN&gt;, Pctincrease&lt;/SPAN&gt;가&lt;SPAN&gt; 0&lt;/SPAN&gt;가 아닌 테이블스페이스에서 익스텐트의 할당과 해제가 반복됨에 따라 공간의 조각화가 심해지는 것을 떠올리면 이해가 쉬울 것이다&lt;SPAN&gt;. ). &lt;/SPAN&gt;어느 정도 정형화된 패턴의 애플리케이션이 수행되는 환경이 아니라&lt;SPAN&gt;, &lt;/SPAN&gt;공유가 불가능한 다양한 형태의&lt;SPAN&gt; SQL(&lt;/SPAN&gt;대표적으로&lt;SPAN&gt; Literal SQL)&lt;/SPAN&gt;이 빈번히 요청되는 환경이라면&lt;SPAN&gt; Shared Pool &lt;/SPAN&gt;메모리 조각화에 따른 문제는 더욱 심각해진다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;또한&lt;SPAN&gt;, Shared Pool&lt;/SPAN&gt;은 일반적인 메모리 캐쉬와는 달리 메모리에 저장되었던 정보를 잠시 기록해둘 대응되는 디스크 공간이 없으므로 한번&lt;SPAN&gt; flush&lt;/SPAN&gt;된 라이브러리 캐쉬 오브젝트를&lt;SPAN&gt; reload&lt;/SPAN&gt;하기 위해서는 해당 정보를 재생성 해야만 한다&lt;SPAN&gt;. &lt;/SPAN&gt;이 과정에서 관련 오브젝트 정보의 검색 및 참조&lt;SPAN&gt;, locking, &lt;/SPAN&gt;메모리 할당 등의 작업을 위해 많은 비용이 들기 때문에 결국&lt;SPAN&gt; Shared Pool &lt;/SPAN&gt;관련 튜닝의 최대 과제는&lt;SPAN&gt; SQL &lt;/SPAN&gt;공유를 최대화하여 새로운 파싱 요청과 메모리 요청을 최소화하는 것이라고 할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;헌데&lt;SPAN&gt;, &lt;/SPAN&gt;이는 애플리케이션의 설계와 연계되는 영역으로서 이미 개발이 완료된 운영서버에서는 변경작업이 여의치 않은 것이 현실이다&lt;SPAN&gt;. &lt;/SPAN&gt;앞서&lt;SPAN&gt;, Shared Pool&lt;/SPAN&gt;이&lt;SPAN&gt; DBA&lt;/SPAN&gt;로서 튜닝이 수월치 않은 영역이라고 표현한 이유 가운데 하나가 여기에 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;■ Shared Pool &lt;/SPAN&gt;관련 오해 바로잡기&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;Shared Pool&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;과 관련하여 판단이 쉽지 않은 부분 가운데 하나가 과연&lt;SPAN&gt; shared_pool_size&lt;/SPAN&gt;를 얼마나 할당할 것인가 하는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클은&lt;SPAN&gt; Shared Pool &lt;/SPAN&gt;메모리를 최대한 효율적으로 활용하기 위하여 다양한 기법을 동원하고 있는데&lt;SPAN&gt;, &lt;/SPAN&gt;이러한 메모리 관리 메커니즘에 대해 정확히 알지 못하여&lt;SPAN&gt; Shared Pool &lt;/SPAN&gt;크기를 지나치게 크게 할당함으로써 오히려 문제를 악화시키는 경우도 드물지 않다&lt;SPAN&gt;. &lt;/SPAN&gt;이러한 오해를 바로잡기 위해&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의 메모리 할당과정을 간단하게나마 살펴보도록 하겠다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;새로운 메모리&lt;SPAN&gt; Chunk&lt;/SPAN&gt;가 할당되는 과정을 살펴보면&lt;SPAN&gt;, &lt;/SPAN&gt;우선 프로세스는&lt;SPAN&gt; Free List&lt;/SPAN&gt;를 검색하여 자신이 필요로 하는 크기의&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;를 찾고&lt;SPAN&gt;, &lt;/SPAN&gt;그러한&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;가 없으면 원하는 크기보다 한단계 큰&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;를 찾아서 필요한 크기만큼 분할하여 사용하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;만약&lt;SPAN&gt; Free List&lt;/SPAN&gt;에서 충분한 크기의&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;를 찾을 수 없다면&lt;SPAN&gt;, &lt;/SPAN&gt;이미 사용되었으나 현재는 사용되고 있지 않는&lt;SPAN&gt;(unpinned) Chunk&lt;/SPAN&gt;들의&lt;SPAN&gt; LRU List&lt;/SPAN&gt;를 검색하여 오래된 것부터&lt;SPAN&gt; 8&lt;/SPAN&gt;개씩&lt;SPAN&gt; flush&lt;/SPAN&gt;시켜&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;로 만든 후 자신이 필요한 크기를 할당하여 사용하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;만약 이 과정에서 현재 사용중인&lt;SPAN&gt;(pinned) Chunk&lt;/SPAN&gt;가 대부분이거나&lt;SPAN&gt;, &lt;/SPAN&gt;너무 메모리 조각화가 많이 일어나서 기존&lt;SPAN&gt; Chunk&lt;/SPAN&gt;를&lt;SPAN&gt; Flush&lt;/SPAN&gt;시킨 후 인접한&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;들을 병합해보아도 원하는 크기의&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;를 얻어낼 수 없다면 오라클은&lt;SPAN&gt; ORA-4031 &lt;/SPAN&gt;에러를 발생시키는데&lt;SPAN&gt;, &lt;/SPAN&gt;그 이전에 한가지 최후의 비밀무기가 더 숨어 있다&lt;SPAN&gt;. &lt;/SPAN&gt;바로&lt;SPAN&gt; Spare Free &lt;/SPAN&gt;메모리라는 것인데 오라클은 인스턴스 기동 후 처음에는 전체&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의&lt;SPAN&gt; 50% &lt;/SPAN&gt;가량은&lt;SPAN&gt; Free List&lt;/SPAN&gt;에 올려놓지 않고 아예 숨겨두었다가 앞서와 같이 도저히 피할 수 없는 순간이 되면 조금씩 해제 시켜 사용하도록 한다&lt;SPAN&gt;. &lt;/SPAN&gt;그야말로 메모리의 조각화를 최소화하기 위한 오라클의 눈물 나는 노력이라고 할 수 있을 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;물론 이 영역까지 다 소모한 후에&lt;SPAN&gt; flush&lt;/SPAN&gt;를 통해서도 필요한&lt;SPAN&gt; Chunk&lt;/SPAN&gt;를 확보할 수 없는 상황이 되면 결국&lt;SPAN&gt; ORA-4031 &lt;/SPAN&gt;에러가 발생할 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;많은 이들이&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의 남아있는&lt;SPAN&gt; Free memory&lt;/SPAN&gt;의 크기가 작으면&lt;SPAN&gt; shared_pool_size&lt;/SPAN&gt;를 증가시켜주어야 한다고 믿고 있는데 이는 잘못된 것이다&lt;SPAN&gt;. Shared Pool&lt;/SPAN&gt;은 정보의 재사용을 위해 운영하는 것이므로&lt;SPAN&gt; SQL &lt;/SPAN&gt;실행이 끝났다고 해서 해당&lt;SPAN&gt; Chunk&lt;/SPAN&gt;를&lt;SPAN&gt; Free List&lt;/SPAN&gt;로 반납하지 않는다&lt;SPAN&gt;. &lt;/SPAN&gt;즉&lt;SPAN&gt;, Free Memory&lt;/SPAN&gt;가 남아있는 한 계속 소모 시키는 방식으로 사용되므로 오랜 시간동안 운영되어온 시스템에서&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의&lt;SPAN&gt; Free Memory&lt;/SPAN&gt;가 매우 적게 남아 있는 것은 그 자체로는 문제가 되지 않으며&lt;SPAN&gt;, &lt;/SPAN&gt;오히려 피크타임이 지난 후에도 많은 양의&lt;SPAN&gt; Free Memory&lt;/SPAN&gt;가 남아있다면 이는&lt;SPAN&gt; Spare Free &lt;/SPAN&gt;메모리도 다 소모하지 않은 상태로서 불필요하게 많은 메모리가 할당되어 낭비되고 있음을 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;더구나&lt;SPAN&gt;, Shared Pool &lt;/SPAN&gt;크기가 지나치게 크면&lt;SPAN&gt; Free Memory&lt;/SPAN&gt;를 다 사용할 때까지의 기간이 연장되는 효과는 얻을 수 있겠지만&lt;SPAN&gt;, &lt;/SPAN&gt;시간이 지날수록&lt;SPAN&gt; Memory&lt;/SPAN&gt;의 조각화가 더욱 심해지고&lt;SPAN&gt; Free List&lt;/SPAN&gt;의 길이가 길어져&lt;SPAN&gt; Free Chunk&lt;/SPAN&gt;의 검색과 할당에 걸리는 시간이 지연되므로 오히려 성능이 악화되는 결과를 초래할 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;또한&lt;SPAN&gt;, &lt;/SPAN&gt;메모리 조각화에 따른 영향을 줄이기 위해 오라클은&lt;SPAN&gt; 5000 bytes&lt;/SPAN&gt;가 넘는 큰 사이즈의&lt;SPAN&gt; Chunk&lt;/SPAN&gt;만을 위해 전체&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의&lt;SPAN&gt; 5% &lt;/SPAN&gt;정도를 따로 관리하는 방법을 사용하고 있는데&lt;SPAN&gt;, &lt;/SPAN&gt;경험적으로 보면 이 공간은 거의 사용되지 않고 버려지고 있는 경우가 많다&lt;SPAN&gt;. &lt;/SPAN&gt;이는&lt;SPAN&gt; V$SHARED_POOL_RESERVED &lt;/SPAN&gt;뷰의&lt;SPAN&gt; USED_SPACE &lt;/SPAN&gt;값을 확인해 보면 알 수 있으며&lt;SPAN&gt;, 5000 bytes &lt;/SPAN&gt;이상의&lt;SPAN&gt; large chunk&lt;/SPAN&gt;가 거의 요구되지 않는 환경에서는 오히려 이 크기를 줄여주는 것이 나을 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;■Shared Pool &lt;/SPAN&gt;관련&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; wait&lt;br /&gt;&lt;br /&gt;Shared Pool&lt;/SPAN&gt;과 관련하여 흔히 발생하는&lt;SPAN&gt; Wait&lt;/SPAN&gt;은 라이브러리 캐쉬 오브젝트에 대한 동시 액세스와 메모리 할당에 따른 관련&lt;SPAN&gt; Lock &lt;/SPAN&gt;또는&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 경합이 대부분이며&lt;SPAN&gt;, &lt;/SPAN&gt;구체적인 이름은 다음과 같다&lt;SPAN&gt;. (Latch free &lt;/SPAN&gt;이벤트시 괄호 안의 관련&lt;SPAN&gt; latch &lt;/SPAN&gt;이름은&lt;SPAN&gt; v$session_wait&lt;/SPAN&gt;의&lt;SPAN&gt; p2&lt;/SPAN&gt;값과&lt;SPAN&gt; v$latchname&lt;/SPAN&gt;의&lt;SPAN&gt; latch#&lt;/SPAN&gt;를 조인하여 얻어낼 수 있다&lt;SPAN&gt;. 1&lt;/SPAN&gt;회&lt;SPAN&gt; SQL &lt;/SPAN&gt;참조&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style=&quot;BORDER-BOTTOM: #cccccc 1pt outset; BORDER-LEFT: #cccccc 1pt outset; WIDTH: 450pt; BACKGROUND: white; BORDER-TOP: #cccccc 1pt outset; BORDER-RIGHT: #cccccc 1pt outset; mso-cellspacing: .7pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt; mso-border-alt: outset #CCCCCC .75pt&quot; border=1 cellSpacing=1 cellPadding=0 width=600 Table&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 217.5pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #6aa8df; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=290&gt;
&lt;P style=&quot;TEXT-ALIGN: center; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=center&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Latch&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; PADDING-LEFT: 3.75pt; WIDTH: 210.75pt; PADDING-RIGHT: 3.75pt; BACKGROUND: #6aa8df; HEIGHT: 15pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=281&gt;
&lt;P style=&quot;TEXT-ALIGN: center; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=center&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;Lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 1&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 217.5pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=290&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;latch free ( library cache )&lt;br /&gt;latch free ( library cache load lock)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 210.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=281&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;library cache lock, library cache pin &lt;br /&gt;library cache load lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 2&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 217.5pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=290&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;latch free ( row cache objects )&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 210.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=281&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;row cache lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style=&quot;mso-yfti-irow: 3; mso-yfti-lastrow: yes&quot;&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 217.5pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=290&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;latch free ( shared pool )&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style=&quot;BORDER-BOTTOM: #cccccc 1pt inset; BORDER-LEFT: #cccccc 1pt inset; PADDING-BOTTOM: 3.75pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.75pt; WIDTH: 210.75pt; PADDING-RIGHT: 3.75pt; BORDER-TOP: #cccccc 1pt inset; BORDER-RIGHT: #cccccc 1pt inset; PADDING-TOP: 3.75pt; mso-border-alt: inset #CCCCCC .75pt&quot; width=281&gt;
&lt;P style=&quot;TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; TEXT-AUTOSPACE: ideograph-numeric; WORD-BREAK: keep-all; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;Library cache lock, library cache pin, library load lock&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;은 각각 특정 라이브러리 캐쉬 오브젝트에 대한 검색이나 변경 및 실행 또는 로드 시에 대상 오브젝트에 대해 할당되며&lt;SPAN&gt;, &lt;/SPAN&gt;이러한&lt;SPAN&gt; Locking &lt;/SPAN&gt;작업은&lt;SPAN&gt; library cache latch&lt;/SPAN&gt;와&lt;SPAN&gt; library cache load lock latch&lt;/SPAN&gt;의 관할 하에 처리된다&lt;SPAN&gt;. Shared pool latch&lt;/SPAN&gt;는&lt;SPAN&gt; Free List&lt;/SPAN&gt;나&lt;SPAN&gt; LRU List&lt;/SPAN&gt;를 검색하거나 메모리를 할당하는 작업에 사용되며&lt;SPAN&gt;, row cache lock&lt;/SPAN&gt;과&lt;SPAN&gt; row cache objects latch&lt;/SPAN&gt;는&lt;SPAN&gt; Data dictionary cache &lt;/SPAN&gt;오브젝트에 대한 동시 액세스를 제어하는데 사용된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;Latch&lt;/SPAN&gt;의 개수는 시스템 전체적으로 하나 또는 제한된 개수가 존재하는 것이고&lt;SPAN&gt; Lock&lt;/SPAN&gt;은 대상 오브젝트 각각 대해 할당되는 것이므로&lt;SPAN&gt;, &lt;/SPAN&gt;엄밀하게 말해서&lt;SPAN&gt; Lock&lt;/SPAN&gt;에 대한 경합은 직접적으로는 특정 라이브러리 캐쉬 오브젝트에 대한 동시 액세스로 인해 유발되는 것인 반면에&lt;SPAN&gt;, Latch&lt;/SPAN&gt;에 대한 경합은 시스템 전체적으로 관련 오퍼레이션&lt;SPAN&gt;(&lt;/SPAN&gt;즉&lt;SPAN&gt;, SQL &lt;/SPAN&gt;파싱&lt;SPAN&gt;) &lt;/SPAN&gt;자체가 지나치게 많이 발생하거나&lt;SPAN&gt;, &lt;/SPAN&gt;짧은 시간 내에 처리되지 못함으로 인해 유발되는 것이라고 구분해볼 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;그러나&lt;SPAN&gt;, &lt;/SPAN&gt;결국 이 모든 경합은 근본적으로&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의 조각화&lt;SPAN&gt;(Fragmentation)&lt;/SPAN&gt;에 따른 문제가 주된 원인이며 다시 이러한 조각화는 요청되는&lt;SPAN&gt; SQL&lt;/SPAN&gt;들이 공유되지 못하고 지속적으로 새롭게 파싱되고 메모리가 할당됨으로 인해 발생하는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서&lt;SPAN&gt;, &lt;/SPAN&gt;이러한 문제를 해결하는 가장 효과적인 방법은&lt;SPAN&gt; Literal SQL&lt;/SPAN&gt;을 바인드 변수를 사용하도록 수정하거나&lt;SPAN&gt;, SQL&lt;/SPAN&gt;작성 표준을 마련하고&lt;SPAN&gt;, HOLD_CURSOR/ RELEASE_CURSOR, SESSION_CACHED_CURSORS, CURSOR_SPACE_FOR_TIME, CURSOR_SHARING &lt;/SPAN&gt;등의 파라미터를 활용하는 등의 방법을 통해&lt;SPAN&gt; SQL&lt;/SPAN&gt;의 공유도를 높여주는 것이며&lt;SPAN&gt;, &lt;/SPAN&gt;또한 자주 사용되는&lt;SPAN&gt; PL/SQL&lt;/SPAN&gt;에 대해서는&lt;SPAN&gt; DBMS_SHARED_POOL &lt;/SPAN&gt;패키지를 사용하여 메모리에서&lt;SPAN&gt; Flush&lt;/SPAN&gt;되지 않도록 보존하는 등의 조치를 취해주면 도움이 될 것이다&lt;SPAN&gt;. SQL&lt;/SPAN&gt;의 수정이 어려운 환경이거나 시스템에 요청되는&lt;SPAN&gt; SQL&lt;/SPAN&gt;의 절대량이 확보된 메모리 공간에 비해 많은 상황이라면 주기적으로 피크타임을 피해&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;을 직접&lt;SPAN&gt; Flush(alter system flush shared_pool &lt;/SPAN&gt;명령을 사용한다&lt;SPAN&gt;.) &lt;/SPAN&gt;시켜주는 것도 권장할 만한 관리 방법이다&lt;SPAN&gt;. &lt;/SPAN&gt;많은 이들이 우려하는 바와는 달리&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;을 직접&lt;SPAN&gt; flush &lt;/SPAN&gt;시키는 것이 심각한 성능상 문제를 야기하지는 않으며 특히 중요한 패키지나&lt;SPAN&gt; SQL cursor, Sequence &lt;/SPAN&gt;등이&lt;SPAN&gt; keep&lt;/SPAN&gt;되어 있는 경우라면 더욱 그러하다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;가끔 버그를 포함한 특수한 상황에서 특정 라이브러리 캐쉬 오브젝트에 대한&lt;SPAN&gt; lock&lt;/SPAN&gt;이 장시간 해제되지 못하고 있는 경우도 있는데 이때는&lt;SPAN&gt; X$KGLLK &lt;/SPAN&gt;뷰를 조회하면&lt;SPAN&gt; library cache lock&lt;/SPAN&gt;에 대한&lt;SPAN&gt; holder/waiter&lt;/SPAN&gt;를 확인하여 조치할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;또한&lt;SPAN&gt;, Row cache lock&lt;/SPAN&gt;에 대한 경합은&lt;SPAN&gt; Locally managed tablespace&lt;/SPAN&gt;를 도입하거나&lt;SPAN&gt;, DML&lt;/SPAN&gt;이 빈번한 테이블에 대한 인덱스의 개수를 줄여주는 등의 조치를 통해 완화될 수 있을 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;부연하자면&lt;SPAN&gt;, Shared Pool&lt;/SPAN&gt;과 관련된&lt;SPAN&gt; Wait&lt;/SPAN&gt;는 특정 오브젝트 자원에 대한 경합에 의해 발생하기 보다는 애플리케이션의 설계&lt;SPAN&gt;, &lt;/SPAN&gt;보다 단순화시켜 표현하면&lt;SPAN&gt; Literal SQL&lt;/SPAN&gt;에 의한 메모리 조각화에 의해 발생하는 경우가 많다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서&lt;SPAN&gt;, Shared Pool&lt;/SPAN&gt;관련&lt;SPAN&gt; Wait&lt;/SPAN&gt;가 많이 발생하여 오라클이 그로 인한 성능상의 문제를 드러낼 때 눈에 띄는 하나의 주범을 찾아내려는 노력은 별 효과를 거두지 못하는 경우가 많으며&lt;SPAN&gt;, &lt;/SPAN&gt;그러한 시점에&lt;SPAN&gt; DBA&lt;/SPAN&gt;가 즉각적으로 취할 수 있는 조치로는 직접&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;을&lt;SPAN&gt; Flush &lt;/SPAN&gt;시키는 정도가 있을 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;결국&lt;SPAN&gt;, &lt;/SPAN&gt;평소에 꾸준한 모니터링을 통해&lt;SPAN&gt; Shared Pool&lt;/SPAN&gt;의 적절한 크기와 관련 파라미터 값을 찾아가는 것&lt;SPAN&gt;, &lt;/SPAN&gt;그리고 무엇보다 애플리케이션 측면에서 튜닝 및 수정 작업을 진행함으로써 성능문제를 사전에 예방하는 것이 최선이다&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-BOTTOM: 12pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;[3] Buffer Cache &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;관련&lt;SPAN&gt; Wait&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;■ Buffer Cache &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;구조&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;Buffer Cache&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;의 기본적인 기능은 여러 프로세스에 의해 공통으로 자주 액세스 되는 데이터베이스 블록을 메모리에 캐쉬하여 물리적인 디스크&lt;SPAN&gt; IO&lt;/SPAN&gt;를 최소화함으로써 더 빠른 액세스 속도를 제공하기 위한 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;복잡한 설명은 생략하고&lt;SPAN&gt;, Buffer Cache &lt;/SPAN&gt;의 기본구조를 이해하기 위한 몇 가지 핵심 용어들을 간단히 정리해 보도록 하겠다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;▷ Buffer header&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;모든 버퍼 블록들은 각자의&lt;SPAN&gt; buffer header&lt;/SPAN&gt;를 통해 액세스되고 관리된다&lt;SPAN&gt;. &lt;/SPAN&gt;즉&lt;SPAN&gt;, &lt;/SPAN&gt;메모리에 캐쉬된 특정 데이터 블록에 대한 액세스는 먼저 해쉬 알고리즘을 통해&lt;SPAN&gt; cache chain &lt;/SPAN&gt;상의&lt;SPAN&gt; buffer header&lt;/SPAN&gt;를 찾고 해당&lt;SPAN&gt; buffer header&lt;/SPAN&gt;에 기록된 데이터 블록의 메모리상 주소를 찾아가 원하는 정보를 읽는 방식으로 이루어진다&lt;SPAN&gt;. Buffer header&lt;/SPAN&gt;에 기록되는 주요정보는 다음과 같으며&lt;SPAN&gt; Buffer header&lt;/SPAN&gt;의 내용은&lt;SPAN&gt; V$bh &lt;/SPAN&gt;뷰를 통하여 조회해볼 수 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;/SPAN&gt;메모리상에서의 해당 버퍼블록의 주소&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;해당 버퍼 블록&lt;SPAN&gt;(&lt;/SPAN&gt;실제로는 버퍼헤더&lt;SPAN&gt;)&lt;/SPAN&gt;가 포함되어 있는&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; hash chain&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - LRU, LRUW, CKPTQ&lt;/SPAN&gt;와 같은 리스트상에서의 해당 버퍼블록의 위치&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;해당 버퍼블록에 대한&lt;SPAN&gt; User, Waiter&lt;/SPAN&gt;와 상태를 나타내는 각종&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; Flag &lt;br /&gt;&lt;br /&gt;▷ Hash Buckets/ Hash Chains&lt;br /&gt;&lt;br /&gt;Buffer Cache&lt;/SPAN&gt;의 모든 블록은 해쉬 알고리즘을 통해 관리된다&lt;SPAN&gt;. &lt;/SPAN&gt;곧&lt;SPAN&gt;, &lt;/SPAN&gt;데이터 블록의&lt;SPAN&gt; DBA, Class &lt;/SPAN&gt;값으로&lt;SPAN&gt; Hash Function&lt;/SPAN&gt;을 적용하여 해당 블록이 속하는&lt;SPAN&gt; hash buckets&lt;/SPAN&gt;을 할당하며&lt;SPAN&gt;, &lt;/SPAN&gt;동일한&lt;SPAN&gt; hash buckets&lt;/SPAN&gt;에 할당되는 데이터 블록의 버퍼헤더들은&lt;SPAN&gt; linked list&lt;/SPAN&gt;형태로&lt;SPAN&gt; hash chain&lt;/SPAN&gt;을 이루게 된다&lt;SPAN&gt;. Hash buckets/hash chains&lt;/SPAN&gt;는 특정 데이터 블록을 찾아가기 위한 수단을 제공한다&lt;SPAN&gt;. &lt;/SPAN&gt;각각의&lt;SPAN&gt; hash buckets&lt;/SPAN&gt;에는 자신에 속한&lt;SPAN&gt; hash chain&lt;/SPAN&gt;을 보호하기 위한&lt;SPAN&gt; latch(cache buffers chains)&lt;/SPAN&gt;가 할당된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ LRU&lt;br /&gt;&lt;br /&gt;LRU&lt;/SPAN&gt;는 두개의 리스트&lt;SPAN&gt;, &lt;/SPAN&gt;즉&lt;SPAN&gt; LRUW&lt;/SPAN&gt;와&lt;SPAN&gt; LRU &lt;/SPAN&gt;리스트의 쌍으로 구성된다&lt;SPAN&gt;. LRUW(LRU Write list)&lt;/SPAN&gt;는&lt;SPAN&gt; dirty list&lt;/SPAN&gt;와 같은 말이며&lt;SPAN&gt;, &lt;/SPAN&gt;수정되어 디스크에 반영되어야 할 블록들의 리스트이다&lt;SPAN&gt;. LRU(Least recently used list)&lt;/SPAN&gt;는&lt;SPAN&gt; LRUW&lt;/SPAN&gt;에 올라가지 않은 나머지 버퍼 블록들이 등록되어 있다&lt;SPAN&gt;. Buffer cache &lt;/SPAN&gt;상의 버퍼블록은 반드시&lt;SPAN&gt; LRU&lt;/SPAN&gt;나&lt;SPAN&gt; LRUW &lt;/SPAN&gt;둘 중의 하나에 등록되며&lt;SPAN&gt;, &lt;/SPAN&gt;두 리스트에 동시에 포함되는 경우는 없다&lt;SPAN&gt;. LRU&lt;/SPAN&gt;는&lt;SPAN&gt; Free Buffer&lt;/SPAN&gt;를 찾기 위한 수단을 제공한다&lt;SPAN&gt;. &lt;/SPAN&gt;경합을 피하기 위해 버퍼캐쉬 블록들을 여러 개의&lt;SPAN&gt; LRU&lt;/SPAN&gt;쌍으로 나누어 관리할 수 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;각&lt;SPAN&gt; LRU&lt;/SPAN&gt;리스트를 보호하기 위해&lt;SPAN&gt; Latch(Cache buffers lru chain)&lt;/SPAN&gt;가 하나씩 할당된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;■ Buffer Cache &lt;/SPAN&gt;운영규칙&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;▷ &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;메모리상의 특정 버퍼블록을 찾아가거나&lt;SPAN&gt;, &lt;/SPAN&gt;특정 블록이 메모리에 캐쉬 되어 있는지를 확인하기 위해서 오라클은&lt;SPAN&gt; hash bucket/hash chain &lt;/SPAN&gt;구조를 사용한다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷&lt;/SPAN&gt;새로운 데이터블록을 디스크로부터 메모리로 읽어 들이기 위한&lt;SPAN&gt; free buffer&lt;/SPAN&gt;를 확보하기 위해 오라클은&lt;SPAN&gt; LRU &lt;/SPAN&gt;리스트를 사용한다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ &lt;/SPAN&gt;버퍼블록은&lt;SPAN&gt; LRU&lt;/SPAN&gt;나&lt;SPAN&gt; LRUW &lt;/SPAN&gt;둘 가운데 하나에 등록된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;▷ &lt;/SPAN&gt;하나의 블록에 대해 시간대가 다른 여러 개의 복사본이 존재할 수 있으며&lt;SPAN&gt;, &lt;/SPAN&gt;그 가운데 오직&lt;SPAN&gt; CURRENT &lt;/SPAN&gt;버퍼만이 변경될 수 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷&lt;/SPAN&gt;하나의 버퍼블록은 한번에 오직 하나의 프로세스에 의해서만 변경될 수 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;■ Buffer Cache &lt;/SPAN&gt;관련&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; Waits&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;버퍼캐쉬와 관련되어 흔히 발생하는 대표적인&lt;SPAN&gt; Wait &lt;/SPAN&gt;이벤트는 다음과 같다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ buffer busy waits&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;여러 세션이 동시에 같은 블록을 읽으려고 하거나 여러 세션이 같은 블록에 대한 변경작업이 완료되기를 기다리고 있는 경우에 발생하며&lt;SPAN&gt;, &lt;/SPAN&gt;특정 블록에 대한 경합을 해소하기 위한 조치는 블록의 유형에 따라 달라진다&lt;SPAN&gt;. Data block&lt;/SPAN&gt;에 대한 경합이 많은 경우는&lt;SPAN&gt; Pct free&lt;/SPAN&gt;나&lt;SPAN&gt; Pct used &lt;/SPAN&gt;값을 사용하여 블록 당 로우수를 줄이거나&lt;SPAN&gt;, &lt;/SPAN&gt;특정 블록에 로우 입력이 몰리는 구조의 인덱스&lt;SPAN&gt;(right-hand-index)&lt;/SPAN&gt;일 경우는&lt;SPAN&gt; reverse key index&lt;/SPAN&gt;의 사용을 검토하는 등의 방법이 있으며&lt;SPAN&gt;, segment header&lt;/SPAN&gt;의 경합이 많은 경우는&lt;SPAN&gt; freelist &lt;/SPAN&gt;수를 늘리거나&lt;SPAN&gt; Extent&lt;/SPAN&gt;의 크기를 증가시키는 등의 방법이 있고&lt;SPAN&gt;, undo header&lt;/SPAN&gt;나&lt;SPAN&gt; undo block&lt;/SPAN&gt;에 대한 경합은 롤백세그먼트의 개수나 크기를 증가시키는 것이 전형적인 조치 방법이다&lt;SPAN&gt;. v$waitstat&lt;/SPAN&gt;과&lt;SPAN&gt; x$kcbfwait&lt;/SPAN&gt;을 이용하며&lt;SPAN&gt; Class &lt;/SPAN&gt;또는&lt;SPAN&gt; file&lt;/SPAN&gt;별로&lt;SPAN&gt; wait &lt;/SPAN&gt;발생상황을 판단할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-BOTTOM: 12pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;▷ free buffer waits/write complete waits&lt;br /&gt;&lt;br /&gt;DBWR&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;가&lt;SPAN&gt; dirty buffer&lt;/SPAN&gt;를&lt;SPAN&gt; write&lt;/SPAN&gt;하는 동안 서버 프로세스가 대기하고 있는 경우 발생한다&lt;SPAN&gt;. &lt;/SPAN&gt;곧&lt;SPAN&gt;, &lt;/SPAN&gt;너무나 많은&lt;SPAN&gt; dirty buffer&lt;/SPAN&gt;가 생겨나거나&lt;SPAN&gt; DBWR&lt;/SPAN&gt;의 쓰기 속도가 충분히 튜닝 되지 못한 경우에 발생한다&lt;SPAN&gt;. &lt;/SPAN&gt;점검 포인트는 물리적 디스크의 속성&lt;SPAN&gt;(stripe size, layour, cache size) &lt;/SPAN&gt;최적화&lt;SPAN&gt;, Raw device&lt;/SPAN&gt;의 활용&lt;SPAN&gt;, Async IO&lt;/SPAN&gt;나&lt;SPAN&gt; multi-DBWR(db_writer_processes) &lt;/SPAN&gt;활용여부 등이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;위와 같은 버퍼 블록에 대한 경합 역시 비효율적인 실행계획을 통해 수행되는 애플리케이션에 의하여 불필요하게 많은 블록이 메모리로 올라오는 것이 원인일 경우가 많으므로 경합이 빈번한 블록이 속하는 테이블&lt;SPAN&gt;/&lt;/SPAN&gt;인덱스 명을 찾아낼 수 있다면 관련&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 찾아내어 보다 효과적인 튜닝작업이 이루어질 수 있을 것이다&lt;SPAN&gt;. v$session_wait&lt;/SPAN&gt;의&lt;SPAN&gt; p1,p2 &lt;/SPAN&gt;컬럼에 각각&lt;SPAN&gt; file#, block#&lt;/SPAN&gt;값을 표시하여 주므로 이 값을 이용하여 아래의&lt;SPAN&gt; SQL&lt;/SPAN&gt;문으로 현재 어떤 오브젝트에 대하여 해당&lt;SPAN&gt; wait&lt;/SPAN&gt;가 발생하고 있는지를 추적할 수 있다&lt;SPAN&gt;. ( 1&lt;/SPAN&gt;회에 소개한&lt;SPAN&gt; SQL&lt;/SPAN&gt;문에서는&lt;SPAN&gt; Additional Info &lt;/SPAN&gt;값을 참조&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;. )&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select segment_name, segment_type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dba_extents&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_id = :file#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and :block# between block_id and block_id + blocks -1&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;▷ cache buffers chains latch&lt;br /&gt;&lt;br /&gt;SGA&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;내에 캐쉬된 데이터블록을 검색할 때 사용된다&lt;SPAN&gt;. &lt;/SPAN&gt;버퍼캐쉬는 블록들의&lt;SPAN&gt; chain&lt;/SPAN&gt;을 이루고 있으므로 각각의&lt;SPAN&gt; chain&lt;/SPAN&gt;은 이&lt;SPAN&gt; Latch&lt;/SPAN&gt;의&lt;SPAN&gt; child&lt;/SPAN&gt;들에 의해 보호된다&lt;SPAN&gt;. &lt;/SPAN&gt;이&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 경합은 특정 블록에 대한 대량의 동시 액세스가 발생할 때 유발된다&lt;SPAN&gt;. &lt;/SPAN&gt;애플리케이션을 검토해 보아야 한다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;Ø cache buffers lru chain latch&lt;br /&gt;&lt;/SPAN&gt;버퍼캐쉬의 버퍼를&lt;SPAN&gt; LRU &lt;/SPAN&gt;정책에 따라 이동시켜야 할 필요가 있는 경우 프로세스는 이&lt;SPAN&gt; Latch &lt;/SPAN&gt;획득하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;이&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 경합은&lt;SPAN&gt; Multiple buffer pool&lt;/SPAN&gt;을 사용하거나&lt;SPAN&gt; DB_BLOCK_LRU_LATCHES &lt;/SPAN&gt;를 증가시켜&lt;SPAN&gt; LRU Latch&lt;/SPAN&gt;의 개수를 늘려서 해소할 수 있다&lt;SPAN&gt;. SQL&lt;/SPAN&gt;문을 튜닝하면 해당 프로세스에 의해 액세스 될 블록의 수가 줄어들 것이므로 당연히 효과를 거둘 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;위와 같이 버퍼캐쉬를 관리하는&lt;SPAN&gt; Latch&lt;/SPAN&gt;에 대한 경합은 경합이 집중되는 특정&lt;SPAN&gt; Child Latch&lt;/SPAN&gt;에 의해 관리되는 버퍼블록을 찾아 해당 블록이 속한 세그먼트 정보를 알아낸다면 보다 효과적인 조치가 가능할 것인데&lt;SPAN&gt;, latch free wait&lt;/SPAN&gt;일 경우&lt;SPAN&gt; v$session_wait&lt;/SPAN&gt;의&lt;SPAN&gt; p1raw &lt;/SPAN&gt;값이 해당&lt;SPAN&gt; Latch address&lt;/SPAN&gt;를 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;이 값을&lt;SPAN&gt; x$bh&lt;/SPAN&gt;의&lt;SPAN&gt; hladdr &lt;/SPAN&gt;값과 조인하면 관련 오브젝트 이름을 추적해볼 수 있다&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select file#, dbarfil, dbablk, obj, o.name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from x$bh bh, obj$ o &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where bh.hladdr = :latch_address&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and bh.obj = o.obj#;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: auto 0cm&quot; class=bodycopy&gt;&lt;FONT color=#000000&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;[5] Redo buffer &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;관련&lt;SPAN&gt; Wait&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt; &lt;br /&gt;&lt;br /&gt;■ Redo buffer &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;구조&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;오라클 리두 구조의 핵심은 모든 트랜잭션 정보를&lt;SPAN&gt; OS &lt;/SPAN&gt;파일에 기록해 둠으로써 시스템 장애가 발생해도 트랜잭션 단위의 일관성을 잃지 않고 데이터베이스를 복구할 수 있도록 하겠다는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;리두버퍼&lt;SPAN&gt;(redo buffer)&lt;/SPAN&gt;는 이처럼 데이터베이스에 가해진 모든 변경내역을 파일에 기록 하기 위해 잠시 사용되는 메모리 영역이며 리두버퍼에 기록된 리두 정보는 다시 리두로그 파일에 기록되어짐으로써 향후 시스템 복구 작업이 필요할 때에 사용하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클의 리두 구조를 이해하기 위한 핵심적인 개념을 간단히 정리해보면 다음과 같다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;데이터베이스에 대한 변경내역은 블록단위로 저장된다&lt;SPAN&gt;. &lt;/SPAN&gt;물론 변경되는 모든 블록의 복사본을 통째로 저장하는 것은 아니고 블록별로 어떠한 오퍼레이션을 수행하는가&lt;SPAN&gt;, &lt;/SPAN&gt;그리고 그러한 블록별 오퍼레이션을 어떠한 순서로 수행하는가를 기록한다&lt;SPAN&gt;. &lt;/SPAN&gt;이러한 블록별 단위액션을&lt;SPAN&gt; change vector&lt;/SPAN&gt;라고 부르며&lt;SPAN&gt; change vector&lt;/SPAN&gt;가 순차적으로 모여 하나의 의미 있는&lt;SPAN&gt; redo record&lt;/SPAN&gt;가 된다&lt;SPAN&gt;. &lt;/SPAN&gt;리두로그는 시스템내의 모든 프로세스들에 의해 생성되는&lt;SPAN&gt; redo record&lt;/SPAN&gt;를&lt;SPAN&gt; SCN &lt;/SPAN&gt;순서대로 저장해놓은 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;이때 리두로그에 기록되는 내용에는 테이블이나 인덱스 등의 데이터 블록 뿐만 아니라&lt;SPAN&gt; UNDO &lt;/SPAN&gt;블록 또는&lt;SPAN&gt; UNDO &lt;/SPAN&gt;세그먼트 헤더블록에 대한 변경내용을 포함하는 모든 버퍼캐쉬 블록에 대한 변경내역이 대상이 된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;리두 정보는 항상 실제 변경작업보다 먼저 보관되어야 어떤 상황에서도 복구가 가능해진다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서 트랜잭션을 수행하는&lt;SPAN&gt;(&lt;/SPAN&gt;데이터베이스 블록에 변경을 가하는&lt;SPAN&gt;) &lt;/SPAN&gt;프로세스는 우선 자신의 메모리 영역 내에서 수행하고자 하는 작업에 대한 리두 레코드를 만들며&lt;SPAN&gt;, &lt;/SPAN&gt;이를 먼저 로그버퍼에 기록하고 난 후에 실제 버퍼블록에도 리두 레코드에 담긴 내용을 따라 적용하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;또한 같은 이유로 오라클은 변경된 버퍼캐쉬 블록을 디스크에 기록하기 전에 먼저 관련된 로그버퍼를 로그파일에 기록하는 작업을 처리하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서&lt;SPAN&gt;, &lt;/SPAN&gt;리두 버퍼 또는 리두 파일&lt;SPAN&gt; (&lt;/SPAN&gt;아카이브 파일을 포함해서&lt;SPAN&gt;)&lt;/SPAN&gt;에 대한 쓰기 작업에 병목이 생기면 시스템에 대한 모든 작업 수행이 대기 상태로 빠지게 될 것이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;트랜잭션 커밋을 요청한 프로세스는 우선 해당 트랜잭션에 대한 로그버퍼가 리두로그 파일에 기록되는 작업이 완료된 후에야 커밋 완료 메세지를 받을 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;그렇게 함으로써 버퍼캐쉬 변경내역을 모두 디스크에 반영하지 않고도 시스템의 비정상 종료시 리두파일에 저장된 리두 레코드로부터 커밋 트랜잭션을 보존할 수 있게 된다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;■&lt;/SPAN&gt;리두 버퍼관련&lt;SPAN&gt; Wait &lt;/SPAN&gt;이벤트&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;일반적으로는 로그버퍼 관련해서 심각한&lt;SPAN&gt; Waiting&lt;/SPAN&gt;이 발생하는 경우는 드물지만&lt;SPAN&gt;, &lt;/SPAN&gt;가끔 볼 수 있는 리두 관련&lt;SPAN&gt; Wait &lt;/SPAN&gt;이벤트로는 다음과 같은 것들이 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ Log file parallel write&lt;br /&gt;&lt;br /&gt;LGWR&lt;/SPAN&gt;가&lt;SPAN&gt; OS&lt;/SPAN&gt;에 리두 버퍼를 로그파일에 기록하도록 요청해 둔 상태에서 대기하고 있는 이벤트이다&lt;SPAN&gt;. &lt;/SPAN&gt;이 경우에는&lt;SPAN&gt; DML &lt;/SPAN&gt;작업시&lt;SPAN&gt; nologging &lt;/SPAN&gt;옵션 등을 사용하여 시스템에서 발생하는 리두 레코드의 절대량을 줄이거나 하드웨어적으로&lt;SPAN&gt; DISK IO&lt;/SPAN&gt;를 개선시켜주는 것이 방안이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷Log buffer space &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;프로세스가 로그버퍼를 할당하기 위해 대기하는 이벤트인데&lt;SPAN&gt; LGWR&lt;/SPAN&gt;가 로그버퍼를 비우는 것보다 더 빠른 속도로 프로세스들이 리두 레코드를 생성하고 있다는 것을 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;로그버퍼의 크기를 늘려주거나&lt;SPAN&gt;, DISK IO&lt;/SPAN&gt;의 속도를 개선시켜 주어야 할 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;로그버퍼는 로그파일에 대응되는 블록이 맵핑이 된 후에 사용될 수 있으므로 로그 스위치 발생시에도&lt;SPAN&gt; log buffer space &lt;/SPAN&gt;이벤트에 대한 대기가 발생할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;로그 스위치가 너무 잦다면 리두 로그 파일의 크기를 증가시켜주는 것이 좋다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;▷ Log file sync&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;프로세스가 커밋이나 롤백을 수행할 경우 우선&lt;SPAN&gt; LGWR&lt;/SPAN&gt;에게 해당 트랜잭션까지의 로그버퍼를&lt;SPAN&gt; Write&lt;/SPAN&gt;하도록 요청하게 되는데 이때 사용자 프로세스는&lt;SPAN&gt; LGWR&lt;/SPAN&gt;가 쓰기 작업을 완료할 때까지&lt;SPAN&gt; log file sync &lt;/SPAN&gt;이벤트를 대기하게 된다&lt;SPAN&gt;. &lt;/SPAN&gt;버전&lt;SPAN&gt; 8i &lt;/SPAN&gt;이전에서는&lt;SPAN&gt; DBWR&lt;/SPAN&gt;가 쓰기 작업을 수행하다가 아직 관련 로그버퍼가 파일에 쓰여지지 않을 경우에도&lt;SPAN&gt; LGWR&lt;/SPAN&gt;에 쓰기를 요청하고&lt;SPAN&gt; log file sync &lt;/SPAN&gt;이벤트에 대기하였으나&lt;SPAN&gt; 8i &lt;/SPAN&gt;이상에서는&lt;SPAN&gt; log file sync&lt;/SPAN&gt;에 대기하는 대신&lt;SPAN&gt; deferred write queue&lt;/SPAN&gt;에 등록한다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서 버전&lt;SPAN&gt; 8i &lt;/SPAN&gt;이상에서&lt;SPAN&gt; log file sync &lt;/SPAN&gt;이벤트는 사용자 프로세스에 의해 요청되는 커밋&lt;SPAN&gt;, &lt;/SPAN&gt;롤백 처리 시에 발생하며 결국&lt;SPAN&gt;, &lt;/SPAN&gt;시스템 전체적으로 커밋&lt;SPAN&gt;, &lt;/SPAN&gt;롤백이 지나치게 자주 수행되거나 상대적으로&lt;SPAN&gt; LGWR&lt;/SPAN&gt;의 쓰기 속도가 느린 것이 원인일 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;또는&lt;SPAN&gt;, &lt;/SPAN&gt;로그 버퍼가 너무 커서&lt;SPAN&gt; LGWR&lt;/SPAN&gt;가 백그라운드로&lt;SPAN&gt; flush &lt;/SPAN&gt;시켜주기 전&lt;SPAN&gt;( &lt;/SPAN&gt;보통&lt;SPAN&gt; 3&lt;/SPAN&gt;초 간격 및&lt;SPAN&gt; 1/3 &lt;/SPAN&gt;이상의 로그버퍼가 찬 경우&lt;SPAN&gt;)&lt;/SPAN&gt;에 커밋에 의한 쓰기 요청이 이루어지므로 커밋 시점에 써야 할 양이 많아 대기시간이 길어지는 경우도 있는데 이 경우엔 리두 버퍼의 크기를 오히려 줄여주어야 할 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;또는&lt;SPAN&gt;, LGWR wait for redo copy &lt;/SPAN&gt;이벤트가 많이 나타난다면&lt;SPAN&gt; redo copy latch&lt;/SPAN&gt;가 너무 많아&lt;SPAN&gt; LGWR&lt;/SPAN&gt;이 사용자 프로세스가 버퍼 쓰기 작업을 마칠 때까지 기다리는 일이 잦은 경우를 뜻하며 이 경우엔&lt;SPAN&gt; _LOG_SIMULTANEOUS_COPIES &lt;/SPAN&gt;파라미터를 사용하여&lt;SPAN&gt; copy latch&lt;/SPAN&gt;의 수를 줄여주는 조치가 필요할 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot; align=center&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;시스템에 따라서 언급한 외의 다양한 이벤트 대기와 원인이 존재할 수 있고&lt;SPAN&gt;, &lt;/SPAN&gt;더구나 버전에 따라&lt;SPAN&gt; redo copy latch&lt;/SPAN&gt;와&lt;SPAN&gt; redo allocation latch&lt;/SPAN&gt;를 포함한 리두 운영 방식상 상이한 부분이 많이 존재하여 그에 따른 추가적인 튜닝요소가 있으나 이 글에서는 지면 관계상&lt;SPAN&gt; 8i&lt;/SPAN&gt;를 기준으로 간략히 정리해 보았다&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;[6] Top SQL &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=parahead1&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;튜닝하기&lt;SPAN&gt; (&lt;/SPAN&gt;맺음&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;FONT color=#000000&gt;■ Top SQL &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;튜닝의 필요성&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;지난 회까지 실시간&lt;SPAN&gt; Wait Event &lt;/SPAN&gt;모니터링과 이벤트별 원인분석에 대해서 간단히 살펴보았다&lt;SPAN&gt;. &lt;/SPAN&gt;일시적 성능장애 시 재빨리 원인을 찾아내는 것도 중요하지만 보다 바람직한 것은 이러한 성능문제를 사전에 최대한 예방하는 것임은 두말할 필요도 없다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클 성능문제를 다루는데 있어 강조하고 싶은 한가지는 시스템 자원의 배분을 변경하거나 증가를 고려하기 전에&lt;SPAN&gt;, &lt;/SPAN&gt;불필요한 작업을 최소화함으로써 자원요구 횟수와 자원점유 시간을 줄여주는 노력이 선행되어야 한다는 점이다&lt;SPAN&gt;. Wait Event&lt;/SPAN&gt;에 대한 모니터링과 분석이&lt;SPAN&gt; DBMS&lt;/SPAN&gt;의 자원에 대한 경합과 관련된 성능문제를 파악하는데 유용한 방법임에 틀림없지만&lt;SPAN&gt;, &lt;/SPAN&gt;이 같은 정보는 데이터베이스 혹은 그 하위 레벨의 구조적 비효율성을 드러내어줄 뿐 애플리케이션 레벨의 문제를 직접적으로 알려주지는 않는다&lt;SPAN&gt;. &lt;/SPAN&gt;간단히 말하자면&lt;SPAN&gt;, DBMS &lt;/SPAN&gt;튜닝을 위해 정성을 쏟기 이전에 애플리케이션 튜닝에 더 많은 투자를 하라는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;이런 관점에서&lt;SPAN&gt; DBA&lt;/SPAN&gt;가 비교적 손쉽게 수행할 수 있는 것이 오라클 메모리로부터 악성&lt;SPAN&gt; SQL&lt;/SPAN&gt;을 추출하여 튜닝하는&lt;SPAN&gt; Top SQL &lt;/SPAN&gt;튜닝이다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;■Top SQL &lt;/SPAN&gt;추출기준&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;사용자로부터 요청되어 오라클 내에서 처리되는 모든&lt;SPAN&gt; SQL&lt;/SPAN&gt;은 오라클의 공유 메모리 영역 가운데&lt;SPAN&gt; shared pool&lt;/SPAN&gt;내에 캐쉬 되어 지며 이렇게 캐쉬 되어 있는&lt;SPAN&gt; SQL&lt;/SPAN&gt;과 관련 통계정보는&lt;SPAN&gt; V$SQL &lt;/SPAN&gt;또는&lt;SPAN&gt; V$SQLAREA &lt;/SPAN&gt;뷰를 통해서 조회할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;이때&lt;SPAN&gt;, Top SQL&lt;/SPAN&gt;을 추출하는데 중요하게 사용되는 항목은&lt;SPAN&gt; buffer_gets, disk_reads, executions, rows_processed &lt;/SPAN&gt;등이며 일반적으로 아래와 같은 기준으로&lt;SPAN&gt; Top SQL&lt;/SPAN&gt;을 추출한다&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 바탕&quot;&gt;▷&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt; Buffer gets &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;수치가 높은&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; SQL&lt;br /&gt;&lt;br /&gt;Buffer gets&lt;/SPAN&gt;은 해당&lt;SPAN&gt; SQL&lt;/SPAN&gt;이 처리되는 과정에서 액세스한 메모리 블록의 수&lt;SPAN&gt;(Logical IO)&lt;/SPAN&gt;를 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;물론 이 값이 높다고 해서 무조건 악성&lt;SPAN&gt; SQL&lt;/SPAN&gt;임을 의미하는 것은 아니다&lt;SPAN&gt;. &lt;/SPAN&gt;즉&lt;SPAN&gt;, &lt;/SPAN&gt;이러한&lt;SPAN&gt; SQL&lt;/SPAN&gt;들 중에는 실제로 요구되는 작업량이 많아서 액세스 블록수가 많은&lt;SPAN&gt; SQL&lt;/SPAN&gt;도 있을 것이며 불필요한 처리를 수행하느라 액세스 블록수가 많은&lt;SPAN&gt; SQL&lt;/SPAN&gt;도 있을 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;어느 경우이든 이&lt;SPAN&gt; SQL&lt;/SPAN&gt;들이 현재 오라클 서버에 부하를 많이 유발하고 있는&lt;SPAN&gt; SQL&lt;/SPAN&gt;들이라는 것만은 분명하며 사소한 비효율적 요소에 의해서도 서버에 큰 영향을 미칠 잠재적인 가능성이 있는&lt;SPAN&gt; SQL&lt;/SPAN&gt;들이므로 일차적으로 점검해 볼 필요가 있다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;악성&lt;SPAN&gt; SQL&lt;/SPAN&gt;여부를 판단하기 위한&lt;SPAN&gt; Buffer gets&lt;/SPAN&gt;의 수치에 절대적인 기준은 없으며 시스템의 데이터 규모와 트랜잭션량에 따라 다르다&lt;SPAN&gt;. buffer gets&lt;/SPAN&gt;값을 기준으로 역순으로 정렬한 후 패턴을 살펴 적절한 추출기준을 선택하는 것이 좋을 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;만일&lt;SPAN&gt;, &lt;/SPAN&gt;상위 몇 개의&lt;SPAN&gt; SQL&lt;/SPAN&gt;들과 나머지&lt;SPAN&gt; SQL&lt;/SPAN&gt;들 간의&lt;SPAN&gt; buffer gets&lt;/SPAN&gt;의 편차가 매우 크게 나타난다면 상위 몇 개의&lt;SPAN&gt; SQL&lt;/SPAN&gt;에 대해서만 튜닝을 수행해 주어도 큰 효과를 볼 수 있을 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;일반적으로 시스템에서 수행되는&lt;SPAN&gt; SQL &lt;/SPAN&gt;가운데 심각한 부하를 야기하는&lt;SPAN&gt; SQL&lt;/SPAN&gt;은 소수에 불과한 경우가 많으며 뒤에 기술될 다른 조건들과 조합하여 최대&lt;SPAN&gt; Top 50&lt;/SPAN&gt;건 정도를 추출하여 효율성을 검증하고 튜닝을 통해 개선하는 작업을 수행하여 주면 충분하다&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 바탕&quot;&gt;▷&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;Buffer gets/Execution &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;수치가 높은&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; SQL&lt;br /&gt;&lt;br /&gt;SQL&lt;/SPAN&gt;의 단위 수행당&lt;SPAN&gt; buffer gets &lt;/SPAN&gt;수치를 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;단위 수행당&lt;SPAN&gt; buffer gets &lt;/SPAN&gt;값이 높다는 것은 해당&lt;SPAN&gt; SQL&lt;/SPAN&gt;의 처리가 비효율적일 가능성이 높음을 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;액세스 블록수가 비정상적으로 많다는 것은&lt;SPAN&gt; rows_processed &lt;/SPAN&gt;값과 비교하여 상대적으로 평가되어야 할 부분이다&lt;SPAN&gt;. &lt;/SPAN&gt;실제로 반환하는 로우수가 매우 많은 배치성&lt;SPAN&gt; SQL&lt;/SPAN&gt;이거나 혹은 반환되는 로우수가&lt;SPAN&gt; 1&lt;/SPAN&gt;건이라도&lt;SPAN&gt; Group Function&lt;/SPAN&gt;이 사용된&lt;SPAN&gt; Summary&lt;/SPAN&gt;성&lt;SPAN&gt; SQL&lt;/SPAN&gt;이라면 처리과정에서 많은 수의 블록을 액세스하는 것은 불가피하며 이 자체가 문제가 될 수는 없기 때문이다&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 바탕&quot;&gt;▷&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;Execution &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;수치가 높은&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; SQL&lt;br /&gt;&lt;br /&gt;Executions&lt;/SPAN&gt;는 해당&lt;SPAN&gt; SQL&lt;/SPAN&gt;이 수행된 횟수를 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;수행횟수가 잦은&lt;SPAN&gt; SQL&lt;/SPAN&gt;은&lt;SPAN&gt; buffer gets&lt;/SPAN&gt;가 높을 경우가 많다&lt;SPAN&gt;. &lt;/SPAN&gt;일반적으로 십만&lt;SPAN&gt; ~ &lt;/SPAN&gt;백만 회 이상 빈번하게 수행되는&lt;SPAN&gt; SQL&lt;/SPAN&gt;이라면&lt;SPAN&gt; buffer gets/executions &lt;/SPAN&gt;값이&lt;SPAN&gt; 2&lt;/SPAN&gt;자리 수 이내의 값을 나타내어야 정상이며 단위 수행당 속도는&lt;SPAN&gt; 0.1&lt;/SPAN&gt;초 이내로 매우 빨라야 한다&lt;SPAN&gt;. &lt;/SPAN&gt;따라서&lt;SPAN&gt;, &lt;/SPAN&gt;이러한&lt;SPAN&gt; SQL&lt;/SPAN&gt;의 경우&lt;SPAN&gt; SQL&lt;/SPAN&gt;단위로 보면 튜닝의 효과를 체감하기도 어렵고 필요성을 느끼지 못할 수도 있으나 튜닝을 통해 아주 적은 차이라도 개선을 가져올 수 있다면 시스템 전체적인 관점에서는 매우 큰 효과를 가져다 줄 수 있다는 점이 중요하다&lt;SPAN&gt;. &lt;/SPAN&gt;하루에 백만번 수행되는&lt;SPAN&gt; SQL&lt;/SPAN&gt;에 대하여&lt;SPAN&gt; 0.01&lt;/SPAN&gt;초를 개선한다면 시스템 시간으로 하루에 일만초를 절약한 셈이 될 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;이러한&lt;SPAN&gt; SQL&lt;/SPAN&gt;에 대해서는 현재 빠르게 수행되고 있다고 해도 더 빠르게 처리할 여지가 없는지 점검하고 가능한 모든 방안을 동원하여 개선시키도록 노력해야 한다&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#000000&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt; mso-bidi-font-family: 바탕&quot;&gt;▷&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;disk_reads &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: 굴림체; FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#000000&gt;수치가 높은&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt; SQL&lt;br /&gt;&lt;br /&gt;disk_reads&lt;/SPAN&gt;는&lt;SPAN&gt; SQL&lt;/SPAN&gt;이 처리되는 과정에서 물리적인&lt;SPAN&gt; IO&lt;/SPAN&gt;를 통해 액세스한 블록의 수를 의미한다&lt;SPAN&gt;. &lt;/SPAN&gt;물리적&lt;SPAN&gt; IO&lt;/SPAN&gt;의 발생여부는 원하는 블록이 메모리에 캐쉬되어 있는지 여부에 따라 달라지므로 수행되는 횟수와 수행되는 시간대의 데이터베이스 캐쉬 상황에 따라 유동적이라고 할 수 있다&lt;SPAN&gt;. &lt;/SPAN&gt;그러나&lt;SPAN&gt;, buffer gets&lt;/SPAN&gt;의 값과 비교하여&lt;SPAN&gt; disk_reads&lt;/SPAN&gt;의 비율이 높은&lt;SPAN&gt; SQL&lt;/SPAN&gt;은&lt;SPAN&gt; Full Scan&lt;/SPAN&gt;을 수행하는&lt;SPAN&gt; SQL&lt;/SPAN&gt;일 가능성이 큰데 그 이유는&lt;SPAN&gt; Full Scan&lt;/SPAN&gt;을 통해 액세스되는 블록들은 기본적으로&lt;SPAN&gt; DB buffer Cache&lt;/SPAN&gt;의&lt;SPAN&gt; LRU &lt;/SPAN&gt;알고리즘에 의해 관리되지 않으므로 작업 후에 곧바로 메모리로부터 밀려나 버릴 가능성이 높기 때문이다&lt;SPAN&gt;. &lt;/SPAN&gt;반면에 인덱스를 통하여 액세스하는 경우&lt;SPAN&gt;, &lt;/SPAN&gt;일상적으로 액세스되는 테이블에 대해서는 인덱스의&lt;SPAN&gt; root block&lt;/SPAN&gt;과&lt;SPAN&gt; branch block&lt;/SPAN&gt;은 항상 메모리에 캐쉬 되어 있을 확률이 높으므로 물리적&lt;SPAN&gt; IO&lt;/SPAN&gt;를 유발하는 비율이 낮을 수 밖에 없다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;. &lt;br /&gt;&lt;br /&gt;■Top SQL &lt;/SPAN&gt;추출기준&lt;/FONT&gt;&lt;SPAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;글을 맺기 전에 마지막으로 언급하고 싶은 것 하나는&lt;SPAN&gt;, &lt;/SPAN&gt;문제가 발생했을 때 문제의 원인이&lt;SPAN&gt; bug&lt;/SPAN&gt;로 인한 것일 가능성을 항상 염두에 두어야 헛된 고생을 덜한다는 것이다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클도 사람이 만든 프로그램이므로 버그가 없을 수 없으나 다행히 오라클의 버그 및 패치 관리는 매우 훌륭한 편이다&lt;SPAN&gt;. &lt;/SPAN&gt;오라클 메타링크를 활용하여 유사한 문제가 보고된 적은 없는지 관련 버그에 대한 정보는 없는지 살펴보아야 하며&lt;SPAN&gt;, &lt;/SPAN&gt;평소에 정기적으로 패치 및 버전 관리를 해주는 것이 바람직하다&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;SPAN&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/SPAN&gt;오라클 시스템을 운영하다 보면 현실에서는 다양한 문제가 복잡하게 얽혀 나타나므로 명백한 원인을 파악하기가 쉽지 않을 때가 많지만&lt;SPAN&gt;, &lt;/SPAN&gt;운영 시 자신의 시스템에서 자주 발생하는&lt;SPAN&gt; Wait &lt;/SPAN&gt;패턴 또한 분명히 존재하므로 굵은 가지들부터 하나씩 이해하고 해결해 나가다 보면 오라클이 우리가 보인 애정에 보답해줄 날이 올 것이라 믿는다&lt;SPAN&gt;. &lt;/SPAN&gt;지면 관계상&lt;SPAN&gt; OPS(RAC) &lt;/SPAN&gt;관련&lt;SPAN&gt; Wait&lt;/SPAN&gt;을 비롯한 기타&lt;SPAN&gt; Wait &lt;/SPAN&gt;이벤트에 대해 다루지 못한 점&lt;SPAN&gt;, &lt;/SPAN&gt;그리고 각&lt;SPAN&gt; Wait &lt;/SPAN&gt;이벤트별로 좀더 친절한 설명과 사례를 제시하지 못한 점이 아쉬움으로 남지만&lt;SPAN&gt;, &lt;/SPAN&gt;누구든 아주 작은 것 하나라도 이 글을 통해 새로이 얻을 수 있었다면 그 이상 바랄 것은 없다&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-821-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-821-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;div class=&quot;another_category another_category_color_gray&quot;&gt;
&lt;h4&gt;'&lt;a href=&quot;/category/ORACLE&quot;&gt;ORACLE&lt;/a&gt;&amp;nbsp;&gt;&amp;nbsp;&lt;a href=&quot;/category/ORACLE/TUNING&quot;&gt;TUNING&lt;/a&gt;' 카테고리의 다른 글&lt;/h4&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/821&quot; &gt;Oracle Wait Event 모니터링&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/820&quot; &gt;Chapter 9 Tuning Buffer Cache&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/05/02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/815&quot; &gt;AWR report 생성 및 분석&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/814&quot; &gt;10g)과거에 사용된 바인드변수 추적 / SQL이 실행된 옵티마이저 환경&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/813&quot; &gt;SQL 튜닝 대상선정(10g)하기&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;a href=&quot;/812&quot; &gt;V$SQL BIND CAPTURE&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span&gt;(0)&lt;/span&gt;
&lt;/th&gt;
&lt;td&gt;
2012/03/08&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;</description>
			<category>TUNING</category>
			<category>oracle</category>
			<category>wait event</category>
			<author>[PineTree]</author>
			<guid>http://theone79.tistory.com/821</guid>
			<comments>http://theone79.tistory.com/821#entry821comment</comments>
			<pubDate>Wed, 02 May 2012 14:03:23 +0900</pubDate>
		</item>
	</channel>
</rss>
