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

[复制链接]
发表于 2025-9-3 04:51:14 | 显示全部楼层 |阅读模式
项目背景

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

参考:https://blog.csdn.net/bing_yuan/article/details/141815982
利用sql server本身功能存储过程+署理作业)
1.sql server
  1. --创建访问生产库数据库的别名
  2. -- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
  3. use tjzx
  4. go
  5. -- 创建链接服务器,'source_test'自定义别名,后面会用到,其余信息可以都不动
  6. -- 创建名为'source_test'的链接服务器,连接到IP为172.X.X.X的SQL Server实例
  7. -- 参数说明:
  8. -- 'source_test' - 链接服务器在本地的别名
  9. -- ' ' - 产品名称留空
  10. -- 'SQLOLEDB' - 使用SQL Server的OLE DB提供程序
  11. -- '172.X.X.X' - 远程SQL Server的IP地址
  12. exec sp_addlinkedserver 'source_test', ' ', 'SQLOLEDB', '172.X.X.X';
  13. -- 配置链接服务器的登录映射
  14. -- 参数说明:
  15. -- 'source_test' - 链接服务器名称
  16. -- 'false' - 不使用当前登录的安全上下文
  17. -- null - 表示所有本地登录都使用这个映射
  18. -- '用户名' - 远程服务器的登录用户名
  19. -- '密码' - 远程服务器的登录密码
  20. exec sp_addlinkedsrvlogin 'source_test', 'false', null, '用户名', '密码';
  21. exec sp_serveroption @server='source_test', @optname='rpc', @optvalue='true';
  22. exec sp_serveroption @server='source_test', @optname='rpc out', @optvalue='true';
  23. exec sp_serveroption @server='source_test', @optname='remote proc transaction promotion', @optvalue='true';
  24. --创建目标生产库数据库的别名
  25. -- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
  26. use tjzx
  27. go
  28. --创建访问中间库的数据库target_test2
  29. exec sp_addlinkedserver 'target_test2', ' ', 'SQLOLEDB', '172.X.X.X';
  30. exec sp_addlinkedsrvlogin 'target_test2', 'false', null, '用户名', '密码';
  31. exec sp_serveroption @server='target_test2', @optname='rpc', @optvalue='true';
  32. exec sp_serveroption @server='target_test2', @optname='rpc out', @optvalue='true';
  33. exec sp_serveroption @server='target_test2', @optname='remote proc transaction promotion', @optvalue='true';
  34. -- 创建存储过程
  35. -- tjzx为具体的数据库名称,意思在哪个数据库下进行链接服务器操作。
  36. use tjzx
  37. go
  38. -- 存储过程名称
  39. create procedure sync_event_data_0513
  40. as
  41. begin
  42.         SET NOCOUNT ON;
  43. insert into  target_test2.sjjc_force_b.dbo.test_0513(test,test_1,test_2,test_3,test_4,test_5)
  44. select test,test_1,test_2,test_3,test_4,test_5
  45. -- 表名source_test.bpainsdb_60_tjzx.dbo.test_0513格式为 链接服务器信息别名.数据库名称.子库信息.表名
  46. from source_test.bpainsdb_60_tjzx.dbo.test_0513
  47. where test_5 < DATEADD(minute, DATEDIFF(minute, 0, GETDATE()) + 10, 0);
  48. END;
复制代码
2.署理作业

1.署理作业


2.作业属性


3.作业步骤属性


4. 作业筹划属性



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表