﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-flyonok-随笔分类-oralce</title><link>http://www.cppblog.com/flyonok/category/6245.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 14:53:03 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 14:53:03 GMT</pubDate><ttl>60</ttl><item><title>oracle tips</title><link>http://www.cppblog.com/flyonok/archive/2008/01/18/41417.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Fri, 18 Jan 2008 08:29:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/18/41417.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/41417.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/18/41417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/41417.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/41417.html</trackback:ping><description><![CDATA[ar
<p>one:svrmgrl move to sqlplus&nbsp;at oracle 10g<br>two:more instance can use same listener</p>
<p>three:a dictionary managed tablesoace is one whose free space management is
done in data dictionary that resides in system tablespace.<br>
where as a locally managed tablespace means the free space for the tablespace is managed with in the tablespace using bitmaps.<br>
locally managed tablespaces gives better performance in comparison to dmt.<br>
but if ur system tablespace is locally managed then other tablespaces r also locally managed.<br>
and in near future oracle may stop supporting dictionary managed tablespaces.</p>
<p>four:emctl start/stop dbconsole;isqlplus start/stop;</p>
<br>
<p>&nbsp;</p>
five:find port of em or isqlplus:$ORACLE_HOME/install/portlist.ini<br><br>six:modify sys user password when it's password was lost <br>alter &nbsp; user &nbsp; sys &nbsp; identified &nbsp; by &nbsp; sys;<br><br>seven:支持中文字符的数据库，NLS_LANG为&nbsp; SIMPLIFIED CHINESE_CHINA.ZHS16GBK<br><br>eight:--archive <br>show parameter db_recovery;<br>select * from V$FLASH_RECOVERY_AREA_USAGE;<br>archive log list;<br><code><span style="color: #000000;"><span style="color: #0000bb;">show&nbsp;parameter&nbsp;log_archive_start</span></span></code><br>
<pre><code><span style="color: #000000;"><span style="color: #007700;"></span><span style="color: #0000bb;">alter&nbsp;database&nbsp;archivelog</span><span style="color: #007700;">;<br></span></span></code><code><span style="color: #000000;"><span style="color: #0000bb;">alter&nbsp;database&nbsp;noarchivelog</span><span style="color: #007700;">;<br>startup nomount;<br>alter database mount;<br>alter database open;<br></span></span></code></pre>
<br>    <img src ="http://www.cppblog.com/flyonok/aggbug/41417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-18 16:29 <a href="http://www.cppblog.com/flyonok/archive/2008/01/18/41417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c-&gt;xlib.lock failed.问题的彻底解决</title><link>http://www.cppblog.com/flyonok/archive/2008/01/15/41202.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Tue, 15 Jan 2008 09:31:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/15/41202.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/41202.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/15/41202.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/41202.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/41202.html</trackback:ping><description><![CDATA[安装一些java软件，经常发现&#8220;xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c-&gt;xlib.lock failed.&#8221;类似错误，包括最近的SuSE10.x、Fedora8以及Ubuntu7.x系统，网上文章到处贴，一共提出了两种观点：<br>1，倒退回FC7的libx11，<br>卸载以下两个包的时候，可能有依赖问题无法卸载，在后面添加 --nodeps 参数强制卸载，以fedora 8为例，将其里面的包：
<p style="margin: 1em 1em 0pt; font-weight: bold;">QUOTE:</p>
<blockquote style="border: 1px dotted #dddddd; margin: 0pt 1em 1em; padding: 0.5em; line-height: 1.8em;">&nbsp; &nbsp; libX11-1.1.3-4.fc8.i386.rpm<br>&nbsp; &nbsp; libX11-devel-1.1.3-4.fc8.i386.rpm</blockquote>卸载。<br><br>安装以下两个rpm包，到rpm serch网站下载这两个rpm包。
<p style="margin: 1em 1em 0pt; font-weight: bold;">QUOTE:</p>
<blockquote style="border: 1px dotted #dddddd; margin: 0pt 1em 1em; padding: 0.5em; line-height: 1.8em;">&nbsp; &nbsp; libX11-1.0.3-8.fc7.i386.rpm<br>&nbsp; &nbsp; libX11-devel-1.0.3-8.fc7.i386.rpm</blockquote>2，自己修改java程序代码，其主要原因是：
<p style="margin: 1em 1em 0pt; font-weight: bold;">QUOTE:</p>
<blockquote style="border: 1px dotted #dddddd; margin: 0pt 1em 1em; padding: 0.5em; line-height: 1.8em;">&nbsp; &nbsp; The libxcb package provides an interface to the X Window System protocol, which replaces the current Xlib interface. Xlib can also use XCB as a transport layer, allowing software to make requests and receive responses with both.</blockquote>从linuxfromscratch.org上面找到的说明，竟然是xlib的界面换到xcb库里了，而设计xcb的牛人们又严格得紧，非要在某个源文件的第50行加一个assertion，弄得从前&#8220;不按标准设计&#8221;的程序都运行不了啦&#8230;&#8230;我只是没想到java的swing库也是其中之一&#8230;&#8230;<br><br>解决方法嘛，直接在libxcb的源码里把那个assert注释掉然后重新编译再安装就行了，又或者在编译的时候给gcc加个-DNDEBUG选项。注意如果用源码安装的话是会损害之前安装的版本的（无法通过删除复原）&#8230;&#8230;所以，如果你像我一样是软件包主义者，不希望让自己都没办法记得放在哪的软件污染你的运行环境的话&#8230;&#8230;又或者在用一个64位的系统，但是又要运行32位程序的话&#8230;&#8230;建议等&#8220;按标准设计&#8221;的新版程序出来再说。<br><br>3，以上是网上搜集的办法，其实早在yum库的最新development中就有了更新的libcx包，仍然以fedora 8为例：
<p style="margin: 1em 1em 0pt; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; margin: 0pt 1em 1em; padding: 0.5em; display: block; font-weight: normal; font-size: 12px; line-height: 1.8em; font-family: Courier,monospace; font-variant: normal; font-size-adjust: none; font-stretch: normal;">&nbsp; &nbsp; yum --enablerepo=development update libxcb<br>&nbsp; &nbsp; export LIBXCB_ALLOW_SLOPPY_LOCK=1</code>这样就解决问题了，
<p style="margin: 1em 1em 0pt; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; margin: 0pt 1em 1em; padding: 0.5em; display: block; font-weight: normal; font-size: 12px; line-height: 1.8em; font-family: Courier,monospace; font-variant: normal; font-size-adjust: none; font-stretch: normal;">&nbsp; &nbsp; [root@localhost ~]# rpm -qa|grep libxcb<br>&nbsp; &nbsp; libxcb-1.1-1.fc9<br>&nbsp; &nbsp; libxcb-devel-1.1-1.fc9</code>呵呵，发现fedora 9也出来了。<br><img src ="http://www.cppblog.com/flyonok/aggbug/41202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-15 17:31 <a href="http://www.cppblog.com/flyonok/archive/2008/01/15/41202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle --occi</title><link>http://www.cppblog.com/flyonok/archive/2008/01/13/41102.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Sun, 13 Jan 2008 15:35:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/13/41102.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/41102.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/13/41102.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/41102.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/41102.html</trackback:ping><description><![CDATA[<p>环境：oracle10g(10.2)和redhat4<br>1、必须的几个文件gcc和g++的<br>compat-gcc-7.3-2.96.118.i386.rpm<br>compat-gcc-c++-7.3-2.96.118.i386.rpm<br>compat-libstdc++-7.3-2.96.118.i386.rpm<br>compat-libstdc++-devel-7.3-2.96.118.i386.rpm<br>用rpm -ivh安装完上列包后建立以下链接<br>ln -s g++ g++296<br>ln -s gcc gcc296<br>2、makefile范本<br>PROG=testocci.exe<br>OBJ = test.o<br>INC = -I$(ORACLE_HOME)/rdbms/public/ #-I/usr/include/g++-3/<br>#LIBDIR =-L/usr/lib/oracle/10.2.0.3/client/lib<br>LIBDIR = -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib</p>
<p>$(PROG):$(OBJ)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g++ $(LIBDIR) -locci -lclntsh&nbsp; -o $(PROG) $(OBJ)<br>test.o:test.cpp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g++ $(INC) -g -c test.cpp<br>clean:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rm -rf $(PROG) $(OBJ)<br><br>查看标准库的头文件<br>rpm -qf /usr/include/g++-3/std/straits.h<br><br></p><img src ="http://www.cppblog.com/flyonok/aggbug/41102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-13 23:35 <a href="http://www.cppblog.com/flyonok/archive/2008/01/13/41102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle trigger -- sequence</title><link>http://www.cppblog.com/flyonok/archive/2008/01/12/41015.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Sat, 12 Jan 2008 03:29:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/12/41015.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/41015.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/12/41015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/41015.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/41015.html</trackback:ping><description><![CDATA[ORACLE数据库没有象SQL SERVER和DB2那样直接在建表时，指定列为IDENTITY,实现列值唯一并自动增长。在多数的应用中，如果需要把某列设为自动填充的标识列，可以通过创建序列对象和触发器来实现。
<p>1，创建序列对象</p>
<p>-- Create sequence <br>create sequence SEQ_REGISTERNOTEID<br>minvalue 1<br>maxvalue 999999<br>start with 1<br>increment by 1<br>cache 20<br>cycle<br>order;</p>
<p>2，在表上建立触发器</p>
<p>create or replace trigger T_SUBJECTSUMRECORD<br>&nbsp; before insert on subjectsumrecord&nbsp; <br>&nbsp; for each row<br>begin<br>&nbsp; select S_SUBJECTSUMRECORD.nextval into :new.SUMRID from dual;<br>end S_SUBJECTSUMRECORD;</p>
<p>关于创建序列对象和触发器不详细讨论，将会在专门的文章中整理出来。<br></p><img src ="http://www.cppblog.com/flyonok/aggbug/41015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-12 11:29 <a href="http://www.cppblog.com/flyonok/archive/2008/01/12/41015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle study</title><link>http://www.cppblog.com/flyonok/archive/2008/01/12/41006.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Fri, 11 Jan 2008 17:07:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/12/41006.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/41006.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/12/41006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/41006.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/41006.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/flyonok/archive/2008/01/12/41006.html'>阅读全文</a><img src ="http://www.cppblog.com/flyonok/aggbug/41006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-12 01:07 <a href="http://www.cppblog.com/flyonok/archive/2008/01/12/41006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle study url</title><link>http://www.cppblog.com/flyonok/archive/2008/01/09/40800.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Wed, 09 Jan 2008 07:55:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/09/40800.html</guid><description><![CDATA[<a href="http://www.dbanotes.net/">http://www.dbanotes.net/</a><br><a href="http://www.idevelopment.info/cgi/ORACLE_dba_tips.cgi">http://www.idevelopment.info/cgi/ORACLE_dba_tips.cgi</a><br><a href="http://www.oracle-base.com/articles/misc/OracleNetworkConfiguration.php">http://www.oracle-base.com/articles/misc/OracleNetworkConfiguration.php</a><br><a href="http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html">http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html</a><br><a href="http://www.chq.name/content/category/10/37_49.html">http://www.chq.name/content/category/10/37_49.html</a><br><a href="http://unix-cd.com/unixcd12/article_list.asp?c_id=32&amp;s_id=98">http://unix-cd.com/unixcd12/article_list.asp?c_id=32&amp;s_id=98</a><br><a href="http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html">http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html</a><br>http://www.dbapool.com <br>http://www.oracle.com.cn/forumdisplay.php?fid=78<br>http://www.dbazine.com/oracle/or-articles/<br>http://www.oracle.com/technology/tech/linux/index.html<br>http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/index.html<br><br>oracle program<br><a href="http://otl.sourceforge.net/home.htm">http://otl.sourceforge.net/home.htm</a><br><a href="http://oss.oracle.com/oracle-plus-php.html">http://oss.oracle.com/oracle-plus-php.html</a> <br><br>oracle china<br><a href="http://www.eygle.com/archives/2007/07/stepbs_oracle_preface.html">http://www.eygle.com/archives/2007/07/stepbs_oracle_preface.html</a>
<img src ="http://www.cppblog.com/flyonok/aggbug/40800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-09 15:55 <a href="http://www.cppblog.com/flyonok/archive/2008/01/09/40800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oralce tips1 redhat--iptables</title><link>http://www.cppblog.com/flyonok/archive/2008/01/09/40795.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Wed, 09 Jan 2008 07:10:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/09/40795.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/40795.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/09/40795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/40795.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/40795.html</trackback:ping><description><![CDATA[运行环境：rehl as 4.0,oracle.2.0.4<br><br>问题：在服务器上，运行oemapp console可以连接数据库，但在客户机上使用oem却不行，报错：ORA-12560: TNS: 协议适配器错误,各种配置均正常。<br><br>分析：经检查，服务器配置均正常，客户端参数也没问题<br><br>解决：经过数次痛苦折腾，艰难探究,终于顿悟，是防火墙！rehl 4.0启动了防火墙，挡住了1521端口，放开后(1521:tcp)，一切正常了。<br>
<div>具体操作：以root用户登陆服务器，执行命令:</div>
<br>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system-config-securitylevel</div>
<br>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;增加开放端口：1521:tcp</div>
<br>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配置文件的位置：/etc/sysconfig/system-config-securitylevel</div>
<br>
<div><br>&nbsp;</div>
<br>
<div><br>痛定思痛,总结一下,并从网上搜来相关的参考资料如下:</div>
<div><br>相关资料:</div>
<br>
<hr>
<div><a href="http://www.chq.name/content/view/202/53/"><font color="#000000" face="Trebuchet MS">红帽企业 Linux 4:防火墙配置 </font></a>（本站联结，点击进入）<br></div>
<br>
<hr>
<br>
<div>Q:今天遭遇ORA-12560: TNS: 协议适配器错误的问题，经过一番努力问题已经解决，与大家共享。<br>A:造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个：<br>&nbsp;1.监听服务没有起起来。windows平台个一如下操作：开始---程序---管理工具---服务，打开服务面板，<br>启动oraclehome92TNSlistener服务。<br>&nbsp;2.database instance没有起起来。windows平台如下操作：开始---程序---管理工具---服务，打开服务面板，启动oracleserviceXXXX,XXXX就是你的database SID.<br>&nbsp;3.注册表问题。regedit，然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI <br></div>
<br>
<div>D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑，属性--高级--环境变量---系统变量--新建</div>
<br>
<div>，变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前，在command line下</div>
<br>
<div>输set oracle_sid=XXXX,XXXX就是你的database SID.<br>经过以上步骤，就可以解决问题。<br></div>
<br>
<hr>
<br>
<div>ORA-12560: TNS:protocol adapter error</div>
<br>
<div><br>Symptom:<br>When starting server manager the following error is generated:</div>
<br>
<div>ORA-12560: TNS:protocol adapter error occurred</div>
<br>
<div>Cause:<br>Oracle classify this as a &#8216;generic protocol adapter error&#8217;. In my experience it indicates that Oracle client does not know what instance to connect to or what TNS alias to use.</div>
<br>
<div>Possible Remedies:<br>If running on the server (or workstation) that is running the database (i.e. if the database is local to the machine) then try explicitly setting &#8216;ORACLE_SID&#8217;. e.g. <br>set ORACLE_SID=&lt;sid&gt;</div>
<br>
<div>and then try again. If this works then consider whether to make the change permanent by specifying it as a system variable.</div>
<br>
<div>(Possibly 8.1.5 and later:) If running on the server (or workstation) that is running the database then check that the service name &#8216;OracleService&lt;SID&gt;&#8217; ties up with the actual database SID. If the database SID is changed without recreating the service then this can lead to this error. To recreate the service:</div>
<br>
<div>oradimxx -delete -sid &lt;old-sid&gt;</div>
<br>
<div>oradimxx -new -sid &lt;SID&gt; -intpwd &lt;internal-password&gt; AUTO -pfile &lt;full-init-ora-filename&gt;</div>
<br>
<div>Try setting the environment variable &#8216;LOCAL&#8217; to the required connection alias (typically the database SID) and then try again. (I am informed that for UNIX systems the environment variable TWO_TASK should instead be used.) Do be sure that the application that is being used picks up the new environment variable setting. Setting this to an invalid connection alias will typically produce ORA-12154: TNS:could not resolve service name.</div>
<br>
<div>Ignore the error and try connecting by specifying explicitly which connection alias to use.</div>
<br>
<div>Check that the network connection between the client computer and the server has not failed. From the client try pinging the server. (For general guidance on troubleshooting general network connectivity problems click here.)</div>
<br>
<div>Brian Brooks (Encorus Technologies, USA) has highlighted a problem with DHCP. If the database server has its IP address dynamically allocated by DHCP then its IP address may change. This is not likely to be a problem on a local network where DNS will take care of name resolution issues, but where the database server is on a remote network and its IP address needs to be explicitly specified in the client's lmhosts file then this can be a problem because it requires periodic updates to the client's lmhosts file. If faced with this scenario then push to get the database server allocated a permanent IP address.</div>
<br>
<div>--------------------------------------------------------------------------------</div>
<br>
<div>Liew Shiang Chen (from Singapore) has contributed the following additional material on this error:</div>
<br>
<div>I encountered this problem a few times recently while setting up a test environment. I finally solved it when I stopped using terminal services to connect to the server during installation. An installation initiated at the physical console went without any problems for me. Also, I had to make sure the IIS server was stopped because a default installation would try to start up the Apache HTTP server for Oracle.</div>
<br>
<div>Using: Win2000 server, Oracle 8.1.7, not joined to the company domain.</div>
<br>
<div>Hope this would help others in the same spot.</div>
<br><br>
<hr>
有关ORA-12560: TNS:协议适配器错误 的问题 <br><br>
<div>以前安装Oracle一般没有遇到类似问题, 只是在XP上面安装偶尔遇到, 这次在win2003和win2000 server上面分别安装, 都遇到同样问题, 进入数据库创建阶段, 图形界面停止, CPU占用100%, 利用任务管理器停止, 发现例程在服务当中已经注册, 利用oradim -delete -sid ... 删除以后, 重新启动机器, 利用数据库创建助手存盘BAT文件, 然后分析发现, 建立例程以后, 启动svrmgrl显示错误: ora-12560: tns: 协议适配器错误.&nbsp;<br><br>在网络上面反复查询只有一个地方提示: 可能是因为Terminal Service的问题, 并且pcAnywhere等远程控制软件则没有问题, Oracle也不准备就此给出解决, 为此我禁止并且卸载了终端服务以后, 问题依旧存在, 此时监听器服务和先前创建的例程已经成功启动, 由于无法启动svrmgrl, 造成无法继续创建数据库, 各位能否给我一些建议和帮助.&nbsp; <br>&nbsp; <br>另外利用netstat -a 发现1521端口已经正在监听, 应该不会存在端口占用问题吧, 谁可以告诉我srmgrl启动分别经过哪些步骤, 哪一步造成12560错误???<br></div>
<br>
<div>回复： 有关ORA-12560: TNS:协议适配器错误 的问题</div>
<br>
<div>①.检查Terminal Service, 远程桌面是不是起因 <br>②.环境变量set oracle_sid=需要的服务名 <br>③.listener.ora, tnsnames.ora等内机器名或者IP地址是否正确 <br>④.netstat &#8211;a检查端口是否被占用 <br>⑤.检查注册表HKEY_LOCAL_MACHINE\Software\Oracle\Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务 <br></div>
<br>
<hr>
<br>
<div>Oracle客户端穿过防火墙连接服务器&nbsp; </div>
<br><br>
<div>Oracle客户端连接服务器，首先去找1521监听端口，服务器的1521监听端口再向server process进程发出请求，并返回一个随机端口，返回给客户端，客户端再来连接这个端口。 </div>
<br>
<div>这样就给服务器上的防火墙设置带来了麻烦，这个端口是随机的，如何开放?&nbsp; </div>
<br>
<div>windows 平台上的这个问题成了一大难题，很多论坛都有人问，但很少有人能解决。 unix平台不用担心，系统自动会解决这个问题. </div>
<br>
<div>Matalink上提供了三种解决办法，实际上USE_SHARED_SOCKET 是最有效最方便的。 </div>
<br>
<div>但经过无数次实现，仍然没有成功，最后终于发现是Oracle 8.1.7的bug </div>
<br>
<div>需要打补丁，升级到Oracle 8.1.7.1.2 </div>
<br>
<div><br>问题解决, 看起来还是要靠自己, 还有E文资源找到的, 简体的是不指望了.</div>
<br>
<div>我的问题终于解决，原来原因是：<br>我的服务器开了防火墙导致端口不能连接，关掉防火墙后就好了，否则提示TNS-12560: TNS: 协议适配器错误<br></div>
<br>
<hr>
<br>
<div>Oracle客户端穿过防火墙连接服务器 <br></div>
<br>
<div>原文网址：<a href="http://www.cnblogs.com/liangqihui/archive/2005/09/07/231685.html"><font color="#000000" face="Trebuchet MS">http://www.cnblogs.com/liangqihui/archive/2005/09/07/231685.html</font></a><br></div>
<br>
<div>Oracle客户端穿过防火墙连接服务器&nbsp; </div>
<br>
<div>Oracle客户端连接服务器，首先去找1521监听端口，服务器的1521监听端口再向server process进程发出请求，并返回一个随机端口，返回给客户端，客户端再来连接这个端口。 </div>
<br>
<div>这样就给服务器上的防火墙设置带来了麻烦，这个端口是随机的，如何开放?&nbsp; </div>
<br>
<div>windows 平台上的这个问题成了一大难题，很多论坛都有人问，但很少有人能解决。 unix平台不用担心，系统自动会解决这个问题. </div>
<br>
<div>Matalink上提供了三种解决办法，实际上USE_SHARED_SOCKET 是最有效最方便的。 </div>
<br>
<div>但经过无数次实现，仍然没有成功，最后终于发现是Oracle 8.1.7的bug </div>
<br>
<div>需要打补丁，升级到Oracle 8.1.7.1.2 </div>
<br><br>
<div>需要在MTS模式下（共享模式） </div>
<br>
<div>Oracle默认是专用模式。 </div>
<br>
<div>经试验发现，如果不在init文件中设参数的话，Oracle仍然会要求一个随机端口和1521端口来共同通讯，只是这个随机端口，并不随客户端会话和登录的变化而变化，在没有重启服务器时，是固定的。 </div>
<br>
<div>（试验发现，在专用模式下，每次连接，oracle服务器会按+1方式，提供一个非1521的端口。） </div>
<br>
<div>所以，还需要在init.ora文件的最后加上一条参数： </div>
<br>
<div>mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)" </div>
<br>
<div>这样才真正实现只用一个端口，穿过防火墙。 </div>
<br>
<hr>
<div>Oracle uses dynamic ports under windows NT because of a bug in windows, so oracle can't use shared sockets. This bug got fixed with service pack 3 I think. By default, oracle uses the dynamic ports without caring which service pack is installed. There is a registry setting to force oracle to use shared sockets. The parameter is (what a surprise!) USE_SHARED_SOCKET in LOCAL_MACHINE\Software\Oracle\HomeX where X is your desired homedir. This parameter should be set to TRUE. There's a whitepaper from oracle for this too, somewhere on their site. Anyway, this parameter doesnt work for 8.1.7 Some users reported that it worked with 8.1.6.3, but 8.1.7 termiates every conection immediately... </div>
<br><br>
<div>Contributed by Arne Brutschy (
<script language="JavaScript" type="text/javascript">
<!--
var prefix =" '&#109;a'" + 'i&#108;' + '&#116;o';
var path =" 'hr'" + 'ef' + '="';
var" addy69118 =" '&#97;br&#117;tschy'" + '&#64;' + 'xyl&#111;n' + '&#46;' + 'd&#101;';
var addy_text69118 =" '&#97;br&#117;tschy'" + '&#64;' + 'xyl&#111;n' + '&#46;' + 'd&#101;';
document.write( '<a ' + path + '\'' + prefix + ':' + addy69118 + '\'>' );
document.write( addy_text69118 );
document.write( '<\/a>' );
//-->
</script>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#98;&#114;&#117;&#116;&#115;&#99;&#104;&#121;&#64;&#120;&#121;&#108;&#111;&#110;&#46;&#100;&#101;"><font color="#000000" face="Trebuchet MS">abrutschy@xylon.de</font></a> <noscript>
此邮件地址受spam bots保护，需要使用 Javascript 功能来查阅。
</noscript>) on July 5, 2001. </div>
<br><br>
<div>Actually, I want to establish a replication system in my local machine.. for replicating objects(tables) from remote database to a local database... what data security option i must take in to account. I request you to give me the detail description like which protocal must be used and what parameter must be set in init.ora file,sqlnet.ora and listener.ora file and what other steps to be taken... I would be very thankful to you ... if you kindly describe the things...actually i want to maintain the data privacy which happens between remote and local database while replication take place.. any one can trap the net and extract the data ... so i need to stop that.&nbsp;&nbsp; </div>
<br>
<div>I would be very thankful to you ... this is a request.. please mail me on the address
<script language="JavaScript" type="text/javascript">
<!--
var prefix =" '&#109;a'" + 'i&#108;' + '&#116;o';
var path =" 'hr'" + 'ef' + '="';
var" addy93458 =" 'p_v_r&#97;j&#117;73'" + '&#64;' + 'r&#101;d&#105;ffm&#97;&#105;l' + '&#46;' + 'c&#111;m';
var addy_text93458 =" 'p_v_r&#97;j&#117;73'" + '&#64;' + 'r&#101;d&#105;ffm&#97;&#105;l' + '&#46;' + 'c&#111;m';
document.write( '<a ' + path + '\'' + prefix + ':' + addy93458 + '\'>' );
document.write( addy_text93458 );
document.write( '<\/a>' );
//-->
</script>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#95;&#118;&#95;&#114;&#97;&#106;&#117;&#55;&#51;&#64;&#114;&#101;&#100;&#105;&#102;&#102;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;"><font color="#000000" face="Trebuchet MS">p_v_raju73@rediffmail.com</font></a> <noscript>
此邮件地址受spam bots保护，需要使用 Javascript 功能来查阅。
</noscript>.&nbsp;&nbsp; </div>
<br>
<div>regards p.v.raju </div>
<br>
<div>Contributed by pvraju (
<script language="JavaScript" type="text/javascript">
<!--
var prefix =" '&#109;a'" + 'i&#108;' + '&#116;o';
var path =" 'hr'" + 'ef' + '="';
var" addy93458 =" 'p_v_r&#97;j&#117;73'" + '&#64;' + 'r&#101;d&#105;ffm&#97;&#105;l' + '&#46;' + 'c&#111;m';
var addy_text93458 =" 'p_v_r&#97;j&#117;73'" + '&#64;' + 'r&#101;d&#105;ffm&#97;&#105;l' + '&#46;' + 'c&#111;m';
document.write( '<a ' + path + '\'' + prefix + ':' + addy93458 + '\'>' );
document.write( addy_text93458 );
document.write( '<\/a>' );
//-->
</script>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#95;&#118;&#95;&#114;&#97;&#106;&#117;&#55;&#51;&#64;&#114;&#101;&#100;&#105;&#102;&#102;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;"><font color="#000000" face="Trebuchet MS">p_v_raju73@rediffmail.com</font></a> <noscript>
此邮件地址受spam bots保护，需要使用 Javascript 功能来查阅。
</noscript>) on October 8, 2001. </div>
<br>
<div>Modify Windows registry. <br>&nbsp; </div>
<br>
<div>USE_SHARED_SOCKET = TRUE&nbsp;&nbsp; </div>
<br>
<div>- Oracle 8.1.6 for NT/2k <a href="file://hkey_local_machine/SOFTWARE/ORACLE/HOME"><font color="#000000" face="Trebuchet MS">\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME</font></a>&lt;#&gt; (# is your desired homedir) </div>
<br>
<div>- Oracle 8.1.7.0.0 for NT/2k Doesn't work in Oracle 8.1.7.0.0 for NT/2k </div>
<br>
<div>- Oracle 8.1.7.1.2 for NT/2k <a href="file://hkey_local_machine/SOFTWARE/ORACLE"><font color="#000000" face="Trebuchet MS">\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE</font></a>&nbsp;&nbsp; </div>
<br>
<div>- FAQ Site </div>
<br>
<div><a href="http://www.orafaq.net/archive/comp.databases.oracl"><font color="#000000" face="Trebuchet MS">http://www.orafaq.net/archive/comp.databases.oracl</font></a> e.server/2002/04/13/143024.htm <a href="http://www.orafaq.net/archive/comp.databases.oracl"><font color="#000000" face="Trebuchet MS">http://www.orafaq.net/archive/comp.databases.oracl</font></a> e.server/2002/04/13/143024.htm <a href="http://www.pauck.de/marco/misc/oracle_and_firewall"><font color="#000000" face="Trebuchet MS">http://www.pauck.de/marco/misc/oracle_and_firewall</font></a> s.html <br></div>
<br>
<hr>
<br>
<div>关于ORACLE网络 <br></div>
<br>
<div>[Q]如何限定特定IP访问数据库 <br>[A]可以利用登录触发器或者是修改sqlnet.ora（9i以上）： <br>增加如下内容： <br>tcp.validnode_checking=yes <br>#允许访问的ip <br>tcp.inited_nodes=(ip1,ip2,&#8230;&#8230;) <br>#不允许访问的ip <br>tcp.excluded_nodes=(ip1,ip2,&#8230;&#8230;) </div>
<br>
<div>[Q]如何穿过防火墙连接数据库 <br>[A]这个问题只会在WIN平台出现，UNIX平台会自动解决。 <br>解决方法： <br>在服务器端的SQLNET.ORA应类似 <br>SQLNET.AUTHENTICATION_SERVICES= (NTS) <br>NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) <br>TRACE_LEVEL_CLIENT = 16 <br>注册表的HOME0加[HKEY_LOCAL_MACHINE] <br>USE_SHARED_SOCKET=TRUE </div>
<br>
<div>[Q]如何利用hostname方式连接数据库 <br>host name方式只支持tcp/ip协议的小局域网 <br>修改listener.ora中的如下信息 <br>(SID_DESC = <br>(GLOBAL_DBNAME = ur_hostname) --你的机器名 <br>(ORACLE_HOME = E:\oracle\ora92) --oracle home <br>(SID_NAME = orcl) --sid name <br>) <br>然后在客户端 <br>的sqlnet.ora中，确保有 <br>NAMES.DIRECTORY_PATH= (HOSTNAME) <br>你就可以利用数据库服务器的名称访问数据库了 </div>
<br>
<hr>
<div>OS相关</div>
<br>
<div><br>[Q]怎么样生成日期格式的文件 <br>[A]在LINUX/UNIX上，使用`date +%y%m%d` (`这个是键盘上~所在的那个键) 或$(date +%y%m%d)，如： <br>touch exp_table_name_`date +%y%m%d`.dmp <br>DATE=$(date +%y%m%d) <br>或者 <br>DATE=$(date +%Y%m%d --date '1 days ago') #获取昨天或多天前的日期 <br>Windows上，使用%date:~4,10%，其中4是开始字符，10是提取长度，表示从date生成的日期中，提取从4开始长度是10的串。你可以改成其它你需要的数字，如： <br>Echo %date:~4,10% <br>如果想得到更精确的时间，win上面还可以使用time </div>
<br><br>
<div>[Q]测试磁盘与阵列性能 <br>[A]用类似如下的方法测试写能力 <br>time dd if=/dev/zero of=/oradata/biddb/testind/testfile.dbf bs=1024000 count=1000 <br>期间系统IO 使用可以用(unix): <br>iostat -xnp 2 显示Busy程度 </div>
<br>
<div>[Q]怎么配置SSH密匙 <br>[A]可以防止"中间人"的进攻方式 <br>1、ssh-keygen 或ssh-keygen -d(ssh 2.x)生成钥匙 <br>2、然后拷贝公匙到你想登录的服务器，改名为authorized_keys，如果是3.0以下版本，需要改为authorized_keys2 <br>3、还可以利用config文件进一步简化操作 <br>如 <br>Host *bj <br>HostName 机器名或IP <br>User 用户名 <br>有了这个配置文件，你就可以利用ssh bj来访问指定的机器了，也就可以利用scp与sftp来传送文件了。 </div>
<br><br>
<div>[Q]sqlplus怎么与shell结合 <br>[A]可以用如下的写法 <br>sqlplus /nolog &lt;&lt; EOF <br>connect user/pass <br>spool test <br>select * from tab; <br>spool off <br>exit <br>EOF <br>当然，RMAN也支持这样的写法。 </div>
<br><br>
<div>[Q]FTP怎么在脚本中自动上传/下载 <br>[A]可以把FTP写到shell脚本中，如 <br>ftp -n -i 主机IP &lt;&lt;EOF <br>user username pass <br>cd 目标目录 <br>put file <br>get file <br>#查询文件 <br>ls <br>#退出 <br>bye <br>EOF</div><img src ="http://www.cppblog.com/flyonok/aggbug/40795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-09 15:10 <a href="http://www.cppblog.com/flyonok/archive/2008/01/09/40795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle install notes</title><link>http://www.cppblog.com/flyonok/archive/2008/01/08/40746.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Tue, 08 Jan 2008 10:02:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/08/40746.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/40746.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/08/40746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/40746.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/40746.html</trackback:ping><description><![CDATA[<p><font size="4"><strong>1. 配置RedHat AS 3</strong> </font></p>
<p><font size="3">操作系统版本： <br>Red Hat Enterprise Linux AS release 3 (Taroon)<br>Kernel 2.4.21-4.EL on an i686 <br>按照常规来安装操作系统,记得要安装开发工具(gcc等必要工具). </font></p>
<p><font size="4"><strong>1.1 检查必要的硬件信息</strong> </font></p>
<p><font size="3">
<table>
    <tbody>
        <tr>
            <td><strong><font size="3">检查内容</font> </strong></td>
            <td><strong><font size="3">最小值</font> </strong></td>
            <td><strong><font size="3">检查命令参考</font> </strong></td>
        </tr>
        <tr>
            <td><font size="3">物理内存</font> </td>
            <td><font size="3">512M</font> </td>
            <td><font size="3"># grep MemTotal /proc/meminfo </font></td>
        </tr>
        <tr>
            <td><font size="3">交换空间</font> </td>
            <td><font size="3">1.0 GB或者2倍内存大小</font> </td>
            <td><font size="3"># grep SwapTotal /proc/meminfo </font></td>
        </tr>
        <tr>
            <td><font size="3">/tmp 空间</font> </td>
            <td><font size="3">400 MB </font></td>
            <td><font size="3"># df -k /tmp </font></td>
        </tr>
        <tr>
            <td><font size="3">软件所需空间</font> </td>
            <td><font size="3">2.5 GB </font></td>
            <td><font size="3"># df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) </font></td>
        </tr>
        <tr>
            <td><font size="3">数据库文件</font> </td>
            <td><font size="3">1.2 GB </font></td>
            <td><font size="3"># df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) </font></td>
        </tr>
    </tbody>
</table>
</font><font size="3">检查完如上各项之后, 应该修改核心参数.执行如下命令:</font> </p>
<p><font color="#0000ff" size="3">#vi /etc/sysctl.conf</font> </p>
<p><font size="3">#注释:<br>#表示使用root用户操作,$表示使用oracle 用户进行操作.提示符后面的蓝色部分表示需要输入的命令，以下同． </font></p>
<p><font size="3">在该文件末尾加入如下内容: <br><font color="#000080">kernel.shmall = 2097152 <br>kernel.shmmax = 2147483648 <br>kernel.shmmni = 4096 <br>kernel.sem = 250 32000 100 128 <br>fs.file-max = 65536 <br>net.ipv4.ip_local_port_range = 1024 65000</font></font></p>
<p>net.core.rmem_default=262144<br>net.core.rmem_max=262144<br>net.core.wmem_default=262144<br>net.core.wmem_max=262144 </p>
<p><font size="3">编辑完之后,保存,执行 <font color="#0000ff"># /sbin/sysctl -p</font> 命令操作来使我们所做的变更生效. <br>注:上面kernel.shmmax/kernel.sem等是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动. </font></p>
<p><font size="3">关于这些核心参数的说明在Oracle的 Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems 中有很详细的说明.( </font><a href="http://download-west.oracle.com/docs/html/A96167_01/toc.htm"><u><font color="#800080"><font size="3">http://download-west.oracle.com/docs/html/A96167_01/toc.htm</font> </font></u></a><font size="3">) </font></p>
<p><font size="3">然后,应该检查一下上面的操作是否正确: <br><font color="#0000ff"># /sbin/sysctl -a | grep sem <br># /sbin/sysctl -a | grep shm<br># /sbin/sysctl -a | grep file-max<br># /sbin/sysctl -a | grep ip_local_port_range</font></font> </p>
<p><font size="3">为Oracle用户设定Shell的限制<br>一般来说，出于性能上的考虑,还需要需要进行如下的设定，以便改进Oracle用户的有关 nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)</font> </p>
<p><font size="3"><font color="#0000ff"># vi /etc/security/limits.conf</font> <br># 添加如下的行</font> </p>
<p><font color="#000080" size="3">*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soft&nbsp;&nbsp;&nbsp; nproc&nbsp;&nbsp; 2047<br>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hard&nbsp;&nbsp;&nbsp; nproc&nbsp;&nbsp; 16384<br>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soft&nbsp;&nbsp;&nbsp; nofile&nbsp; 1024<br>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hard&nbsp;&nbsp;&nbsp; nofile&nbsp; 65536</font> </p>
<p><font size="3">添加如下的行到/etc/pam.d/login 文件： <br><font color="#000080">session&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; /lib/security/pam_limits.so</font></font> </p>
<p><font size="3">编辑 /etc/profile 文件,添加如下部分： <br><font color="#000080">if [ $USER = "oracle" ]; then&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ $SHELL = "/bin/ksh" ]; then&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ulimit -p 16384&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ulimit -n 65536&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ulimit -u 16384 -n 65536&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi&nbsp; <br>fi<br></font>之后，执行<font color="#0000ff">$ ulimit</font> 验证一下.</font> </p>
<p><font size="3"><font size="4"><strong>1.2 检查并安装相关补丁</strong> </font><br>在这个版本的RHEL上安装Oracle,必须要有几个软件包. 确认以下 rpm包都已经安装: </font></p>
<p><font size="3">make-3.79<br>binutils-2.11<br>openmotif-2.2.2-16<br>setarch-1.3-1 <br>compat-db-4.0.14.5<br>compat-gcc-7.3-2.96.122<br>compat-gcc-c++-7.3-2.96.122<br>compat-libstdc++-7.3-2.96.122<br>compat-libstdc++-devel-7.3-2.96.122</font> </p>
<p><font size="3"><font color="#0000ff"># rpm -qa | grep compat</font> <br># 在机器上输出如下:</font> </p>
<p><font color="#800080" size="3">compat-gcc-c++-7.3-2.96.122<br>compat-libstdc++-7.3-2.96.122<br>compat-libstdc++-devel-7.3-2.96.122<br>compat-glibc-7.x-2.2.4.32.5<br>compat-db-4.0.14-5<br>compat-gcc-7.3-2.96.122</font> </p>
<p><font size="3"><font color="#0000ff"># rpm -qa | grep openmotif</font> <br><font color="#800080">openmotif-devel-2.2.2-16<br>openmotif-2.2.2-16</font> </font></p>
<p><font size="3"><font color="#0000ff"># rpm -qa | grep setarch</font> <br><font color="#800080">setarch-1.3-1</font> </font></p>
<p><br><font size="3">上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包: <br><font color="#0000ff"># rpm -ivh *.rpm</font></font> </p>
<p><font size="3">要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误. 此外，最好验证一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高): <br><font color="#0000ff">#gcc -v <br>#rpm -q glibc</font></font> </p>
<p><font size="3"><font size="4"><strong>1.3 创建用户和相关的组</strong> </font><br><font color="#0000ff"># /usr/sbin/groupadd oinstall<br># /usr/sbin/groupadd dba<br># /usr/sbin/useradd -g oinstall -G dba oracle</font>　</font> </p>
<p><font size="3">如果只是测试目的的话，不创建oinstall组也没什么. 不过还是规范一点比较好.如果oracle 用户和dba组等已经存在，作适当的调整即可. </font></p>
<p><font size="3"><font size="4"><strong>1.4 检查并调整环境变量</strong> <br></font>登录为oracle用户</font> </p>
<p><font color="#0000ff" size="3"># su - oracle<br>$ cd <br>$ vi .bash_profile</font> </p>
<p><font size="3">#添加如下内容,你的具体值应该不会和这个完全相同. <br><font color="#000080"># oracle begin<br>export ORACLE_BASE=/datas/oracle<br>export ORACLE_HOME=$ORACLE_BASE/product/dbServer<br>export ORACLE_SID=audit<br>export PATH=$PATH:$ORACLE_HOME/bin<br>export BUILD_CCC296=1<br>export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib<br>export LC_CTYPE=en_US.UTF-8<br>export LC_TYPE=zh_CN.UTF-8<br>export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK<br>export SQLPATH=$HOME/mysql<br>CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:.;<br>export CLASSPATH<br>export LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH<br># oracle end</font></font> </p>
<p><font size="3">然后执行 <br><font color="#0000ff">$ source .bash_profile</font></font> </p>
<p><font size="3">使环境变量生效. /oracle 等目录应该建立好并做合适的授权. </font></p>
<p><font size="3"><font size="4"><strong>2. 安装Orale10g</strong> </font><br>mount安装盘.由于10g无法以root安装，以前面建的oracle用户登录.执行:</font> </p>
<p><font size="3"><font color="#0000ff">$ ./runInstaller</font> </font></p>
<p><font size="3">按照提示安装即可，最后还需要以root运行两个脚本。</font> </p>
<p><font size="3"><font size="4"><strong>3. 配置TNS参数</strong> </font><br>在 /oracle/product/dbse/network/admin/ 目录下有 listener.ora 和 tnsnames.ora 两个文件，设置如下：</font> </p>
<p><font color="#000080" size="3">#listener.ora<br>SID_LIST_LISTENER =<br>&nbsp; (SID_LIST =<br>&nbsp;&nbsp;&nbsp;&nbsp; (SID_DESC =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (GLOBAL_DBNAME = orcl)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ORACLE_HOME = /oracle/product/dbse)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SID_NAME = orcl)<br>&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp; )</font> </p>
<p><font color="#000080" size="3">LISTENER =<br>&nbsp; (DESCRIPTION_LIST =<br>&nbsp;&nbsp;&nbsp; (DESCRIPTION =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS_LIST =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS_LIST =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp; )<br>&nbsp; )</font> </p>
<p><font color="#000080" size="3">#tnsnames.ora<br>ORCL =<br>&nbsp; (DESCRIPTION =<br>&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))<br>&nbsp;&nbsp;&nbsp; (CONNECT_DATA =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SERVER = DEDICATED)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SERVICE_NAME = orcl)<br>&nbsp;&nbsp;&nbsp; )<br>&nbsp; )</font> </p>
<p><font color="#000080" size="3">EXTPROC_CONNECTION_DATA =<br>&nbsp; (DESCRIPTION =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (CONNECT_DATA =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (SID = PLSExtProc)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (PRESENTATION = RO)<br>&nbsp;&nbsp;&nbsp; )<br>&nbsp; )</font> </p>
<p><font size="3">其中SERVICE_NAME与SID_NAME一定要和.bash_profile中的ORACLE_SID相一致，否则无法启动</font> </p>
<p><font size="3"><font size="4"><strong>4. 启动Oracle</strong> </font><br>以oracle用户登录</font> </p>
<p><font size="3"><font size="4"><strong>4.1 启动TNS监听器</strong> </font><br><font color="#0000ff">$ lsnrctl start<br></font>出现如下显示，表示监听服务成功开启<br><font color="#800080">LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 22-FEB-2006 10:24:03</font></font> </p>
<p><font color="#800080" size="3">Copyright (c) 1991, 2005, Oracle.&nbsp; All rights reserved.</font> </p>
<p><font color="#800080" size="3">Starting /oracle/product/dbse/bin/tnslsnr: please wait...</font> </p>
<p><font color="#800080" size="3">TNSLSNR for Linux: Version 10.2.0.1.0 - Production<br>System parameter file is /oracle/product/dbse/network/admin/listener.ora<br>Log messages written to /oracle/product/dbse/network/log/listener.log<br>Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))<br>Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))</font> </p>
<p><font color="#800080" size="3">Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))<br>STATUS of the LISTENER<br>------------------------<br>Alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTENER<br>Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TNSLSNR for Linux: Version 10.2.0.1.0 - Production<br>Start Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22-FEB-2006 10:24:03<br>Uptime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 days 0 hr. 0 min. 0 sec<br>Trace Level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; off<br>Security&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ON: Local OS Authentication<br>SNMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OFF<br>Listener Parameter File&nbsp;&nbsp; /oracle/product/dbse/network/admin/listener.ora<br>Listener Log File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /oracle/product/dbse/network/log/listener.log<br>Listening Endpoints Summary...<br>&nbsp; (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))<br>&nbsp; (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))<br>Services Summary...<br>Service "orcl" has 1 instance(s).<br>&nbsp; Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...<br>The command completed successfully</font> </p>
<p><br><font size="3"><font size="4"><strong>4.2启动数据库</strong> </font></font><font size="3"><br>9i 之后已经没有 svrmgrl 了，所有的管理工作都通过 sqlplus 来完成： <br><font color="#0000ff">$ sqlplus /nolog <br>SQL&gt; connect system/change_on_install as sysdba <br>SQL&gt; startup</font></font> </p>
<p><font size="3">出现如下显示，表示Oracle已经成功启动<br><font color="#800080">ORACLE instance started.</font></font> </p>
<p><font color="#800080" size="3">Total System Global Area&nbsp; 285212672 bytes<br>Fixed Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1218968 bytes<br>Variable Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88082024 bytes<br>Database Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 188743680 bytes<br>Redo Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7168000 bytes<br>Database mounted.<br>Database opened.</font> </p>
<p><font color="#000000" size="3"><strong>4.3 自动启动与关闭</strong> </font></p>
<p><font size="3">编辑 /etc/oratab ，把所有的 instance 的重启动标志设置成 'Y'，如: <br><font color="#000080">orcl:/oracle/product/dbse:Y</font><br><br>做一个启动脚本 /etc/init.d/dbora ，如下所示: <br><br><font color="#000080">#!/bin/sh <br># description: Oracle auto start-stop script. <br># chkconfig: - 20 80 <br># <br># Set ORA_HOME to be equivalent to the $ORACLE_HOME <br># from which you wish to execute dbstart and dbshut; <br># <br># Set ORA_OWNER to the user id of the owner of the <br># Oracle database in ORA_HOME. <br><br>ORA_HOME=/oracle/product/dbse <br>ORA_OWNER=oracle <br>if [ ! -f $ORA_HOME/bin/dbstart ] <br>then <br>echo "Oracle startup: cannot start" <br>exit <br>fi <br>case "$1" in <br>'start') <br><br># Start the Oracle databases: <br># The following command assumes that the oracle login <br># will not prompt the user for any values <br><br>su - $ORA_OWNER -c $ORA_HOME/bin/dbstart <br>su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" <br>;; <br>'stop') <br><br># Stop the Oracle databases: <br># The following command assumes that the oracle login <br># will not prompt the user for any values <br><br>su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" <br>su - $ORA_OWNER -c $ORA_HOME/bin/dbshut <br>;; <br>'restart') <br>$0 stop <br>$0 start <br>;; <br>esac <br></font><br>赋予执行权限 <br><font color="#0000ff">chmod 750 /etc/init.d/dbora</font><br><br>作成以下链接: <br><font color="#0000ff">ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora <br>ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora</font><br><br>执行以下命令: <br><font color="#0000ff">chkconfig --level 345 dbora on</font><br><br>这样就OK了。下次开关机的时候，Oracle也会随之启动/停止。</font> </p>
<p><font size="3">参考信息</font> </p>
<p><font size="3">http://www.dbanotes.net</font> </p><img src ="http://www.cppblog.com/flyonok/aggbug/40746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-08 18:02 <a href="http://www.cppblog.com/flyonok/archive/2008/01/08/40746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracel 在 fedora core release 6下的安装</title><link>http://www.cppblog.com/flyonok/archive/2008/01/08/40721.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Tue, 08 Jan 2008 07:56:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2008/01/08/40721.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/40721.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2008/01/08/40721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/40721.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/40721.html</trackback:ping><description><![CDATA[下载软件包<br><br>Oracle Database 10g Release 2 (10.2.0.1) Software <br>openmotif21-2.1.30-14.i386.rpm <br><br>解压软件包(unzip 10201_database_linux32.zip)<br><br>修改Hosts文件<br><br><ip地址>&lt;机器全名（机器名.域名）&gt; &lt;机器名（缩写）&gt;<br><br>设置内核参数（在/etc/sysctl.conf）<br>kernel.shmall = 2097152<br>kernel.shmmax = 2147483648<br>kernel.shmmni = 4096<br># semaphores: semmsl, semmns, semopm, semmni<br>kernel.sem = 250 32000 100 128<br>fs.file-max = 65536<br>net.ipv4.ip_local_port_range = 1024 65000<br>net.core.rmem_default=262144<br>net.core.rmem_max=262144<br>net.core.wmem_default=262144<br>net.core.wmem_max=262144<br><br>然后运行下面命令，使上面的设置生效<br><br>/sbin/sysctl -p<br><br>将下面几行添加到 /etc/security/limits.conf 文件中:<br>* soft nproc 2047<br>* hard nproc 16384<br>* soft nofile 1024<br>* hard nofile 65536<br><br>将下面几行添加到/etc/pam.d/login文件中:<br>session required /lib/security/pam_limits.so<br><br>禁用SELINUX，编辑/etc/selinux/config，将SELINUX设置为SELINUX=disabled <br><br>安装下面软件包<br># 从 Fedora Core 6 DVD 光盘文件<br>cd /media/dvd/Fedora/RPMS<br>rpm -Uvh setarch-*<br>rpm -Uvh --force tcl-*<br>rpm -Uvh --force libXau-devel-* libXp-*<br>rpm -Uvh compat-db-*<br>rpm -Uvh compat-libstdc++-33*<br>rpm -Uvh compat-libf2c-34-*<br>rpm -Uvh compat-gcc-34-*<br>rpm -Uvh libaio-*<br>rpm -Uvh compat-gcc-34-c++-*<br>rpm -Uvh compat-libstdc++-296*<br>rpm -Uvh compat-libgcc-296*<br># 从上面网址下载<br><br>rpm -Uvh openmotif21-2.1.30-14.i386.rpm<br><br>添加用户组和用户<br><br>groupadd oinstall<br>groupadd dba<br>groupadd oper<br><br>useradd -g oinstall -G dba oracle<br>passwd oracle <br><br>创建Oracle安装文件夹<br><br>mkdir -p /u01/app/oracle/product/10.2.0/db_1<br>chown -R oracle.oinstall /u01<br><br>用root用户登陆，并执行下列命令:<br>xhost +<machine-name><br><br><br>编辑/etc/redhat-release文件并将(Fedora Core release 6 (Zod))用下面内容替换:<br>redhat-4<br><br>用oracle用户登陆并将下面内容添加到.bash_profile文件中:<br>
</machine-name></ip地址><center>
<table border="0" cellpadding="0" cellspacing="0" width="90%">
    <tbody>
        <tr>
            <td><strong>QUOTE:</strong></td>
        </tr>
    </tbody>
</table>
<table border="0" cellpadding="10" cellspacing="1" width="90%">
    <tbody>
        <tr>
            <td bgcolor="#ffffff" width="100%"># Oracle Settings<br>TMP=/tmp; export TMP<br>TMPDIR=$TMP; export TMPDIR<br><br>ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE<br>ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME<br>ORACLE_SID=TSH1; export ORACLE_SID<br>ORACLE_TERM=xterm; export ORACLE_TERM<br>export BULILD_CCC296=1<br>PATH=/usr/sbin:$PATH; export PATH<br>PATH=$ORACLE_HOME/bin:$PATH; export PATH<br><br>LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH<br>CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH<br><br>if [ $USER = "oracle" ]; then<br>if [ $SHELL = "/bin/ksh" ]; then<br>ulimit -p 16384<br>ulimit -n 65536<br>else<br>ulimit -u 16384 -n 65536<br>fi<br>fi</td>
        </tr>
    </tbody>
</table>
</center><br>安装数据库<br>用oracle用户登陆,切换到刚才解压的目录下,运行：<br><br>./runInstaller<br><br>最后按照界面操作就可以将数据库安装成功了<br><br>将/etc/redhat-release改为原来的发行号（Fedora Core release 6 (Zod))<br><br>修改/etc/oratab将所需启动的实例修改为Y<br><br>TSH1:/u01/app/oracle/product/10.2.0/db_1:Y<br> <img src ="http://www.cppblog.com/flyonok/aggbug/40721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-01-08 15:56 <a href="http://www.cppblog.com/flyonok/archive/2008/01/08/40721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>