打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
oracle10G 远程连接

本文来源于tSt's Blog


机房上机的时候突然想把半夜看过的Oracle知识练习一下,可惜机子上没装,记得上次老师给演示的时候机子上有啊,看来只有教师机才有吧,在管理里面看了下教师机的服务,果然有Oracle,开他的telnet,然后执行:

net start OracleMTSRecoveryService
net start OracleOraHome92Agent
net start OracleOraHome92HTTPServer
net start OracleOraHome92TNSListener
net start OracleServiceORACLE
教师机上的服务名和我这的是不一样的,安装过Oracle数据库的朋友应该知道的,而且我这里开的服务多了点,省的要用还得开。

打开SqlPlus就准备进教师机练习,可惜总是失败,错误信息忘记了。。。。。

打开cmd执行
sqlplus /nolog
可惜怎么连接远程数据库呢?这命令不知道了。
问题分析:
Windows
下的Oracle在回应每个客户端的请求时,会生成一个线程或者是进程,在这个线程里,它用一个随机端口与客户端通信。而设置了上述参数后,则都用统一的端口了(缺省是TCP1521),所以就能解决1521端口看似不能连接服务器的问题。

解决方案A

找到系统菜单下的 Oracle菜单-Configuration and Migration Tools -Database Configuration Assistant。打开界面后,找到树型菜单下的 oracle管理对象-Computers-<机器名>-Oracle主目录下的子节点中,点击右边的空白处,添加属性。在弹出的界面中,点击添加按钮,添加如下属性:

属性名:USE_SHARED_SOCKET 属性值:TRUE

修改后,重新启动数据库实例,再使用sql plus连接,成功!
解决方案B(针对没有安装Oracle的用户):

一、软件下载及环境配置
1.
软件下载
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
instantclient-sqlplus-win32-10.2.0.4.zip
将这三个包分别解压,然后内容放到C:\instantclient_10_2

然后从一台安装了oem的机器上复制%ORACLE_HOME\network\admin\tnsnames.ora也放到C:\instantclient_10_2

http://www.anysql.net/software/ociuldr.zip下载coiuldr.zip,解压后里面有windowslinux
solaris
三个版本,将ociuldr.exe 复制到C:\instantclient_10_2,其中ociuldr.exe 是一个文本导出工具,具体参数可以参考http://www.anysql.net/ociuldr.html介绍

2.
环境变量的设置
PATH中增加;C:\instantclient_10_2
新建SQLPATHLOCALTNS_ADMINLD_LIBRARY_PATH四个环境变量名,变量值均为C:\instantclient_10_2
如果查询结果为乱码,设置set NLS_LANG=XXXX(例如SIMPLIFIED CHINESE_CHINA.ZHS16GBK

3.
如果开发JAVA应用程序,还要配置一些环境变量,
例如CLASSPATH,JAVA_HOME等等. CLASSES12.jar 文件是
必须的,其他的根据需要添加.

4.
如果启动SQLPLUS时出现下面的错误:
ORA-12545: Connect failed because target host or object does not exist
试着把tnsnames.ora 中的host 改成IP地址。

二、运行
运行cmd
c:>sqlplus /nolog
SQL:>conn system/oracle@orc10g
这样就已经能连接远程服务器了

也可以这么连接:
conn system/oracle@//192.168.1.179:1521/orc10g
连接
C:\instantclient_10_2>sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 27 14:45:51 2008Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn system/oracle@//192.168.1.179:1521/orc10g
Connected.

下面看一下ociuldr应用的方法:

C:\instantclient_10_2>ociuldr user=system/oracle@orc10g query="select username from dba_users" file=dba_users.txt
1550 bytes allocated for column USERNAME (1)
0 rows exported at 2008-11-27 14:49:44
29 rows exported at 2008-11-27 14:49:44
output file dba_users.txt closed at 29 rows.
这样查询结果就输出到dba_user.txt文件里面了。

配置tnsnames.orasqlnet.ora.。如果本机找不到示例文件,就从其他装有oracle的机器上拷一个。
我拷贝了10g9i版本下各一份:
10g
tnsnames.ora内容

# tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORC10G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = database007)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orc10g)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)


10g
sqlnet.ora的内容:

# sqlnet.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


9i
版本下的内容:

# TNSNAMES.ORA Network Configuration File: d:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORA9I_192.168.2.206 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.206)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora9i)
(SERVER = DEDICATED)
)
)

WS_192.168.1.101 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ws)
(SERVER = DEDICATED)
)
)

ORA9I_192.168.2.50 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora9i)
(SERVER = DEDICATED)
)
)


9
sqlnet.ora的内容:

# SQLNET.ORA Network Configuration File: d:\oracle\ora92\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
---------------
邪恶的分割线------------------
现在想想当时真笨,telnet都开了,直接sqlplus连接不就能练了还用自己机子连接?吃一堑长一智吧。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle网络配置用到的sqlnet.ora,tnsnames.ora,listener.ora文件
ORACLE客户端连接服务器的注意事项
oracle的sqlnet.ora,tnsnames.ora,listener.ora三个...
listener.ora/sqlnet.ora/tnsnames.ora配置文件详解
PL/SQL Developer安装配置实践
The ‘OraOLEDB.Oracle.1‘ provider is not registered on the local machine的原因
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服