--定时同步服务器上的数据

--例子:

--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test

http://www.gaodaima.com/35460.html通过作业,定时同步两个数据库_sqlserver

--服务器上的表(查询分析器连接到服务器上创建)

create table [user](id int primary key,number varchar(4),name varchar(10))

go

--以下在局域网(本机操作)

--本机的表,state说明:null 表示新增记录,1 表示修改过的记录,0 表示无变化的记录

if exists (select * from dbo.sysobjects where id = object_id(N'[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [user]

GO

create table [user](id int identity(1,1),number varchar(4),name varchar(10),state bit)

go

--创建触发器,维护state字段的值

create trigger t_state on [user]

after update

as

update [user] set state=1

from [user] a join inserted b on a.id=b.id

where a.state is not null

go

--为了方便同步处理,创建链接服务器到要同步的服务器

--这里的远程服务器名为:xz,用户名为:sa,无密码

if exists(select 1 from master..sysservers where srvname='srv_lnk')

exec sp_dropserver 'srv_lnk','droplogins'

go

exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','xz'

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa'

go

--创建同步处理的存储过程

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_synchro]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[p_synchro]

GO

create proc p_synchro

as

--set  XACT_ABORT on

--启动远程服务器的MSDTC服务

--exec master..xp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output

--启动本机的MSDTC服务

--exec master..xp_cmdshell 'net start msdtc',no_output

--进行分布事务处理,如果表用标识列做主键,用下面的方法

--BEGIN DISTRIBUTED TRANSACTION

--同步删除的数据

delete from srv_lnk.test.dbo.[user]

where id not in(select id from [user])

--同步新增的数据

insert into srv_lnk.test.dbo.[user]

select id,number,name from [user] where state is null

--同步修改的数据

update srv_lnk.test.dbo.[user] set

number=b.number,name=b.name

from srv_lnk.test.dbo.[user] a

join [user] b on a.id=b.id

where b.state=1

--同步后更新本机的标志

update [user] set state=0 where isnull(state,1)=1

--COMMIT TRAN

go

--创建作业,定时执行数据同步的存储过程

if exists(SELECT 1 from msdb..sysjobs where name='数据处理')

EXECUTE msdb.dbo.sp_delete_job @job_name='数据处理'

exec msdb..sp_add_job @job_name='数据处理'

--创建作业步骤

declare @sql varchar(800),@dbname varchar(250)

select @sql='exec p_synchro'   --数据处理的命令

,@dbname=db_name()   --执行数据处理的数据库名

exec msdb..sp_add_jobstep @job_name='数据处理',

@step_name = '数据同步',

@subsystem = 'TSQL',

@database_name=@dbname,

@command = @sql,

@retry_attempts = 5,   --重试次数

@retry_interval = 5    --重试间隔

--创建调度

EXEC msdb..sp_add_jobschedule @job_name = '数据处理',

@name = '时间安排',

@freq_type = 4,     --每天

@freq_interval = 1,    --每天执行一次

@active_start_time = 00000  --0点执行

go

欢迎大家阅读《通过作业,定时同步两个数据库_sqlserver》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

sqlserver和mysql定时同步_通过作业,定时同步两个数据库_sqlserver相关推荐

  1. mysql navicat报表_使用Navicat定时备份mysql数据库和创建报表并邮件自动发送

    数据库备份在现代计算机高速发展的今日变得日益重要,程序员往往因为不重视而忽略备份数据,导致数据丢失,造成非常严重的后果.定时备份无疑是解决备份的最好的途径,本文主要使用Navicat来自动备份数据库和 ...

  2. kettle 批量多表同步_财务基础数据同步的方式

    全文共计1800字,预计阅读时间: 5 分钟 良人一句三冬暖,伤人一语六月寒! 前言 介绍财务进销存系统框架时,一直在说财务数据需要进行分层,从基础数据到计算层,再到财务数据层,最后是展现层,每层间都 ...

  3. 7 centos 时钟跟物理机同步_通信网中的同步技术

    同步技术的产生,跟其他技术一样,都是有原因的. 在老久之前的电路交换网络时代,因为电路交换的数据流是恒定的,因此可以很容易地从数据流中恢复出所需要的时钟信息,并保持源和宿之间的同步状态.二是整个报文的 ...

  4. 帧同步_什么是帧同步什么是状态同步

    哈喽,大家好 这节我们来讲解一下关于游戏开发经常涉及到的 帧同步和状态同步问题. 我这里已经录制为视频 ,有兴趣的可以看看~~ 知乎视频​www.zhihu.com 以下是moba第七章内容 第七章 ...

  5. 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步...

    Sql Data Compare 是比较两个数据库的数据是否相同.生成同步sql的工具. 这一款工具由Red Gate公司出品,我们熟悉的.NET Reflector就是这个公司推出的,它的SQLTo ...

  6. 使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较、同步...

    将测试版的项目同步(部署)到正式版的时候,两个数据库的结构比较与同步时,如果修改数据库的时候没有记录好修改了那些表,很难将两个数据库进行同步 RedGate Sql Compare使用简介说明: 1. ...

  7. mysql怎么对比表结构_mysql怎么对比两个数据库表结构

    mysql怎么对比两个数据库表结构 发布时间:2021-02-03 11:45:58 来源:亿速云 阅读:58 作者:小新 这篇文章主要介绍了mysql怎么对比两个数据库表结构,具有一定借鉴价值,感兴 ...

  8. 支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理

    OceanBase的SQL优化器和分布式并行执行 摘要:本文主要介绍蚂蚁金服自主研发的通用关系型数据库OceanBase,OceanBase采用了分布式架构,其通过技术创新在普通PC服务器集群上实现了 ...

  9. pandas转mysql特定列_在pandas.DataFrame.to_sql时指定数据库表的列类型

    问题 在数据分析并存储到数据库时,Python的Pandas包提供了to_sql 方法使存储的过程更为便捷,但如果在使用to_sql方法前不在数据库建好相对应的表,to_sql则会默认为你创建一个新表 ...

  10. lnp和mysql分开安装_毕业设计之LNP+DISCUZ +分离的数据库操作

    环境介绍: CentOS6.9最小化安装 https://nginx.org/download/nginx-1.16.1.tar.gz https://www.php.net/distribution ...

最新文章

  1. linux正则表达式的使用方法,Linux中基本正则表达式
  2. C语言学习之求∑n!(即求1!+2!+3!+...+20!)
  3. spring-JDBC
  4. 批量管理Linux服务器,命令行工具Omnitty
  5. AOP技术研究 再续
  6. 一个简单的Makefile模板
  7. wegame每次登陆都要滑动验证_Vue项目中实现用户登录及token验证
  8. Visual Assist X Options 注释设置-类
  9. Linux多网卡配置高级策略路由---从哪里来就回哪里去~!
  10. 【 2015-2016 XVI Open Cup, Grand Prix of Bashkortostan, SKB Kontur Cup Stage 2】题目总结
  11. 新系统申请软件著作权详细操作说明
  12. 计算机一级插入页眉,计算机一级考试,设置页眉为“汉字的交换码”
  13. freepiano 手残党也想弹钢琴(在电脑上弹奏电子钢琴自娱自乐,也许还是有点困难,不如试试freepiano+鼠标宏,这样用简谱就不怕残疾了)
  14. Duilib版视频监控客户端(简易版)
  15. 到底什么才是真正的商业智能(BI)
  16. 学习ios Metal(3)—宽度可调的线条的绘制
  17. 苹果 谷歌 微软 三国混战 附地图详解
  18. 深度学习_21天实战Caffe.pdf
  19. 【笔记本显卡改BIOS硬超频方法初探及简明步骤】
  20. 服务器性能评分,服务器CPU排行榜之服务器CPU性能评分

热门文章

  1. 计算机网络和智能家居,华中科技大学计算机网络专题智能家居与普适计算.ppt...
  2. 常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
  3. 通用接口开放平台设计与实现——(1)开篇
  4. 如何给php安装上pecl,PHP安装PECL扩展的方法
  5. python修改文件内容_Python之文件处理-批量修改md文档内容-Go语言中文社区
  6. 11.Python初窥门径(函数名,可迭代对象,迭代器)
  7. java pfx 和cer_pfx证书和CER证书
  8. 众数和中位数的应用题_什么是众数和中位数
  9. 流水线计算公式及吞吐量
  10. Google 搜索知识