例如:数据库服务器A ARSYSTEM,数据库服务器B ULTRACMDB,数据库客户端;通过客户端连到A,在A上操作访问B。
1、在数据库客户端C的tnsnames中配置数据库服务器A ARSYSTEM的服务
LMISDX_LOCAL=
(DEscrīptION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 实例名)
)
)
2、这样就可以通过客户端访问到数据库AARSYSTEM的用户
3、在数据库服务器A ARSYSTEM的tnsnames中配置数据库服务器B ULTARNMSCMDB的服务
LMISSD=
(DEscrīptION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
plsql12配置数据库连接 (SERVICE_NAME = LMIS)
)
)
4.通过客户端C访问到数据库A的用户,在A上创建数据库链接
-
- Create database link
createpublicdatabaselinkLMIS_SDTEST
connecttoLMIS_SDTESTidentifiedby***
using'LMISSD';
Create DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
5、查询远端数据库里的表(通过客户端C登陆到数据库服务器A访问数据库B)
Select …… FROM 表名@数据库链接名;
SELECT*FROMSPKFK@LMIS_SDTEST
注意:创建是很简单,但是在使用中后台却出现锁,查看这个锁的方法可以去console中看到或者查询数据库。每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink应该不会自动释放这个连接,如果是大量使用dblink查询,会造成web项目的连接数不够,导致系统无法正常运行,导致系统无正常运行。
创建一个dblink
create public database link nms_2_225
connect to ultranms identified by ultranms
using'NMS_2.225';
表的查询
select * from res_host@nms_2_225
create table res_tes as select * from res_host@nms_2_225 ---a机
select * from res_tes --as select * from res_host@nms_2_225
update res_tes set res_id=1 where res_name='test'
select res_id,res_name from res_host@nms_2_225
select res_id,res_name from res_host@nms_2_225 where res_id in (select res_id from res_tes)
PROCEDURE+DBLINK+JOB
建立job
begin
sys.dbms_job.submit(job => :job,
what => 'proc_yw;',
next_date => to_date('13-11-2007 14:00:00', 'dd-mm-yyyy hh24:mi:ss'),
sys.dbms_job.submit(job => :job,
what => 'proc_yw;',
next_date => to_date('13-11-2007 14:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate)+1+14/24');
commit;
end;
commit;
end;
间隔trunc(sysdate)+1+14/24 就是每天下午2点执行一次proc_yw存储过程;
如间隔trunc(sysdate)+1+33/48就是每天下午4:30时执行一次
oracle数据库的定时Jobs作业(工作) 的使用
通过jobs的使用就能实现每天或每月的指定时间执行一个函数、过程与命令。
就如同Windows系统中的任务计划一样。
一:sqlserver连接oracle
1.配置windows的ODBC数据源:
开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:
1.配置windows的ODBC数据源:
开始菜单—》设置—》管理工具—》数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:
添加—》选择Microsoft ODBC for oracle—》自定义数据源名称(最好跟tns中连接串同名!)—》服务器名称
(必填!填写tns文件中的连接串名称)—》完成。
2.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;
选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填;
数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd
(或者按如下格式:UID=username;PWD=userpasswd),
这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:
设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。
(必填!填写tns文件中的连接串名称)—》完成。
2.配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;
选其他数据源; 指定程序名称为:Microsoft OLE DB Provider for Oracle; 产品名称可不填;
数据源指定刚才ODBC中定义好的数据源名称; 提供程序字符串按以下格式填写:User ID=username;Password=userpasswd
(或者按如下格式:UID=username;PWD=userpasswd),
这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码 —》 安全性标签页里:
设置用此安全上下文进行,并录入oracle的数据库用户名和密码—》服务器选项标签页可默认—》确定。
3.完成了。使用方法
在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,
即可在右边窗口看到该oracle数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!
访问表时,使用格式为: [连接服务器名]..[ORACLE用户].[表名]。必须为大写。更详细具体的使用这里不再赘述。
二:oracle连接sqlserver
1、安转透明网关
在自定义安转内
D:\oracle\ora92\tg4msql\a tg4msql
2、在D:\oracle\ora92\network\a内添加
(SID_DESC =
(GLOBAL_DBNAME = tg4msql)
在自定义安转内
D:\oracle\ora92\tg4msql\a tg4msql
2、在D:\oracle\ora92\network\a内添加
(SID_DESC =
(GLOBAL_DBNAME = tg4msql)
(PROGRAM = tg4msql)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = tg4msql)
)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = tg4msql)
)
回答人的补充 2009-07-02 12:07
3、配置tns
a
-----------------
例子1
cdma =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhyg)(PORT = 1521))
a
-----------------
例子1
cdma =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhyg)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tg4msql)
(SERVER = DEDICATED)
)
(HS=OK)
)
例子2
du =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sha38)(PORT = 1521))
)
(CONNECT_DATA =
(SID = jf)
(CONNECT_DATA =
(SID = tg4msql)
(SERVER = DEDICATED)
)
(HS=OK)
)
例子2
du =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sha38)(PORT = 1521))
)
(CONNECT_DATA =
(SID = jf)
(SERVER = DEDICATED)
)
(HS=OK)
)
3、创建数据链路
CREATE PUBLIC DATABASE LINK DU CONNECT TO SA IDENTIFIED BY SA USING 'DU'
ok可以使用了
select * from sysobjects@cdma
)
(HS=OK)
)
3、创建数据链路
CREATE PUBLIC DATABASE LINK DU CONNECT TO SA IDENTIFIED BY SA USING 'DU'
ok可以使用了
select * from sysobjects@cdma
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论