<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>天道酬勤 &#187; Database</title>
	<atom:link href="http://www.ochef.net/category/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ochef.net</link>
	<description>RDBMS and My Life</description>
	<lastBuildDate>Mon, 19 Jul 2010 02:01:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4817</generator>
		<item>
		<title>ORA-00600:[2103],[1],[0],[1],[900]的处理</title>
		<link>http://www.ochef.net/2010/07/ora-00600-2103/</link>
		<comments>http://www.ochef.net/2010/07/ora-00600-2103/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 02:00:31 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[ora-600[2103]]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=852</guid>
		<description><![CDATA[上周四中午刚放下订餐电话，手机响起鸟，客户的一套AIX 5.2 ML04  +  Oracle 10.2.0.3.0 (+Dataguard)的系统挂了，业务中断。收拾东西下楼打车赶往客户机房，大致半小时后到达客户机房登录系统检查发现系统报：“ORA-00600: internal error code, arguments: [2103], [1], [0], [1], [900]”错误。[2103]的错误与controlfile有关，[900]是等待的超时时间S。进一步检查发现，问题是出现在每天晚上0点都有crontab调度的系统备份任务：0点将系统置为热备模式&#8212;&#62;连接FTP服务器&#8212;&#62;CP需要备份的所有件&#8212;&#62;最后将系统退出热备模式。metalink [ID 567891.1]说：系统处在热备份模式下，在日志发生切换时获取控制文件队列信息时发生了超时，这个等待时间默认是15分钟（900s）。虽然这里有一个Bug 6018274，但我的习惯是只有在做完了尽可能的尝试之后再认为是bug。 继续检查发现，系统一直在进行kill动作：“Killing enqueue blocker (pid=827572) on resource CF-00000000-00000000”，但遗憾的是这个动作失败了，尝试手工kill，失败。而且此时在系统中只要一发起与log相关的动作系统就挂起，无赖之下想重启oracle(这个想法很邪恶啊，如果待会儿起不来，how?),FT&#8230;&#8230;正常关闭失败（意料中的），abort关机失败，回到OS中kill -9失败。万般无赖之下，只能重启OS，没想到的是AIX重启到一般的时候挂起，此时已经13：30了，还没有吃饭（12点客户叫俺一起去吃饭看到她那表情俺也有点不好意思。）不管了，先搞定系统再说吧。由于这套系统是P690上的一个分区，只要在HMC上使用“Hard Reset”选项了，鼠标移到此分区上检查了又检查了，俺视力5.2的说，但就怕这时看错了的话，后果，你知道的。在这前后几分钟，真有心跳加速的感觉，就怕待会儿库打不开啊。10分钟之后，my god，库顺利的打开了，哎呀，肚子不饿了，起应用一切顺利，先让别人开工吧。 造成ORA-00600 [2103]错误的原因有下： 1) 控制文件存放在I/O非常慢的存储系统上。 2) 频繁的日志切换，或日志文件过小或日志文件组数目过少。 3) 同时使用了异步I/O或多个数据写进程。 4) Oracle软件内部Bug。 5) OS/硬件问题。 讯问过客户工程师，确实在前一天18：30的时候进行数据整理，发生过非常频繁的日志切换，高峰时1分钟达5次日志切换，但在其后一天是正常的，由于环境复杂，暂时先做如下测试：（以影响业务程度最小化且实施难易程度依次列出） 1. 增大日志组成员大小，同时增加日志组数目。 2. 由于业务的特殊性，商讨能否修改备份策略来避开热备份。 3. 根据官方建议打补丁：Patch 5923866，在失效的情况下，将系统升级到10.2.0.4.0之上（最新分布为10.2.0.5.0） 4. 将操作系统从AIX 5.2 ML04升级到AIX 5.2 ML05（Oracle在[ID [...]]]></description>
			<content:encoded><![CDATA[<p>上周四中午刚放下订餐电话，手机响起鸟，客户的一套<strong>AIX 5.2 ML04  +  Oracle 10.2.0.3.0 (+Dataguard)</strong>的系统挂了，业务中断。收拾东西下楼打车赶往客户机房，大致半小时后到达客户机房登录系统检查发现系统报：“<strong>ORA-00600: internal error code, arguments: [2103], [1], [0], [1], [900]</strong>”错误。[2103]的错误与<strong>controlfile</strong>有关，<strong>[900]</strong>是等待的超时时间S。进一步检查发现，问题是出现在每天晚上0点都有crontab调度的系统备份任务：0点将系统置为热备模式&#8212;&gt;连接FTP服务器&#8212;&gt;CP需要备份的所有件&#8212;&gt;最后将系统退出热备模式。metalink <strong>[ID 567891.1]</strong>说：<strong>系统处在热备份模式下，在日志发生切换时获取控制文件队列信息时发生了超时，这个等待时间默认是15分钟（900s）</strong>。虽然这里有一个<span style="color: #ff0000;">Bug 6018274</span>，但我的习惯是只有在做完了尽可能的尝试之后再认为是bug。</p>
<p>继续检查发现，系统一直在进行kill动作：“<strong>Killing enqueue blocker (pid=827572) on resource CF-00000000-00000000</strong>”，但遗憾的是这个动作失败了，尝试手工kill，失败。而且此时在系统中只要一发起与log相关的动作系统就挂起，无赖之下想重启oracle(这个想法很邪恶啊，如果待会儿起不来，how?),FT&#8230;&#8230;正常关闭失败（意料中的），abort关机失败，回到OS中kill -9失败。万般无赖之下，只能重启OS，没想到的是AIX重启到一般的时候挂起，此时已经13：30了，还没有吃饭（12点客户叫俺一起去吃饭看到她那表情俺也有点不好意思。）不管了，先搞定系统再说吧。由于这套系统是P690上的一个分区，只要在HMC上使用“Hard Reset”选项了，鼠标移到此分区上检查了又检查了，俺视力5.2的说，但就怕这时看错了的话，后果，你知道的。在这前后几分钟，真有心跳加速的感觉，就怕待会儿库打不开啊。10分钟之后，my god，库顺利的打开了，哎呀，肚子不饿了，起应用一切顺利，先让别人开工吧。</p>
<p>造成ORA-00600 [2103]错误的原因有下：</p>
<p>1) 控制文件存放在I/O非常慢的存储系统上。</p>
<p>2) 频繁的日志切换，或日志文件过小或日志文件组数目过少。</p>
<p>3) 同时使用了异步I/O或多个数据写进程。</p>
<p>4) Oracle软件内部Bug。</p>
<p>5) OS/硬件问题。</p>
<p>讯问过客户工程师，确实在前一天18：30的时候进行数据整理，发生过非常频繁的日志切换，高峰时1分钟达5次日志切换，但在其后一天是正常的，由于环境复杂，暂时先做如下测试：（以影响业务程度最小化且实施难易程度依次列出）</p>
<p>1. 增大日志组成员大小，同时增加日志组数目。</p>
<p>2. 由于业务的特殊性，商讨能否修改备份策略来避开热备份。</p>
<p>3. 根据官方建议打补丁：Patch 5923866，在失效的情况下，将系统升级到10.2.0.4.0之上（最新分布为10.2.0.5.0）</p>
<p>4. 将操作系统从AIX 5.2 ML04升级到AIX 5.2 ML05（Oracle在<strong>[ID 406191.1]</strong>中建议）</p>
<p>BTW：在我重启完系统后问客户，此套系统应该有Dataguard的吧，答案是肯定的。到这里，可能大家会说为什么不在出问题的时候将系统切换到备机上。其实切换系统更多决定因素不仅仅只在技术层面的。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/07/ora-00600-2103/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>expdp的network_link参数</title>
		<link>http://www.ochef.net/2010/05/expdp-of-network_link-parameters/</link>
		<comments>http://www.ochef.net/2010/05/expdp-of-network_link-parameters/#comments</comments>
		<pubDate>Wed, 19 May 2010 04:27:33 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[expdp]]></category>
		<category><![CDATA[network_link]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=833</guid>
		<description><![CDATA[expdp是server端工具，但可以通过NETWORK_LINK参数实现远端导出，但是前提是远端也安装有Oracle数据库，只有CLIENT端是没有办法利用数据泵的。 这里要指出的是：network_link不支持远端导出分区表中的某一个分区，但可以导整个分区表。以下为测试过程： 创建分区表sales： [oracle@ora10g ~]$ sqlplus &#8216;/as sysdba&#8217; SQL&#62; CREATE TABLE sales (sale_date DATE NOT NULL) PARTITION BY RANGE (sale_date) (PARTITION sales2010_q1 VALUES LESS THAN (TO_DATE(&#8217;2010-04-01&#8242;,&#8217;YYYY-MM-DD&#8217;)) TABLESPACE sp1, PARTITION sales2010_q2 VALUES LESS THAN (TO_DATE(&#8217;2010-07-01&#8242;,&#8217;YYYY-MM-DD&#8217;)) TABLESPACE sp2, PARTITION sales2010_q3 VALUES LESS THAN (TO_DATE(&#8217;2010-10-01&#8242;,&#8217;YYYY-MM-DD&#8217;)) TABLESPACE sp3); 插入4条记录： SQL&#62; select count(*) from sales; COUNT(*) &#8212;&#8212;&#8212;- 4 SQL&#62; select [...]]]></description>
			<content:encoded><![CDATA[<p>expdp是server端工具，但可以通过NETWORK_LINK参数实现远端导出，但是前提是远端也安装有Oracle数据库，只有CLIENT端是没有办法利用数据泵的。</p>
<p>这里要指出的是：network_link不支持远端导出分区表中的某一个分区，但可以导整个分区表。以下为测试过程：</p>
<p><strong>创建分区表sales：</strong></p>
<p>[oracle@ora10g ~]$ sqlplus &#8216;/as sysdba&#8217;</p>
<p>SQL&gt; CREATE TABLE sales</p>
<p>(sale_date DATE NOT NULL)</p>
<p>PARTITION BY RANGE (sale_date)</p>
<p>(PARTITION sales2010_q1</p>
<p>VALUES LESS THAN (TO_DATE(&#8217;2010-04-01&#8242;,&#8217;YYYY-MM-DD&#8217;))</p>
<p>TABLESPACE sp1,</p>
<p>PARTITION sales2010_q2</p>
<p>VALUES LESS THAN (TO_DATE(&#8217;2010-07-01&#8242;,&#8217;YYYY-MM-DD&#8217;))</p>
<p>TABLESPACE sp2,</p>
<p>PARTITION sales2010_q3</p>
<p>VALUES LESS THAN (TO_DATE(&#8217;2010-10-01&#8242;,&#8217;YYYY-MM-DD&#8217;))</p>
<p>TABLESPACE sp3);</p>
<p><strong>插入4条记录： </strong></p>
<p>SQL&gt; select count(*) from sales;</p>
<p>COUNT(*)</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>4</p>
<p>SQL&gt; select * from sales partition(sales2010_q1);</p>
<p>SALE_DATE</p>
<p>&#8212;&#8212;&#8212;&#8212;</p>
<p>23-MAR-10</p>
<p>SQL&gt; select * from sales partition(sales2010_q2);</p>
<p>SALE_DATE</p>
<p>&#8212;&#8212;&#8212;&#8212;</p>
<p>23-JUN-10</p>
<p>22-JUN-10</p>
<p>SQL&gt; select * from sales partition(sales2010_q3);</p>
<p>SALE_DATE</p>
<p>&#8212;&#8212;&#8212;&#8212;</p>
<p>23-SEP-10</p>
<p><strong>远端机器上创建 directory目录、赋权、创建dblink:</strong></p>
<p>[oracle@node1 /]$ sqlplus &#8216;/as sysdba&#8217;</p>
<p>SQL&gt; create directory dump_dir as &#8216;/backup&#8217;;</p>
<p>Directory created.</p>
<p>SQL&gt; grant read,write on directory dump_dir to ochef;</p>
<p>Grant succeeded.</p>
<p>SQL&gt; create database link test connect to ochef identified by oracle using &#8216;primary&#8217;;</p>
<p>Database link created.</p>
<p>SQL&gt; select count(*) from ochef.sales@test;</p>
<p>COUNT(*)</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>4</p>
<p><strong>远程导出整个分区表：</strong></p>
<p>[oracle@node1 ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales</p>
<p>Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 &#8211; Production</p>
<p>With the Partitioning, Real Application Clusters, OLAP, Data Mining</p>
<p>and Real Application Testing options</p>
<p>Starting &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243;:  ochef/******** directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales</p>
<p>Estimate in progress using BLOCKS method&#8230;</p>
<p>Processing object type TABLE_EXPORT/TABLE/TABLE_DATA</p>
<p>Total estimation using BLOCKS method: 384 KB</p>
<p>Processing object type TABLE_EXPORT/TABLE/TABLE</p>
<p><span style="color: #ff0000;">. . exported &#8220;OCHEF&#8221;.&#8221;SALES&#8221;                             4.960 KB       4 rows</span></p>
<p>Master table &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243; successfully loaded/unloaded</p>
<p>******************************************************************************</p>
<p>Dump file set for OCHEF.SYS_EXPORT_TABLE_01 is:</p>
<p>/backup/sales.dmp</p>
<p>Job &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243; successfully completed at 11:12:43</p>
<p><strong>远程导出分区表的某个分区：</strong></p>
<p>[oracle@node1 ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp network_link=test tables=sales:sales2010_q2</p>
<p><span style="color: #ff0000;">ORA-39001: invalid argument value</span></p>
<p><span style="color: #ff0000;">ORA-39203: Partition selection is not supported over a network link.</span></p>
<p><strong>本地导出分区表的某个分区：</strong></p>
<p>[oracle@ora10g ~]$ expdp ochef/oracle directory=dump_dir dumpfile=sales.dmp tables=sales:sales2010_q2</p>
<p>Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 &#8211; Production</p>
<p>With the Partitioning, OLAP, Data Mining and Real Application Testing options</p>
<p>Starting &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243;:  ochef/******** directory=dump_dir dumpfile=sales.dmp tables=sales:sales2010_q2</p>
<p>Estimate in progress using BLOCKS method&#8230;</p>
<p>Processing object type TABLE_EXPORT/TABLE/TABLE_DATA</p>
<p>Total estimation using BLOCKS method: 128 KB</p>
<p>Processing object type TABLE_EXPORT/TABLE/TABLE</p>
<p><span style="color: #ff0000;">. . exported &#8220;OCHEF&#8221;.&#8221;SALES&#8221;:&#8221;SALES2010_Q2&#8243;              4.937 KB       2 rows</span></p>
<p>Master table &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243; successfully loaded/unloaded</p>
<p>******************************************************************************</p>
<p>Dump file set for OCHEF.SYS_EXPORT_TABLE_01 is:</p>
<p>/backup/sales.dmp</p>
<p>Job &#8220;OCHEF&#8221;.&#8221;SYS_EXPORT_TABLE_01&#8243; successfully completed at 11:07:07</p>
<p>关于远程expdp用户权限问题，请移步<a href="http://space.itpub.net/4227/viewspace-448665" target="_blank">这里</a>。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/05/expdp-of-network_link-parameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>db_unique_name与service_name</title>
		<link>http://www.ochef.net/2010/05/db_unique_name-and-service_name/</link>
		<comments>http://www.ochef.net/2010/05/db_unique_name-and-service_name/#comments</comments>
		<pubDate>Wed, 19 May 2010 01:59:16 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[db_unique_name]]></category>
		<category><![CDATA[service_name]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=830</guid>
		<description><![CDATA[为了data guard在角色切换时不用事先准备好二个init.ora参数文件，那么就需要配置valid_for参数，类似如下配置（备库）： db_unique_name=ora10gstd log_archive_dest_1=&#8217;location=/u01/app/oracle/oradata/ora10g/archive valid_for=(all_logfiles,all_roles) db_unique_name=ora10gstd&#8217; log_archive_dest_2=&#8217;service=standby lgwr async valid_for=(online_logfiles,primary_role)   db_unique_name=ora10g&#8217; db_unique_name在oracle的高可用dataguard的应用中会经常使用，有和db_name不一样的作用，在物理dg中，要求主、从库都有一样的db_name（虽然他们和rac不一样，并不是同一个库），但是他们的db_unique_name是不一样的，用以进行不同的标示。 注意：如果修改了db_unique_name的值，会影响到Service_names，也会影响到动态监听的service_name，因此，也应修改tnsnames.ora文件中service_name的服务名，否则，即使tnsping能通，但无法提供相应的服务。 -The End-]]></description>
			<content:encoded><![CDATA[<p>为了data guard在角色切换时不用事先准备好二个init.ora参数文件，那么就需要配置valid_for参数，类似如下配置（备库）：</p>
<p>db_unique_name=ora10gstd</p>
<p>log_archive_dest_1=&#8217;location=/u01/app/oracle/oradata/ora10g/archive valid_for=(all_logfiles,all_roles) db_unique_name=ora10gstd&#8217;</p>
<p>log_archive_dest_2=&#8217;service=standby lgwr async valid_for=(online_logfiles,primary_role)   db_unique_name=ora10g&#8217;</p>
<p>db_unique_name在oracle的高可用dataguard的应用中会经常使用，有和db_name不一样的作用，在物理dg中，要求主、从库都有一样的db_name（虽然他们和rac不一样，并不是同一个库），但是他们的db_unique_name是不一样的，用以进行不同的标示。</p>
<p><strong>注意：如果修改了db_unique_name的值，会影响到Service_names，也会影响到动态监听的service_name，因此，也应修改tnsnames.ora文件中service_name的服务名，否则，即使tnsping能通，但无法提供相应的服务。</strong></p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/05/db_unique_name-and-service_name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Restart</title>
		<link>http://www.ochef.net/2010/04/oracle-restart/</link>
		<comments>http://www.ochef.net/2010/04/oracle-restart/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 05:21:38 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[restart]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=827</guid>
		<description><![CDATA[接上一篇文章，我用同样的安装方法同样的配置成功了，也许还真是版本不兼容的问题。 [oracle@ora11gr2 ~]$ cat /etc/issue Enterprise Linux Enterprise Linux Server release 5.3 (Carthage) [oracle@ora11gr2 ~]$ uname -a Linux ora11gr2 2.6.18-128.el5 #1 SMP Wed Jan 21 07:58:05 EST 2009 i686 i686 i386 GNU/Linux [oracle@ora11gr2 ~]$ srvctl config database -d ora11gr2 -a Database unique name: ora11gr2 Database name: Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1 Oracle user: oracle Spfile: Domain: Start [...]]]></description>
			<content:encoded><![CDATA[<p>接<a href="http://www.ochef.net/2010/04/ora-12547-tns-lost-contact/" target="_blank">上一篇</a>文章，我用同样的安装方法同样的配置成功了，也许还真是版本不兼容的问题。</p>
<p>[oracle@ora11gr2 ~]$ cat /etc/issue<br />
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)</p>
<p>[oracle@ora11gr2 ~]$ uname -a<br />
Linux ora11gr2 2.6.18-128.el5 #1 SMP Wed Jan 21 07:58:05 EST 2009 i686 i686 i386 GNU/Linux</p>
<p>[oracle@ora11gr2 ~]$ srvctl config database -d ora11gr2 -a<br />
Database unique name: ora11gr2<br />
Database name:<br />
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1<br />
Oracle user: oracle<br />
Spfile:<br />
Domain:<br />
Start options: open<br />
Stop options: immediate<br />
Database role: PRIMARY<br />
Management policy: AUTOMATIC<br />
Disk Groups:<br />
Services:<br />
Database is enabled<br />
[oracle@ora11gr2 ~]$</p>
<p>模拟了进程异常终止之后，restart将其启动的过程：</p>
<p>[oracle@ora11gr2 ~]$ srvctl start database -d ora11gr2<br />
[oracle@ora11gr2 ~]$ ps -ef|grep ora_<br />
oracle    4881     1  0 12:42 ?        00:00:00 ora_pmon_ora11gr2<br />
oracle    4883     1  0 12:42 ?        00:00:00 ora_vktm_ora11gr2<br />
oracle    4887     1  0 12:42 ?        00:00:00 ora_gen0_ora11gr2<br />
oracle    4889     1  0 12:42 ?        00:00:00 ora_diag_ora11gr2<br />
oracle    4891     1  0 12:42 ?        00:00:00 ora_dbrm_ora11gr2<br />
oracle    4893     1  1 12:42 ?        00:00:00 ora_psp0_ora11gr2<br />
oracle    4895     1  1 12:42 ?        00:00:00 ora_dia0_ora11gr2<br />
oracle    4897     1 21 12:42 ?        00:00:03 ora_mman_ora11gr2<br />
oracle    <span style="color: #ff0000;">4899 </span> 1  0 12:42 ?        00:00:00 ora_dbw0_ora11gr2<br />
oracle    4901     1  2 12:42 ?        00:00:00 ora_lgwr_ora11gr2<br />
oracle    4903     1  0 12:42 ?        00:00:00 ora_ckpt_ora11gr2<br />
oracle    4905     1  1 12:42 ?        00:00:00 ora_smon_ora11gr2<br />
oracle    4907     1  0 12:42 ?        00:00:00 ora_reco_ora11gr2<br />
oracle    4909     1  6 12:42 ?        00:00:00 ora_mmon_ora11gr2<br />
oracle    4911     1  0 12:42 ?        00:00:00 ora_mmnl_ora11gr2<br />
oracle    4913     1  0 12:42 ?        00:00:00 ora_d000_ora11gr2<br />
oracle    4915     1  0 12:42 ?        00:00:00 ora_s000_ora11gr2<br />
oracle    4985     1  0 12:42 ?        00:00:00 ora_p000_ora11gr2<br />
oracle    4987     1  0 12:42 ?        00:00:00 ora_p001_ora11gr2<br />
oracle    4989     1  0 12:42 ?        00:00:00 ora_qmnc_ora11gr2<br />
oracle    5007     1  7 12:42 ?        00:00:00 ora_cjq0_ora11gr2<br />
oracle    5011     1 34 12:42 ?        00:00:00 ora_j000_ora11gr2<br />
oracle    5013     1  8 12:42 ?        00:00:00 ora_j001_ora11gr2<br />
oracle    5015  3000  0 12:42 pts/0    00:00:00 grep ora_<br />
[oracle@ora11gr2 ~]$ date<br />
Wed Apr 21 12:42:59 CST 2010<br />
[oracle@ora11gr2 ~]$ kill -9 <span style="color: #ff0000;">4899</span><br />
[oracle@ora11gr2 ~]$ ps -ef|grep ora_<br />
oracle    5100     1 10 12:43 ?        00:00:00 ora_pmon_ora11gr2<br />
oracle    5102     1 11 12:43 ?        00:00:00 ora_vktm_ora11gr2<br />
oracle    5106     1  9 12:43 ?        00:00:00 ora_gen0_ora11gr2<br />
oracle    5108     1  9 12:43 ?        00:00:00 ora_diag_ora11gr2<br />
oracle    5110     1 10 12:43 ?        00:00:00 ora_dbrm_ora11gr2<br />
oracle    5112     1  7 12:43 ?        00:00:00 ora_psp0_ora11gr2<br />
oracle    5114  3000  0 12:43 pts/0    00:00:00 grep ora_<br />
[oracle@ora11gr2 ~]$ ps -ef|grep ora_<br />
oracle    5100     1  1 12:43 ?        00:00:00 ora_pmon_ora11gr2<br />
oracle    5102     1  0 12:43 ?        00:00:00 ora_vktm_ora11gr2<br />
oracle    5106     1  0 12:43 ?        00:00:00 ora_gen0_ora11gr2<br />
oracle    5108     1  0 12:43 ?        00:00:00 ora_diag_ora11gr2<br />
oracle    5110     1  1 12:43 ?        00:00:00 ora_dbrm_ora11gr2<br />
oracle    5112     1  1 12:43 ?        00:00:00 ora_psp0_ora11gr2<br />
oracle    5116     1  1 12:43 ?        00:00:00 ora_dia0_ora11gr2<br />
oracle    5118     1 24 12:43 ?        00:00:02 ora_mman_ora11gr2<br />
oracle    <span style="color: #ff0000;">5120</span> 1  1 12:43 ?        00:00:00 ora_dbw0_ora11gr2<br />
oracle    5122     1  1 12:43 ?        00:00:00 ora_lgwr_ora11gr2<br />
oracle    5124     1  1 12:43 ?        00:00:00 ora_ckpt_ora11gr2<br />
oracle    5126     1  2 12:43 ?        00:00:00 ora_smon_ora11gr2<br />
oracle    5128     1  0 12:43 ?        00:00:00 ora_reco_ora11gr2<br />
oracle    5130     1  6 12:43 ?        00:00:00 ora_mmon_ora11gr2<br />
oracle    5132     1  1 12:43 ?        00:00:00 ora_mmnl_ora11gr2<br />
oracle    5134     1  0 12:43 ?        00:00:00 ora_d000_ora11gr2<br />
oracle    5136     1  0 12:43 ?        00:00:00 ora_s000_ora11gr2<br />
oracle    5206     1  2 12:43 ?        00:00:00 ora_p000_ora11gr2<br />
oracle    5208     1  1 12:43 ?        00:00:00 ora_p001_ora11gr2<br />
oracle    5210     1  1 12:43 ?        00:00:00 ora_qmnc_ora11gr2<br />
oracle    5228     1  2 12:43 ?        00:00:00 ora_cjq0_ora11gr2<br />
oracle    5232  3000  0 12:43 pts/0    00:00:00 grep ora_<br />
[oracle@ora11gr2 ~]$ date<br />
Wed Apr 21 12:43:35 CST 2010</p>
<p><a href="http://www.dbform.com/html/2010/1110.html" target="_blank">这里</a>你还可以参考kamus大师的文章。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/04/oracle-restart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORA-12547: TNS:lost contact</title>
		<link>http://www.ochef.net/2010/04/ora-12547-tns-lost-contact/</link>
		<comments>http://www.ochef.net/2010/04/ora-12547-tns-lost-contact/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 13:21:04 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[ORA-12547]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=817</guid>
		<description><![CDATA[这个错误还真没碰到过，记录一下。 背景：原本想在VMware+OEL5.3+ORACLE 11.2（已创建了单实例数据库,32bit）上安装Grid Infrastructure，最终目的就是想使用Oracle Restart，Restart是集成在Grid Infrastructure里面的不能单独安装，可以像在10g里使用SRVCTL来管理数据库，当然单实例也是可以的，且还有另一大好处就是用restart管理的资源譬如instance、listener等在进程异常终止后会自动启动（注：在sqlplus中用命令停止的restart不能再次自动启动）。结果grid是安装成功了，但是在SRVCTL中配置实例、监听信息的时候报错无法配置成功，后来想是不是应该先安装grid再安装Oracle最后再建库（后查阅资料grid是可以在已有库上安装的），说干就干，反正按照自己写的文档ctrl+c、ctrl+v的也快，再加上RHEL不久前发布了5.5，ORACLE在之后的一个多星期也放出了OEL5.5，想着测试一下新版本，从安装OS－&#62;修改系统参数、配置Oracle用户环境变量—&#62;安装Oracle软件一切顺利，哪知DBCA到最后一步出现： ORA-12547: TNS:lost contact 好家伙，半道杀出个程咬金，最初以因xmanager出问题了，由于建库的脚本刚刚已经创建，心想用CRT手工建库得了，往往越想快点看得结果却越看不到结果： [oracle@ora11.2 ~]$ sqlplus &#8216;/as sysdba&#8217; SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 18 09:24:31 2010 Copyright (c) 1982, 2009, Oracle.  All rights reserved. ERROR: ORA-12547: TNS:lost contact Enter user-name: 兄弟，咋的了，装了无数次系统还从未遇到这种情况啊，什么原因引起的还真不知道，唉，先google一下，说可能是libaio-0.3.106、binutils相关包没有安装，打开Oracle在线文档一个一个检查，可结果是都安装了啊 [root@ora11.2 ~]# uname -a Linux ora11.2 2.6.18-194.el5 #1 SMP Mon Mar 29 20:06:41 EDT 2010 [...]]]></description>
			<content:encoded><![CDATA[<p>这个错误还真没碰到过，记录一下。</p>
<p>背景：原本想在VMware+OEL5.3+ORACLE 11.2（已创建了单实例数据库,32bit）上安装Grid Infrastructure，最终目的就是想使用Oracle Restart，Restart是集成在Grid Infrastructure里面的不能单独安装，可以像在10g里使用SRVCTL来管理数据库，当然单实例也是可以的，且还有另一大好处就是用restart管理的资源譬如instance、listener等在进程异常终止后会自动启动（注：在sqlplus中用命令停止的restart不能再次自动启动）。结果grid是安装成功了，但是在SRVCTL中配置实例、监听信息的时候报错无法配置成功，后来想是不是应该先安装grid再安装Oracle最后再建库（后查阅资料grid是可以在已有库上安装的），说干就干，反正按照自己写的文档ctrl+c、ctrl+v的也快，再加上RHEL不久前发布了5.5，ORACLE在之后的一个多星期也放出了OEL5.5，想着测试一下新版本，从安装OS－&gt;修改系统参数、配置Oracle用户环境变量—&gt;安装Oracle软件一切顺利，哪知DBCA到最后一步出现：</p>
<p>ORA-12547: TNS:lost contact</p>
<p>好家伙，半道杀出个程咬金，最初以因xmanager出问题了，由于建库的脚本刚刚已经创建，心想用CRT手工建库得了，往往越想快点看得结果却越看不到结果：</p>
<p>[oracle@ora11.2 ~]$ sqlplus &#8216;/as sysdba&#8217;</p>
<p>SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 18 09:24:31 2010</p>
<p>Copyright (c) 1982, 2009, Oracle.  All rights reserved.</p>
<p>ERROR:<br />
ORA-12547: TNS:lost contact</p>
<p>Enter user-name:</p>
<p>兄弟，咋的了，装了无数次系统还从未遇到这种情况啊，什么原因引起的还真不知道，唉，先google一下，说可能是libaio-0.3.106、binutils相关包没有安装，打开Oracle在线文档一个一个检查，可结果是都安装了啊</p>
<p>[root@ora11.2 ~]# uname -a<br />
Linux ora11.2 2.6.18-194.el5 #1 SMP Mon Mar 29 20:06:41 EDT 2010 i686 i686 i386 GNU/Linux<br />
[root@ora11.2 ~]# cat /etc/issue<br />
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)</p>
<p>[root@ora11.2 ~]# rpm -q &#8211;verify `uname -r | awk -FEL &#8216;{ printf(&#8220;kernel-%s-%sEL\n&#8221;,$2,$1); }&#8217; | sed &#8216;s/&#8211;/-/g&#8217;`<br />
package kernel-2.6.18-194.el5EL is not installed</p>
<p>不知道为什么说我没有安装kernel,实际上是安装了的</p>
<p>[root@ora11.2 ~]# rpm -qa|grep kernel<br />
kernel-headers-2.6.18-194.el5<br />
kernel-2.6.18-194.el5</p>
<p>不行了，上MOS找找，根据ID 272516.1说的，应该是kernel参数设置问题，这里RedHat给出了一张<a href="http://www.redhat.com/docs/manuals/database/RHDB-2.1-Manual/admin_user/kernel-resources.html" target="_blank">图</a>：</p>
<table border="1" cellspacing="0" cellpadding="4" bgcolor="#e0e0e0">
<thead>
<tr>
<th align="LEFT" valign="TOP">Name</th>
<th align="LEFT" valign="TOP">Description</th>
<th align="LEFT" valign="TOP">Reasonable  Values</th>
</tr>
</thead>
<tbody>
<tr>
<td align="LEFT" valign="TOP"><tt>SHMMAX</tt></td>
<td align="LEFT" valign="TOP">Maximum  size of shared memory segment (bytes)</td>
<td align="LEFT" valign="TOP">250kB  + 8.2kB * <tt>shared_buffers</tt> + 14.2kB * <tt>max_connections</tt> or infinity</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SHMMIN</tt></td>
<td align="LEFT" valign="TOP">Minimum size of shared memory segment (bytes)</td>
<td align="LEFT" valign="TOP">1</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SHMALL</tt></td>
<td align="LEFT" valign="TOP">Total  amount of shared memory available (bytes or pages)</td>
<td align="LEFT" valign="TOP">if bytes, same as <tt>SHMMAX</tt>; if  pages, <tt>ceil(SHMMAX/PAGE_SIZE)</tt></td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SHMSEG</tt></td>
<td align="LEFT" valign="TOP">Maximum number of shared memory segments per  process</td>
<td align="LEFT" valign="TOP">only 1 segment is needed, but  the default is much higher</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SHMMNI</tt></td>
<td align="LEFT" valign="TOP">Maximum  number of shared memory segments system-wide</td>
<td align="LEFT" valign="TOP">like <tt>SHMSEG</tt> plus room for other  applications</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SEMMNI</tt></td>
<td align="LEFT" valign="TOP">Maximum  number of semaphore identifiers (that is, sets)</td>
<td align="LEFT" valign="TOP">&gt;= ceil(max_connections / 16)</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SEMMNS</tt></td>
<td align="LEFT" valign="TOP">Maximum number of semaphores system-wide</td>
<td align="LEFT" valign="TOP">ceil(max_connections / 16) * 17 + room for  other applications</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SEMMSL</tt></td>
<td align="LEFT" valign="TOP">Maximum  number of semaphores per set</td>
<td align="LEFT" valign="TOP">&gt;= 17</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SEMMAP</tt></td>
<td align="LEFT" valign="TOP">Number of entries in semaphore map</td>
<td align="LEFT" valign="TOP">see text</td>
</tr>
<tr>
<td align="LEFT" valign="TOP"><tt>SEMVMX</tt></td>
<td align="LEFT" valign="TOP">Maximum value of semaphore</td>
<td align="LEFT" valign="TOP">&gt;= 255  (The default is often 32767, do not change  unless asked to.)</td>
</tr>
</tbody>
</table>
<p>结果反复的检查调整内核参数，二个比较重要的参数：</p>
<p><span style="color: #ff0000;">kernel.shmall</span> = 2097152  共享内存总量，以页为单位,对于32位系统，一页=4k，也就是4096字节,2097152*4k/1024/1024 = 8G 就是说可用共享内存一共8G<br />
<span style="color: #ff0000;">kernel.shmmax</span> = 2147483648 （默认536870912，512M）  以字节为单位</p>
<p>检查oracle的环境变量，relink all等一系列操作结果错误依旧没有消除。突然想起在安装64位系统的时候，默认只安装了32位的包，必须手工再次安装相应64位的包，<strong>那反过来是不是安装32位是不是也需要64位的某些包（当时确实这样想的，现在觉得有点扯啊）</strong>，在经历三个多小时的下载时间后强行安装部分64位的包后重启系统，测试，FT。</p>
<p>现在怀疑是OEL与Oracle软件版本兼容的问题，如果有解决过相同问题的朋友还请告之。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/04/ora-12547-tns-lost-contact/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>db_files and maxdatafiles argument</title>
		<link>http://www.ochef.net/2010/04/db_files-and-maxdatafiles-argument/</link>
		<comments>http://www.ochef.net/2010/04/db_files-and-maxdatafiles-argument/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 14:33:59 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[db_files;maxdatafiles]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=814</guid>
		<description><![CDATA[今天学习了db_files和maxdatafiles两个参数，记录一下。比较了9i、10g、11g三个版本，在我的实验环境中（都是默认没有修改过的），9i、10g、11g的db_files默认值为200，而9i、11g的maxdatafiles为100，10g rac环境为1024，单实例为100。db_files参数在数据库的初始化参数文件中指定，maxdatafiles在控制文件中指定,一般db_files&#60;=maxdatafiles。如果在添加一个数据文件时，其编号已经超出了maxdatafiles的设定值，但是小于或等于db_files的设定值，控制文件会自动扩展maxdatafiles的值以满足容纳更多的数据文件信息的需求，所以指定db_files参数的值对数据库更为关键和重要，因为maxdatafiles会自动扩展。 BTW:指定db_files的值会影响数据库内存的使用，详情请参考eagle的相关文章。 -The End-]]></description>
			<content:encoded><![CDATA[<p>今天学习了db_files和maxdatafiles两个参数，记录一下。比较了9i、10g、11g三个版本，在我的实验环境中（都是默认没有修改过的），9i、10g、11g的db_files默认值为200，而9i、11g的maxdatafiles为100，10g rac环境为1024，单实例为100。db_files参数在数据库的初始化参数文件中指定，maxdatafiles在控制文件中指定,一般db_files&lt;=maxdatafiles。如果在添加一个数据文件时，其编号已经超出了maxdatafiles的设定值，但是小于或等于db_files的设定值，控制文件会自动扩展maxdatafiles的值以满足容纳更多的数据文件信息的需求，所以指定db_files参数的值对数据库更为关键和重要，因为maxdatafiles会自动扩展。</p>
<p>BTW:指定db_files的值会影响数据库内存的使用，详情请参考<a href="http://www.dbafan.com/blog/" target="_blank">eagle</a>的<a href="http://www.dbafan.com/blog/?p=92" target="_blank">相关文章</a>。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/04/db_files-and-maxdatafiles-argument/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIX network buffer参数设置引起RAC故障</title>
		<link>http://www.ochef.net/2010/03/aix-network-buffer-parameter-is-set-to-rise-to-rac-failures/</link>
		<comments>http://www.ochef.net/2010/03/aix-network-buffer-parameter-is-set-to-rise-to-rac-failures/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 04:49:54 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[ora-600[12333]]]></category>
		<category><![CDATA[rac_udp]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=807</guid>
		<description><![CDATA[故障日期：2010年3月23日 11:30 AM 生产环境：数据库：  Oracle 10.2.0.4  2Nodes RAC 操作系统：AIX 5309 故障现象： 现象1：在23日上午11:30，发现应用系统不能连接到RAC的实例1（Instance name:int1），此时实例2是正常的。 现象2：使用辅助工具TOAD也不能连接到实例1。 现象3：在实例1所在机器的本地使用SQLPLUS可以连接到实例1，此时也能在实例2上通过TNS连接到实例1。 现象4：15：19重启实例1后系统恢复正常。 故障分析： 1.根据实例1的alert log日志记载，在11：30记录的错误如下： Tue Mar 23 11:30:08 2010 WARNING: inbound connection timed out (ORA-3136) Tue Mar 23 11:32:05 2010 WARNING: inbound connection timed out (ORA-3136) 首先来了解ORA-3136这个错误，该错误表示客户端在sqlnet.ora文件中SQLNET.INBOUND_CONNECT_TIMEOUT参数定义的时间内没有完成登录认证，该参数默认值为60S，据Oracle官方文档记载，此默认值能够满足绝大多数条件；此外该错误还涉及到listener.ora文件中定义的参数INBOUND_CONNECT_TIMEOUT_LISTENER，Oracle 10.2.0.1之前默认值为0，从10.2.0.1开始默认值为60S，根据alert log日志记录的其它信息，目前暂时排除实例1的错误是由以上参数造成。 2.Alert log还记载 …… Tue Mar 23 12:15:36 2010 Errors in file [...]]]></description>
			<content:encoded><![CDATA[<p>故障日期：2010年3月23日 11:30 AM</p>
<p>生产环境：数据库：  Oracle 10.2.0.4  2Nodes RAC</p>
<p>操作系统：AIX 5309</p>
<p>故障现象：</p>
<p>现象1：在23日上午11:30，发现应用系统不能连接到RAC的实例1（Instance name:int1），此时实例2是正常的。</p>
<p>现象2：使用辅助工具TOAD也不能连接到实例1。</p>
<p>现象3：在实例1所在机器的本地使用SQLPLUS可以连接到实例1，此时也能在实例2上通过TNS连接到实例1。</p>
<p>现象4：15：19重启实例1后系统恢复正常。</p>
<p><strong>故障分析：</strong></p>
<p>1.根据实例1的alert log日志记载，在11：30记录的错误如下：</p>
<p>Tue Mar 23 11:30:08 2010</p>
<p>WARNING: inbound connection timed out (ORA-3136)</p>
<p>Tue Mar 23 11:32:05 2010</p>
<p>WARNING: inbound connection timed out (ORA-3136)</p>
<p>首先来了解ORA-3136这个错误，该错误表示客户端在sqlnet.ora文件中SQLNET.INBOUND_CONNECT_TIMEOUT参数定义的时间内没有完成登录认证，该参数默认值为60S，据Oracle官方文档记载，此默认值能够满足绝大多数条件；此外该错误还涉及到listener.ora文件中定义的参数INBOUND_CONNECT_TIMEOUT_LISTENER，Oracle 10.2.0.1之前默认值为0，从10.2.0.1开始默认值为60S，根据alert log日志记录的其它信息，目前暂时排除实例1的错误是由以上参数造成。</p>
<p>2.Alert log还记载</p>
<p>……</p>
<p>Tue Mar 23 12:15:36 2010</p>
<p>Errors in file /soft/oracle/admin/int/udump/int1_ora_2617378.trc:</p>
<p>ORA-00600: internal error code, arguments: [12333], [7], [2], [49], [], [], [], []</p>
<p>……</p>
<p>根据Oracle metalink文档[ID 35928.1]描述：<strong>&#8220;Fatal Two-Task Protocol Violation&#8221;</strong></p>
<p>ORA-600 [12333]描述收到一个没有经过验证的无效的网络数据包，这里有二个可能：一是客户端多线程的应用发送了一个无顺序的OCI调用请求，二是网络缓冲区中的数据可能被覆盖，进一步查看trace文件，可以看到每个trace文件的开关处都有：PROTOCOL VIOLATION DETECTED。</p>
<p>另外，由贵行的带内网管软件Tivoli监控到故障当时RAC心跳网络（ent8）的通信流量信息证明，当时心跳网络流量确实比正常情况下高，RAC 采用UDP 协议进行节点间的互联通信，查询系统统计如下：</p>
<p>RACDB1# netstat -p udp -s</p>
<p>udp:</p>
<p>574337869 datagrams received</p>
<p>0 incomplete headers</p>
<p>0 bad data length fields</p>
<p>0 bad checksums</p>
<p><span style="color: #ff0000;">169617 dropped due to no socket</span></p>
<p>32335 broadcast/multicast datagrams dropped due to no socket</p>
<p><span style="color: #ff0000;">243 socket buffer overflows</span></p>
<p>574135674 delivered</p>
<p>500048775 datagrams output</p>
<p>RACDB2# netstat -p udp -s</p>
<p>udp:</p>
<p>500187207 datagrams received</p>
<p>0 incomplete headers</p>
<p>0 bad data length fields</p>
<p>0 bad checksums</p>
<p><span style="color: #ff0000;">171357 dropped due to no socket</span></p>
<p>32333 broadcast/multicast datagrams dropped due to no socket</p>
<p><span style="color: #ff0000;">2108 socket buffer overflows</span></p>
<p>499981409 delivered</p>
<p>574427147 datagrams output</p>
<p>以上信息可以看到，由于系统网络参数network buffer设置不当出现通信问题，查看涉及network buffer大小的参数：</p>
<p>#no -a |pg</p>
<p>sb_max = 1310720</p>
<p>udp_recvspace = 655360</p>
<p>udp_sendspace = 65536</p>
<p>sb_max被用来指定允许的TCP和UDP socket的最大缓冲区大小，默认值为1048576 bytes，1048576 bytes，很显然，udp_recvspace与udp_sendspace设置不对称且sb_max参数设置过小。</p>
<p>3.ORA-600 [12333]的错误也可以由JDBC驱动版本与Oracle数据库版本不一致造成，但贵行此套系统已上线很久，由此可以暂时先排除该原因。另外，根据trace文件的记录，在故障期间有大量的UNION联合查询操作，而这种大量的UNION操作会增加节点间的通信，ashrpt的报告也证实了gc buffer busy随故障时间增加，到最后被剔出RAC降下来。</p>
<p><strong>初步结论：</strong></p>
<p>基于以上情况分析，现初步判断此次故障为：由系统网络buffer参数设置不当引起RAC 节点间的互联网络故障，而节点间的互联网络用于协调各个节点的运行，包括全局锁(global locking) ，队列(enqueue) 和缓存管理(buffer cache management)，建议udp_sendspace 的起始值为db_block_size * db_file_multiblock_read_count ，udp_recvspace 设为udp_sendspace 的4 倍，上限为1048576 。如果发生socket 缓存溢出( 可通过 netstat -s | grep &#8220;socket buffer overflows&#8221; 命令察看) udp_recvspace 参数值需要增加，netstat -p udp -s的结果也证实了这一点。</p>
<p>BTW:这里还有EYGLE大师的文章供参考：</p>
<h3><a href="http://www.eygle.com/digest/2009/07/ibm_aix_oracle_9i_rac_udp.html" target="_blank">IBM AIX Oracle 9i RAC 性能因素 &#8211; udp及其他</a></h3>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/03/aix-network-buffer-parameter-is-set-to-rise-to-rac-failures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中国Oracle用户组</title>
		<link>http://www.ochef.net/2010/03/all-china-oracle-user-group/</link>
		<comments>http://www.ochef.net/2010/03/all-china-oracle-user-group/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 10:31:13 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[ACOUG]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=789</guid>
		<description><![CDATA[最近一老失眠，今儿一大清早就爬起来上网，从google的订阅服务得知：由EYGLE与KAMUS二位大师发起并成立了中国Oracle用户组ACOUG（All China Oracle User Group）。届时，越来越多的数据库爱好者、Oracle爱好者将会出没这里。well，so&#8230;&#8230;一线民工以此博文当贺电来表达喜悦心情，各位工友欲知更多详情请参考官网，谢谢! -The End-]]></description>
			<content:encoded><![CDATA[<p>最近一老失眠，今儿一大清早就爬起来上网，从google的订阅服务得知：由<a href="http://www.eygle.com" target="_blank">EYGLE</a>与<a href="http://www.dbform.com" target="_blank">KAMUS</a>二位大师发起并成立了<strong>中国Oracle用户组</strong><a href="http://www.acoug.org" target="_blank">ACOUG</a>（All China Oracle User Group）。届时，越来越多的数据库爱好者、Oracle爱好者将会出没这里。well，so&#8230;&#8230;一线民工以此博文当贺电来表达喜悦心情，各位工友欲知更多详情请参考官网，谢谢!</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/03/all-china-oracle-user-group/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Surprise!第一本《Oracle DBA手记》</title>
		<link>http://www.ochef.net/2010/01/first-book-oracle-dba-notes/</link>
		<comments>http://www.ochef.net/2010/01/first-book-oracle-dba-notes/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 15:20:26 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[book]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=784</guid>
		<description><![CDATA[Wow，昨天在Eygle大师的Blog上看到《Oracle DBA手记》已经上架了，先恭喜一下这几位大牛（Eygle、Yangtingkun、老熊、zergduan、banping）出了新作。继续往下看，没想到第一本书是寄给我的，这里谢谢Eygle，谢谢几位大牛们，感谢Julia，因为我想大师业务缠身应该没有时间寄书：）。农历新年快到了，这本书对我来说是新年最好的礼物，同时也是莫大的鼓舞，告诫自己努力。图片作证： -The End-]]></description>
			<content:encoded><![CDATA[<p>Wow，昨天在Eygle大师的Blog上看到《<a href="http://www.eygle.com/archives/2010/01/dbanotes_taobao.html" target="_blank">Oracle DBA手记</a>》已经上架了，先恭喜一下这几位大牛（<a href="http://www.eygle.com" target="_blank">Eygle</a>、<a href="http://yangtingkun.itpub.net/index.php" target="_blank">Yangtingkun</a>、<a href="http://www.laoxiong.net" target="_blank">老熊</a>、zergduan、<a href="http://www.banping.com" target="_blank">banping</a>）出了新作。继续往下看，没想到第一本书是寄给我的，这里谢谢Eygle，谢谢几位大牛们，感谢<a href="http://tequilabombom.spaces.live.com/" target="_blank">Julia</a>，因为我想大师业务缠身应该没有时间寄书：）。农历新年快到了，这本书对我来说是新年最好的礼物，同时也是莫大的鼓舞，告诫自己努力。图片作证：<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="246" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://f.yupoo.com/v.swf?id=ochef-ff8080812626f15a0126568801e17959-c" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" width="300" height="246" src="http://f.yupoo.com/v.swf?id=ochef-ff8080812626f15a0126568801e17959-c" quality="high"></embed></object><br />
-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/01/first-book-oracle-dba-notes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VIP Failover Take Long Time After Network Cable Pulled</title>
		<link>http://www.ochef.net/2010/01/vip-failover-take-long-time-after-network-cable-pulled/</link>
		<comments>http://www.ochef.net/2010/01/vip-failover-take-long-time-after-network-cable-pulled/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 02:13:25 +0000</pubDate>
		<dc:creator>ochef</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[TNS-12535]]></category>
		<category><![CDATA[TNS-12560]]></category>
		<category><![CDATA[TNS-505]]></category>

		<guid isPermaLink="false">http://www.ochef.net/?p=751</guid>
		<description><![CDATA[在一个10g RAC环境中测试拔掉网线，vip的切换花了很长时间，在oracle support上搜索如下： [ID 403743.1] Applies to: Oracle Server &#8211; Enterprise Edition &#8211; Version: 10.2.0.1 to 11.1.0.7 This problem can occur on any platform. Symptoms This example is based on SUN Solaris platform, with IPMP configured for the public network. In this case, VIP failover takes almost 4 minutes to complete when both network cables [...]]]></description>
			<content:encoded><![CDATA[<p>在一个10g RAC环境中测试拔掉网线，vip的切换花了很长时间，在<a href="http://support.oracle.com" target="_blank">oracle support</a>上搜索如下：</p>
<p><span style="font-family: helvetica;"><strong>[ID 403743.1]</strong></span></p>
<p>Applies to:</p>
<p>Oracle Server &#8211; Enterprise Edition &#8211; Version: 10.2.0.1 to 11.1.0.7</p>
<p>This problem can occur on any platform.</p>
<p>Symptoms</p>
<p>This example is based on SUN Solaris platform, with IPMP configured for the public network. In this case, VIP failover takes almost 4 minutes to complete when both network cables of the public network are pulled from one node.</p>
<p>crsd.log shows:</p>
<p>2006-12-07 13:14:05.401: [ CRSAPP][4588] CheckResource error for ora.node1.vip error code = 1</p>
<p>2006-12-07 13:14:05.408: [ CRSRES][4588] In stateChanged, ora.node1.vip target is ONLINE</p>
<p>2006-12-07 13:14:05.409: [ CRSRES][4588] ora.node1.vip on node1 went OFFLINE unexpectedly</p>
<p>&lt;&lt;&lt; detect network cable failure and VIP OFFLINE immediately</p>
<p>2006-12-07 13:14:05.410: [ CRSRES][4588] StopResource: setting CLI values</p>
<p>2006-12-07 13:14:05.420: [ CRSRES][4588] Attempting to stop `ora.node1.vip` on member `node1`</p>
<p>2006-12-07 13:14:06.651: [ CRSRES][4588] Stop of `ora.node1.vip` on member `node1` succeeded.</p>
<p>2006-12-07 13:14:06.652: [ CRSRES][4588] ora.node1.vip RESTART_COUNT=0 RESTART_ATTEMPTS=0</p>
<p>2006-12-07 13:14:06.667: [ CRSRES][4588] ora.node1.vip failed on node1 relocating.</p>
<p>2006-12-07 13:14:06.758: [ CRSRES][4588] StopResource: setting CLI values</p>
<p>2006-12-07 13:14:06.766: [ CRSRES][4588] Attempting to stop `ora.node1.LISTENER_NODE1.lsnr` on member `node1`</p>
<p>2006-12-07 13:17:41.399: [ CRSRES][4588] Stop of `ora.node1.LISTENER_NODE1.lsnr` on member `node1` succeeded.</p>
<p>&lt;&lt;&lt; takes 3.5 minutes to stop listener</p>
<p>2006-12-07 13:17:41.402: Attempting to stop `ora.node1.ASM1.asm` on member `node1`</p>
<p>&lt;&lt;&lt; stop dependant inst and ASM</p>
<p>2006-12-07 13:17:55.610: [ CRSRES][4588] Stop of `ora.node1.ASM1.asm` on member `node1` succeeded.</p>
<p>2006-12-07 13:17:55.661: [ CRSRES][4588] Attempting to start `ora.node1.vip` on member `node2`</p>
<p>2006-12-07 13:18:00.260: [ CRSRES][4588] Start of `ora.node1.vip` on member `node2` succeeded.</p>
<p>&lt;&lt;&lt; now VIP failover complete after almost 4 mins</p>
<p>ora.node1.LISTENER_NODE1.lsnr.log shows:</p>
<p>Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1vip)(PORT=1521)(IP=FIRST)))</p>
<p>TNS-12535: TNS:operation timed</p>
<p>2006-12-07 13:17:41.329: [ RACG][1] [23916][1][ora.node1.LISTENER_NODE1.lsnr]: out</p>
<p>TNS-12560: TNS:protocol adapter error</p>
<p>TNS-00505: Operation timed out</p>
<p>Solaris Error: 145: Connection timed out</p>
<p>Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.10.100)(PORT=1521)(IP=FIRST)))</p>
<p>The command completed successfully</p>
<p>Client connection hang during this failover time.</p>
<p>Changes</p>
<p><strong>This may be a new setup, or a setup that was migrated from an earlier release.</strong></p>
<p>Cause</p>
<p>This problem is caused by the first address in the listener.ora configuration being an address that uses the TCP protocol.</p>
<p>In this circumstance, when a network cable is pulled, &#8220;lsnrctl stop&#8221; listener has to wait for TCP timeout before it can check next address. On the Solaris platform, TCP timeout is defined by tcp_ip_abort_cinterval with a default value of 180000 (3 minutes).   That is why shutting down listener almost took 3.5 minutes. (TCP timeout on other platforms may vary).  The error message &#8220;Solaris Error: 145: Connection timed out&#8221; in ora.node1.LISTENER_NODE1.lsnr.log also indicates it is waiting for tcp timeout.</p>
<p>The listener.ora in this scenario is defined as:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">LISTENER_NODE1 <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>DESCRIPTION_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>DESCRIPTION <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> TCP<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>HOST <span style="color: #66cc66;">=</span> node1vip<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>PORT <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1521</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>IP <span style="color: #66cc66;">=</span> FIRST<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> TCP<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>HOST <span style="color: #66cc66;">=</span> 10<span style="color: #66cc66;">.</span>1<span style="color: #66cc66;">.</span>10<span style="color: #66cc66;">.</span>100<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>PORT <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1521</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>IP <span style="color: #66cc66;">=</span> FIRST<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> IPC<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">=</span> EXTPROC<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Solution</p>
<p><span style="color: #ff0000;">To prevent this, move the IPC address to be the first address for the listener in the listener.ora</span>, eg:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">LISTENER_NODE1 <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>DESCRIPTION_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>DESCRIPTION <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> IPC<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">=</span> EXTPROC<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> TCP<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>HOST <span style="color: #66cc66;">=</span> node1vip<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>PORT <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1521</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>IP <span style="color: #66cc66;">=</span> FIRST<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS_LIST <span style="color: #66cc66;">=</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span>ADDRESS <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>PROTOCOL <span style="color: #66cc66;">=</span> TCP<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>HOST <span style="color: #66cc66;">=</span> 10<span style="color: #66cc66;">.</span>1<span style="color: #66cc66;">.</span>10<span style="color: #66cc66;">.</span>100<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>PORT <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1521</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span>IP <span style="color: #66cc66;">=</span> FIRST<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>When lsnrctl tries to stop the listener, it will now connect to the IPC address first, which is available during that time. It will not have to wait for tcp timeout.</p>
<p>After the above change, the VIP failover only takes 48 to 50 seconds to complete regardless of the tcp_ip_abort_cinterval setting.</p>
<p>Please note, listener.ora files newly created from 10.2.0.3 to 11.1.0.7 should have the IPC protocol as the first address in listener.ora in most cases.  However, if you have upgraded from a previous release, or manually modified/copied over a listener.ora from a previous install, you may not have the IPC protocol as the first address, regardless of your version. Manual modification is required to move IPC protocol to be the first address to avoid the problem described in this note.</p>
<p>BTW：<a href="http://www.oralife.cn/html/2010/597_vip-ipc.html" target="_blank">梦想有多远</a>的blog也有说明。</p>
<p>-The End-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ochef.net/2010/01/vip-failover-take-long-time-after-network-cable-pulled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
