sql怎样跨数据库查询oracle

sql怎样跨数据库查询oracle,第1张

假定您现在拥有一个以MicrosoftNET为架构的网络订购系统,但是品管维护系统却仍然使用一套旧式的Oracle数据库应用程序。当您的顾客在产品保固期间下了产品更换之类的订单,则该笔订单将不收取任何费用。此时您需要从Oracle数据库得到实时的查询结果。借着建立连结服务器的方式(linkedServer),您将可以从SQLServer实时查询出位于Oracle数据库的顾客资料,找出谁是您既有的客户。

当您的资料分散在不同的SQLServer数据库时,藉由连结服务器可让您执行跨服务器之分布式查询。当所有的数据库服务器都是SQLServer,则连结服务器的设定十分容易,而且在SQLServer线上手册中就涵盖了您所需要了解的所有事项。然而,当部分资料是放在Oracle数据库服务器的时候,这就可能带给您许多挑战。举例来说,光是设定连结服务器就不是一件容易的事。您必须了解到:即是您要在SQLServer的EnterpriseManager设定一个Oracle连结服务器,这台SQLServer对Oracle来说就是一个客户端。所以您必须在SQLServer所在的服务器成功地安装并组态Oracle之客户端软件。因为Oracle提供的产品只支持Oracle8以后的数据库,所以我假设您正在使用的都是Oracle8以后的数据库。在OracleNet8函式库则提供了SQLServer所需要的客户端软件。

设定连接服务器时是利用Microsoft所提供的OLEDB ProviderforOracle,使用的Oracle网络函式库为SQLNet23304或是以后的版本,不过这是Oracle73数据库所提供的。换句话说,要设定Oracle数据库为SQLServer的连接服务器时,Oracle数据库只要是7334以后的版本,并搭配适当的SQLNet或是Net8函式库即可。

在Oracle数据库中,一个schema即代表着SQLServer专家们所熟知的单一数据库(译者注2)。连接至Oracle数据库时,您必须提供schema名称、密码以及主机联机字符串(hoststring)。每一个特定的Oracle帐户都拥有一个Oracleschema,而且只能有一个schema。所以schema名称其实就等于该schema拥有者的帐户名称。您可以查询Oracle的资料字典(Datadictionary)以得到更多有关schema的内容。

至于Oracle联机字符串又可称为服务名称(servicename)或是系统识别资料(SystenIdentifier,SID)。我们所谓的SQLServer数据库个体(instance)在Oracle则称为数据库(database)。所以安装OracleServer时,安装程序OracleUniversalInstaller(为一个图形接口之安装程序,与SQLServer的Setup程序类似)将会询问您SID名称为何,以作为Oracle数据库之名称。

这个部分原作者所提到schema的解释有点问题。Oracleschema可视为同一个使用者所拥有的所有数据库对象(schemaobjects)之集合。举例来说,使用者scott所建立的EMPtable其完整名称为SCOTTEMP,而SCOTT就是EMP的schema名称。所以schemaname其实就是一个Oracle数据库之使用者帐号。但是绝对不能拿来跟数据库相提并论!因为SQLServer的数据库架构包含了datafiles与logfiles,但是Oracle的schemaobjects只存在于tablespace中。为了避免部分读者产生混淆,特此说明。

对于个人网站而言,要想完整的迁移数据库,最好是先停止网站运行。

关键就是要停止对数据库的读写占用,防止数据不完整

然后做数据库备份为bak文件

备份文件传送到新服务器。

服务器上导入bak文件还原为数据库数据即可。

楼主好,想实现这个的话,可以使用SQL自带的VS开发工具,做一个ETL包,然后部署发布到服务器数据库上,添加作业,设定同步时间即可。跨局域网和跨服务器基本上在SQL连接中,本身就不太好解决,需要有服务器之间的链接访问权才可以建立连接。但是ETL不受这一点限制。唯一不足的地方在于,如果你有100张表数据需要同步,做ETL包是个麻烦事,同一个模式,你要做非常多的ETL流程,不管是做在一个包中也好,多个包中也好,都会显得比较繁琐。但是好处是不受服务器限制,另外要注意,如果同步的表有外键,那么需要在做ETL的时候添加执行顺序,才能确保表数据同步成功的。如果想了解更多可加我,646443736

SQL Server 复制:事务发布

配置发布服务器,

快照发布:隔一段时间会覆盖订阅服务器的数据库,在订阅服务器上做的修改同样被覆盖;

事务发布:是一种接近实时地从源到目标分发数据的方法;

具有可更新订阅的事务发布:订阅服务器可更新发布服务器的数据;

合并发布:发布服务器和订阅服务器的更新都会同步到对方,注意ID在合并发布上的冲突

1 在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访),打开1433端口,在防火墙中设置入站规则;

2 发布服务器与订阅服务器的SQL Server Agent代理帐号必须设置的一样,否则不能互访;

3 如果你希望在复制的过程中一并复制非聚集索引,可以对发布属性-项目进行如下设置,修改完之后需要重新生成快照;

以上就是关于sql怎样跨数据库查询oracle全部的内容,包括:sql怎样跨数据库查询oracle、如何将一个sql数据库数据完全导入另一台服务器的sql数据库中、两个SQL Server2008数据库如何实现跨局域网、跨服务器的数据同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10091433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存