华佗电子针疗仪官网:oracle10G 远程连接

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 08:01:34

本文来源于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,解压后里面有windows,linux,
solaris三个版本,将ociuldr.exe 复制到C:\instantclient_10_2,其中ociuldr.exe 是一个文本导出工具,具体参数可以参考http://www.anysql.net/ociuldr.html介绍

2.环境变量的设置
在PATH中增加;C:\instantclient_10_2;
新建SQLPATH,LOCAL,TNS_ADMIN,LD_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.ora和sqlnet.ora.。如果本机找不到示例文件,就从其他装有oracle的机器上拷一个。
我拷贝了10g和9i版本下各一份:
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连接不就能练了还用自己机子连接?吃一堑长一智吧。