公司有两个数据库,
A 库 在北京,用于数据的汇总运算
B 库 在上海,用于存储客户的数据
现在有个需求就是月底的时候将B库的数据抽取到北京的A库来,然后启动一个PRO计算数据,由于B 库的数据比较多,使用DB LINK 抽取过来的时间太久,没法接受,所以被否了。如果手工去B库抽取然后压缩再人工复制出来,过程比较麻烦,且每个月都要这么弄一回感觉很繁琐。
现在想写一个PRO,在A库上远程调用B库的另外一个PRO,实现B库数据抽取,压缩,然后将RAR文件传到A库来,再解压,再导入到某张表里,再汇总计算。请问下,这个方案可行吗?我现在卡到RAR压缩后如何从PRO里将这个文件传到A库来这个环节了,求教各位大神指点一下!谢谢啦!
------解决方案--------------------
我没弄明白你说的PRO是什么东东。
个人建议:在B库对应的服务器上创建一个webservice
然后A库直接调用。下面是如何调用的一个方案
--Sqlserver 调用webservice
declare @ServiceUrl as varchar(1000)
declare @UrlAddress varchar(500)
--WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'
set @UrlAddress = 'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'
declare @FunName varchar(50)
--WebService中调用的方法名:例如'getMobileCodeInfo'
set @FunName = 'getMobileCodeInfo'
--以下参数对应WebService中个参数的[参数名]
declare @P1 varchar(800),@P2 varchar(100)
set @P1 = 'mobileCode'
set @P2 = 'userid'
declare @P1_Value varchar(100),@P2_Value varchar(100)
set @P1_Value = '13800138000'
set @P2_Value = ''
set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @P1_Value +'&' + @P2 + '=' + @P2_Value
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
GO
------解决方案--------------------
问题:
1、增量还是全量?
2、允许同步的时间有多少?因为量大的时候通过过程可能引起主数据库无法响应或者响应延迟,也可以理解为SLA的定义
3、量预估有多大?
4、是否在一个域里面?
5、SQL Server版本?