首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

ORACLE Instant Client 11.2 配备方法

2012-07-23 
ORACLE Instant Client 11.2 配置方法今天突然来了学习oracle数据库的任务,那就开始了,但是网上找了很多资

ORACLE Instant Client 11.2 配置方法
    今天突然来了学习oracle数据库的任务,那就开始了,但是网上找了很多资料,不然就不全面,不然那就是很多,大家都拷贝加拷贝,我就边配变试着这里下,暂时记下,为将来做打算嘛~

利用Instant Client ,不安装oracle客户端连接远程数据库的步骤
一)下载
到http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载如下三个包:
instantclient-basic-win32-10.2.0.4.zip :这是最核心的包 (只下这个也可以)
instantclient-jdbc-win32-10.2.0.4.zip  :包含JDBC   Driver的包
instantclient-sqlplus-win32-10.2.0.4.zip :最简单的SQLPLUS包
将这三个包分别解压,然后内容放到D:\Oracle\instantclient_11_2下

(可选步骤:
从http://www.anysql.net/software/ociuldr.zip下载coiuldr.zip,解压后里面有windows,linux,
solaris三个版本,将ociuldr.exe 复制到D:\Oracle\instantclient_11_2,其中ociuldr.exe 是一个文本导出工具,具体参数可以参考http://www.anysql.net/ociuldr.html介绍)

二)设置环境变量:
NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN=D:\Oracle\instantclient_11_2\ADMIN
Path=D:\Oracle\instantclient_10_2;

三)保存以下内容为注册表文件ORA.REG,导入注册表(如果你的安装目录不一样,其自行修改相关部分)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_HOME"="D:\\Oracle\\instantclient_11_2"
"ORACLE_SID"="MQY"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1]
"ORACLE_HOME"="D:\\Oracle\\instantclient_11_22"
"ORACLE_HOME_NAME"="OraClient10g_home1"
"ORACLE_GROUP_NAME"="Oracle - OraClient10g_home1"
"ORACLE_SID"="MQY"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_BUNDLE_NAME"="Enterprise"
"ORACLE_HOME_KEY"="SOFTWARE\\ORACLE\\KEY_OraClient10g_home1"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1\OO4O]
"CacheBlocks"="20"
"FetchLimit"="100"
"FetchSize"="4096"
"PerBlock"="16"
"SliceSize"="256"
"TempFileDirectory"="e:\\temp"

四)请把以下内容保存为tnsnames.ora,并保存到安装目录:E:\Oracle\instantclient_10_2\ADMIN
databasename =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip address)(PORT = 1521))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = database name)
      )
    )

参数说明:以上参数中

databasename  数据库名称
Ip address 数据库服务器IP地址
例如我的oracle数据库服务器安装在192.168.1.101上,数据库名称为orcl,则tnsnames.ora内容设置如下:

orcl =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = orcl)
      )
    )
关于tnsnames.ora多一点补充
databasename =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ip address)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = hostname)
      (SERVICE_NAME = wpsdb.huacai.com)
    )
)


第一行开头不能有空格,那个wpsdb1是oracle数据库的实例名(ORACLE_SID)(有人说这个可以随便写我没试过。。。),

第二行无所谓,等号后留空即可

第三行很重要,HOST后面那个ip是oracle数据库所在的主机的ip,要是有域名解析的话可以用主机名,后面的那个port是oracle监听的端口,一般是1521(该端口可在oracle主机上用命令netstat -ntlp|grep tnslsnr查看)。

第四行无所谓,留空值即可

第五行那个oracle1是我的oracle的主机的主机名(可用命令hostname查看)

第六行很重要,网上很多资料说这个地方填oracle的sid,其实不然(我把oracle的sid值填上去后报错:ORA-12154 TNS:监听程序当前无法识别连接描述符中请求的服务),实际上这里应该填的是oracle的服务名,要查看这个服务名可在oracle主机上用oracle账户输入命令lsnrctl status查看,我的得到的执行结果里有这样几行:

Services Summary...
Service "wpsdb.huacai.com" has 2 instance(s).
Instance "wpsdb1", status READY, has 2 handler(s) for this service...
Instance "wpsdb2", status READY, has 1 handler(s) for this service...
对比上面SERVICE_NAME我添的值,应该不难判断你的服务名是什么了。



五)请把以下内容保存为sqlnet.ora,并保存到安装目录:E:\Oracle\instantclient_10_2\ADMIN

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

六)测试:
cmd运行D:\Oracle\instantclient_11_2>adrci.exe
会出现
ADRCI: Release 11.2.0.2.0 - Production on 星期三 5月 11 22:25:49 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
(还不知道对不对,等待检验。)
如果启动adrci时出现下面的错误:
ORA-12545:   Connect   failed   because   target   host   or   object   does   not   exist  
试着把tnsnames.ora   中的host   改成IP地址.

   这里都配置好之后一直联不通的话请先telnet要连接的服务器主机,看是否已经跟服务器联通。
在cmd命令行下>telnet xxx.xxx.xxx.xxx(服务器IP)
p.s.win7要启用telnet服务需要安装,请参见我的上一篇日志。

我就是一直连不通,弄了一天,结果是没有访问服务器的权限,被服务器防火墙拦住了

七)使用(还没使用过,下面纯属复制。。。)

SQL> conn tom/tom@jia
????
SQL> conn tom/tom@jia
????
SQL> select cout(*) from tab;
select cout(*) from tab
*
? 1 ?????:
ORA-00936: ?????


SQL> select count(*) from tab;
COUNT(*)
----------
54

SQL> conn tom/tom@//10.6.99.120:1521/jia
????
SQL> conn tom/tom@//10.6.99.75:1521/epras
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


??: ?????? ORACLE?
SQL>
SQL> exit

C:\instantclient10_1>ociuldr user=tom/tom@jia query="select * from tab"
3100 bytes allocated for column TNAME (1)
800 bytes allocated for column TABTYPE (2)
4100 bytes allocated for column CLUSTERID (3)

0 rows exported at 2005-08-05 12:36:08
54 rows exported at 2005-08-05 12:36:08

C:\instantclient10_1>ociuldr user=tom/tom@//10.6.99.120:1521/jia query="select *
from tab"
3100 bytes allocated for column TNAME (1)
800 bytes allocated for column TABTYPE (2)
4100 bytes allocated for column CLUSTERID (3)

0 rows exported at 2005-08-05 12:36:41
54 rows exported at 2005-08-05 12:36:41

C:\instantclient10_1>ociuldr user=tom/tom@075 query="select * from tab"
3100 bytes allocated for column TNAME (1)
800 bytes allocated for column TABTYPE (2)
4100 bytes allocated for column CLUSTERID (3)

0 rows exported at 2005-08-05 12:37:02
57 rows exported at 2005-08-05 12:37:02

C:\instantclient10_1>ociuldr user=tom/tom@//10.6.99.75:1521/epras query="select
* from tab"
Cannot connect as tom/tom@//10.6.99.75:1521/epras.
Connection failed. Exiting...

八)卸载方法:
1.  桌面上,右键点“我的电脑”,选择“属性”,选择“高级”页中的“环境变量”,在系统变量中,
    删除 ORACLE_HOME, TNS_ADMIN, NLS_LANG 三个变量,修改path变量,去掉D:\Oracle\instantclient_11_2目录。
2. 删除D:\Progra~1\instantclient_11_2 目录.

热点排行