欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > SQL server数据库实现远程跨服务器定时同步传输数据

SQL server数据库实现远程跨服务器定时同步传输数据

2025/5/15 7:30:32 来源:https://blog.csdn.net/weixin_41973200/article/details/147925609  浏览:    关键词:SQL server数据库实现远程跨服务器定时同步传输数据

项目背景

数据需要定期迁移,数据存在于客户政务外网下,从旧数据库迁移到新数据库中,且要求能够定时增量同步。
注意:
源数据库所在服务器为windows服务器,目标数据库所在服务器为linux服务器。
源数据库所在windows服务器可以连接到目标数据库,但目标数据库无法连接到源数据库。

使用方法

参考:https://blog.csdn.net/bing_yuan/article/details/141815982
利用sql server本身功能(存储过程+代理作业)

1.sql server

--创建访问生产库数据库的别名
-- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
use tjzx 
go
-- 创建链接服务器,'source_test'自定义别名,后面会用到,其余信息可以都不动
-- 创建名为'source_test'的链接服务器,连接到IP为172.X.X.X的SQL Server实例
-- 参数说明:
-- 'source_test' - 链接服务器在本地的别名
-- ' ' - 产品名称留空
-- 'SQLOLEDB' - 使用SQL Server的OLE DB提供程序
-- '172.X.X.X' - 远程SQL Server的IP地址
exec sp_addlinkedserver 'source_test', ' ', 'SQLOLEDB', '172.X.X.X';-- 配置链接服务器的登录映射
-- 参数说明:
-- 'source_test' - 链接服务器名称
-- 'false' - 不使用当前登录的安全上下文
-- null - 表示所有本地登录都使用这个映射
-- '用户名' - 远程服务器的登录用户名
-- '密码' - 远程服务器的登录密码
exec sp_addlinkedsrvlogin 'source_test', 'false', null, '用户名', '密码';
exec sp_serveroption @server='source_test', @optname='rpc', @optvalue='true';
exec sp_serveroption @server='source_test', @optname='rpc out', @optvalue='true';
exec sp_serveroption @server='source_test', @optname='remote proc transaction promotion', @optvalue='true';--创建目标生产库数据库的别名
-- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
use tjzx
go
--创建访问中间库的数据库target_test2
exec sp_addlinkedserver 'target_test2', ' ', 'SQLOLEDB', '172.X.X.X';
exec sp_addlinkedsrvlogin 'target_test2', 'false', null, '用户名', '密码';
exec sp_serveroption @server='target_test2', @optname='rpc', @optvalue='true';
exec sp_serveroption @server='target_test2', @optname='rpc out', @optvalue='true';
exec sp_serveroption @server='target_test2', @optname='remote proc transaction promotion', @optvalue='true';-- 创建存储过程
-- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
use tjzx
go
-- 存储过程名称
create procedure sync_event_data_0513
as 
beginSET NOCOUNT ON;
insert into  target_test2.sjjc_force_b.dbo.test_0513(test,test_1,test_2,test_3,test_4,test_5)
select test,test_1,test_2,test_3,test_4,test_5
-- 表名source_test.bpainsdb_60_tjzx.dbo.test_0513格式为 链接服务器信息别名.数据库名称.子库信息.表名
from source_test.bpainsdb_60_tjzx.dbo.test_0513
where test_5 < DATEADD(minute, DATEDIFF(minute, 0, GETDATE()) + 10, 0);
END;

2.代理作业

1.代理作业

在这里插入图片描述

2.作业属性

在这里插入图片描述

3.作业步骤属性

在这里插入图片描述

4. 作业计划属性

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词