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