<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://royqh.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2froyqh.spaces.live.com%2fcategory%2f%e6%95%b0%e6%8d%ae%e5%ba%93%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>天上掉大饼之土人俗事: 数据库</title><description /><link>http://royqh.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E6%2595%25B0%25E6%258D%25AE%25E5%25BA%2593</link><language>en-US</language><pubDate>Sat, 11 Oct 2008 05:01:04 GMT</pubDate><lastBuildDate>Sat, 11 Oct 2008 05:01:04 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://royqh.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-3180137652934690665</live:id><live:alias>royqh</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>windows下oracle instance client的安装方法</title><link>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!170.entry</link><description>&lt;div&gt;无论是通过toad或者DBArtisan之类的管理软件远程管理oracle，还是通过jdbc或者odbc来写oracle应用程序，首先要做的第一件事情就是安装oracle instance client。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;以下假设oracle服务器IP地址为192.168.1.2，端口为1521，数据库名为db1.net.cn, 你想将这个oracle数据库起名叫mydb1,你要把client安装到C:\oracle目录下&lt;/div&gt;
&lt;div&gt;&lt;br&gt;首先从oracle网站下载最新的instance client和sqlplus（sqlplus这个东西虽然土，但是用来测试啥的还是很好用的），把里面的文件解压缩出来之后拷贝到安装目录C:\oracle下，把该目录加到path中（windows下怎么加path？修改注册表&lt;a&gt;\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session&lt;/a&gt; Manager\Environment\Path项），并在环境变量中增加TNS_ADMIN=c:\oracle（怎么添加环境变量？在注册表&lt;a&gt;\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session&lt;/a&gt; Manager\Environment中加一个字符串键值，名字为TNS_ADMIN，值为c:\oracle）。（注意修改注册表后要重启windows才能生效）&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;在C:\oracle下建立一个文本文件，文件名为sqlnet.ora&lt;br&gt;内容为：&lt;br&gt;#NAMES.DEFAULT_DOMAIN = WORLD&lt;br&gt;NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;在C:\oracle下建立一个文本文件，文件名为tnsnames.ora，内容为：&lt;br&gt;mydb1 =&lt;br&gt;  (DESCRIPTION =&lt;br&gt;    (ADDRESS = (PROTOCOL = TCP)(HOST = oracleserver)(PORT = 1521))&lt;br&gt;    (CONNECT_DATA =&lt;br&gt;      (SERVER = DEDICATED)&lt;br&gt;      (SERVICE_NAME = db1.net.cn)&lt;br&gt;    )&lt;br&gt;  )&lt;/div&gt;
&lt;div&gt;&lt;br&gt;注意，上面HOST=oracleserver是我给这个oracle服务器起的别名，实际中也可以直接写ip地址。如果直接用ip地址的话就不用进行下面这步设置。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;修改C:\windows\system32\drivers\etc\hosts文件，这是个文本文件，在里面添加一行对oracle服务器的地址解析：&lt;br&gt;192.168.1.2  oracleserver&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;这样安装就完成了。最后用sqlplus来测试一下连接，假如db1.unis.cn数据库上有个用户user1，那么我们就可以这样连接：&lt;/div&gt;
&lt;div&gt;sqlplus &lt;a href="mailto:user1@mydb1"&gt;user1@mydb1&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt; 哦，最后最好再设一下client的字符集，免得处理中文的时候出乱码。在注册表的&lt;a&gt;\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE&lt;/a&gt;下建立一个字符串项，名字为NLS_LANG，内容要于服务器的注册表里对应的项一致，（我的中文oracle 10g里是SIMPLIFIED CHINESE_CHINA.ZHS16GBK&lt;br&gt;)，重启机器就OK了。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3180137652934690665&amp;page=RSS%3a+windows%e4%b8%8boracle+instance+client%e7%9a%84%e5%ae%89%e8%a3%85%e6%96%b9%e6%b3%95&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royqh.spaces.live.com&amp;amp;GT1=royqh"&gt;</description><comments>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!170.entry#comment</comments><guid isPermaLink="true">http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!170.entry</guid><pubDate>Wed, 23 Nov 2005 13:19:40 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royqh.spaces.live.com/blog/cns!D3DDE1A75BFBB897!170/comments/feed.rss</wfw:commentRss><wfw:comment>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!170.entry#comment</wfw:comment><dcterms:modified>2005-11-23T13:29:26Z</dcterms:modified></item><item><title>如何访问防火墙背后的windows oracle数据库</title><link>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!168.entry</link><description>&lt;p&gt;要访问防火墙后的windows oracle数据库，仅仅通过简单的打开固定TCP端口的方式是不行的。这个问题的根本原因是windows oracle数据库的BT设计。（unix/linux无此问题）
&lt;p&gt;oracle数据库的网络访问采用了一个很BT的工作模式，其大概流程如下：
&lt;p&gt;1)oracle server上的oracle net listener进程持续监听一个固定的TCP端口（缺省是1521）;&lt;br&gt;2)client向server上的net listener端口发起连接请求;&lt;br&gt;3)listenr收到client的请求之后，建立与client的连接，并通知server新建一个数据库连接的服务进程(以下简称P)，该进程会随机选择一个没有被使用的TCP端口并绑定，然后将端口号通知listener;&lt;br&gt;4)listenr将P绑定的端口号转发给client;&lt;br&gt;5)client收到P的端口号后，终止与listener的连接，然后通过P的绑定端口直接连接P;&lt;br&gt;到第5步，连接才最终完成，之后client就可以访问数据库了。
&lt;p&gt;从上面的工作流程可以知道，在这种工作模式下，client实际最终连接的oracle server端口是随机的，所以根本无法在防火墙上预先设定固定的TCP端口来使oracle server可以被访问。据说oracle这么做也是不得已的，因为早期windows nt的TCP/IP部分有bug，直接使用公用端口连接会有问题，所以oracle才搞出这么个天才的设计。不过，NT4SP3之后不就没这个bug了吗，为啥到oracle 11g了还在用这个BT模式呢？
&lt;p&gt;当然啦，现在网络安全性问题这么严重，如果真的无法使用防火墙，windows版的oracle数据库岂不是要卖不出去了吗？oracle公司当然不会那么白痴，从oracle 8i开始，windows版的oracle也可以使用正常的工作模式了，只要在windows注册表的&lt;a&gt;\\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEDIR&lt;/a&gt;&lt;br&gt;（HOMEDIR是你机器上安装的oracle数据库的instance名称）中添加一个字符串键值，名称为USE_SHARED_SOCKET，值为TRUE（注意大小写），然后重启oracle instance或直接重启windows就OK了。这样，你只要再在防火墙上打开oracle的监听端口（缺省为1521），就可以在防火墙外访问oracle了!
&lt;div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3180137652934690665&amp;page=RSS%3a+%e5%a6%82%e4%bd%95%e8%ae%bf%e9%97%ae%e9%98%b2%e7%81%ab%e5%a2%99%e8%83%8c%e5%90%8e%e7%9a%84windows+oracle%e6%95%b0%e6%8d%ae%e5%ba%93&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royqh.spaces.live.com&amp;amp;GT1=royqh"&gt;</description><comments>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!168.entry#comment</comments><guid isPermaLink="true">http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!168.entry</guid><pubDate>Wed, 23 Nov 2005 12:45:57 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royqh.spaces.live.com/blog/cns!D3DDE1A75BFBB897!168/comments/feed.rss</wfw:commentRss><wfw:comment>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!168.entry#comment</wfw:comment><dcterms:modified>2005-11-23T12:45:57Z</dcterms:modified></item><item><title>oracle数据库中以数字开头的sys密码会导致错误</title><link>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!157.entry</link><description>&lt;div&gt;还是oracle 10g安装的问题，按上一篇文章把权限搞定之后，oem还是进不去,提示“&lt;font face=Verdana&gt;数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。单击 '启动' 可以获得当前状态并打开数据库。如果无法打开数据库, 单击 '执行恢复' 可执行相应的恢复操作。”&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana&gt;在网上搜了无数帖子，并经过无数次试验，才发现，原来&lt;strong&gt;sys、sysman和dbsnmp这几个用户的密码必须以字母开头&lt;/strong&gt;。而我用的密码恰恰以数字开头……&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana&gt;真不知道oracle那帮人是怎么想的啊，白白浪费我一下午……&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3180137652934690665&amp;page=RSS%3a+oracle%e6%95%b0%e6%8d%ae%e5%ba%93%e4%b8%ad%e4%bb%a5%e6%95%b0%e5%ad%97%e5%bc%80%e5%a4%b4%e7%9a%84sys%e5%af%86%e7%a0%81%e4%bc%9a%e5%af%bc%e8%87%b4%e9%94%99%e8%af%af&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royqh.spaces.live.com&amp;amp;GT1=royqh"&gt;</description><comments>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!157.entry#comment</comments><guid isPermaLink="true">http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!157.entry</guid><pubDate>Wed, 07 Sep 2005 09:31:39 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royqh.spaces.live.com/blog/cns!D3DDE1A75BFBB897!157/comments/feed.rss</wfw:commentRss><wfw:comment>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!157.entry#comment</wfw:comment><dcterms:modified>2005-11-23T11:48:38Z</dcterms:modified></item><item><title>Oracle 10g em无法登陆的问题</title><link>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!156.entry</link><description>&lt;div&gt;&lt;span&gt;在windows 2003 server里装上oracle 10g后，访问Enterprise Manager Control：&lt;a href="http://localhost:5500/em"&gt;http://localhost:5500/em&lt;/a&gt;，输入机器帐户的用户名和密码后出现如下错误：&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;RemoteOperationException: ERROR: Wrong password for user&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;这个是因为所用的帐户没有“作为批处理作业登陆”的权限&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;只要在组策略编辑器（开始-&amp;gt;运行 对话框里输入gpedit.msc 然后确定）中的“本地计算机策略”-&amp;gt;“windows设置“-&amp;gt;&amp;quot;安全设置”-&amp;gt;“本地策略”-&amp;gt;“用户权限分配” 里双击打开“作为批处理作业登陆”对话框，把要使用的帐户添加进去即可。&lt;/span&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3180137652934690665&amp;page=RSS%3a+Oracle+10g+em%e6%97%a0%e6%b3%95%e7%99%bb%e9%99%86%e7%9a%84%e9%97%ae%e9%a2%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=royqh.spaces.live.com&amp;amp;GT1=royqh"&gt;</description><comments>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!156.entry#comment</comments><guid isPermaLink="true">http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!156.entry</guid><pubDate>Wed, 07 Sep 2005 07:36:06 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://royqh.spaces.live.com/blog/cns!D3DDE1A75BFBB897!156/comments/feed.rss</wfw:commentRss><wfw:comment>http://royqh.spaces.live.com/Blog/cns!D3DDE1A75BFBB897!156.entry#comment</wfw:comment><dcterms:modified>2005-11-23T09:42:56Z</dcterms:modified></item></channel></rss>