username/password@servicename
于是想,用我的两台电脑双机互联试一试,也玩个远程连接。实验如下:
首先在我的台式机上安装了Oracle9i的数据库管理系统,并建立了一个数据库实例:xy然后为该实例新增了一个用户,用户名和密码都是kxy01
。启动实例xy后,在台式机上,直接在cmd环境键入:sqlplus
kxy01/kxy01@xy
就可以连接上数据库,呵呵,想来本地连接都是不费吹灰之力就行的。
之后,在我的笔记本上安装了Oracle9i的Client工具。然后试着直接用上述命令访问,显然是不行的,系统返回无法解析服务名的错误信息。
要实现连接到远程数据库,先了解一下相关知识吧,查了一下书。原来,
Net
Configuration
Assitant
的工具,应该就是它了。启动之:
Net
Configuration
Assitant共提供了4个配置功能:
监听程序配置,
命名方法配置,
本地网络服务名配置
目录使用配置。
要从远程位置连接Oracle数据库,必须配置Oracle网络监听程序。
Net
Configuration
Assitant
可以用于此项配置工作,启动后选择监听程序配置,一路下一步即可。
之后点开命名方法配置,系统已经默认提供了三种,其他两种也不太认识,干脆不改了,直接点后退,回到主菜单。
主菜单中,第三项是本地网络服务名配置。要通过网络访问Oracle数据库或其他服务,要使用网络服务名,该项配置允许使用由本地命名解析的网络服务名。而第四项为目录使用配置,点开一看,居然要选择目录服务器,我这一共就两台电脑,要什么目录服务,看来第四项不适合本实验了,显然,关键配置就在第三项:本地网络服务名配置。
将其点开,选择添加网络服务名 *** 作,然后会询问你希望访问何种版本的Oracle数据库服务。
按照常理,我装的是Oracle9i自然应该选择第一个(Oracle8i或更高版本数据库服务),可经过实践证明,只有选择第二个(Oracle8i发行版8.0数据库或服务)才能正常实现远程连接,不明其中原因,也就只有选第二个拉。
然后输入我的数据库实例SID:xy然后选择网络协议,双机互联应该选择TCP吧,再然后填写数据库所在的主机名:kxyhome
。端口号采用默认的1521。
有个源数据库,有个目的数据库,把源数据库的地址和密码写好,再把目的数据库的地址和账号密码填好就可以导入了。
@后面写数据库ip或者自己配的tns里的自定义的名字。管理员是sysman,口令是oem_temp。
方法一:
<%
dim conn
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDBDATA SOURCE=(local)UID=用户名PWD=密码DATABASE=数据库"
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={SQL Server}SERVER=(local)UID=用户名PWD=密码DATABASE=数据库"
conn.open DSNtemp
%>
方法二:
<%
option explicit
dim startime
dim conn
dim connstr
dim db,pass_word,User_ID,Data_Source
startime=timer()
db="数据库名称XK"
Pass_word="帐号密码123456"
User_ID="登陆帐号sa"
Data_Source="服务名称或者ip127.0.0.1"
Set conn = Server.CreateObject("ADODB.Connection")
connStr="Provider=SQLOLEDB.1Password='"&pass_word&"'Persist Security Info=TrueUser ID='"&User_ID&"'Initial Catalog='"&db&"'Data Source='"&Data_Source&"'"
conn.Open connstr
function CloseDb
Conn.close
Set conn = Nothing
End Function
(1)服务器端数据库启动正常(2)服务器端监听正常启动,并且状态正常
(3)配置客户端配置文件(tnsnames.ora)
(4)sqlplus 用户名/密码@连接名
连接名是tns文件中XXX = ()一串文字中前面的XXX,具体是哪个要看后面的ip来决定
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)