--定时同步服务器上的数据
--例子:
--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test
--服务器上的表(查询分析器连接到服务器上创建)
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
分享到:
相关推荐
springboot双数据库定时同步,可以是mysql,SqlServer
两个mysql数据库之间实现同步,通过定时任务实现从主库到从库的同步,java代码实现,所有java项目包括配置都有,数据结构可以跟据自己的特定情况去改
用java中的线程控制程序从一个数据库中定时自动抽取数据到另一个数据库,实现数据库的同步。代码很详细。
在两个SQLSERVER之间数据同步,本文介绍了两个数据库之间的数据交换。
使用kettle同步数据库表。网上找教程找了一天。终于弄好了。将两个数据库连接改成你自己的。sql也要改,然后把后面步骤的字段重新获取一下。然后就可以同步数据了。数据来源表增删改都可以同步。参考一下吧
两个数据库之间数据的同步软件设计,阮宁君,沈林,本文介绍一种两个数据库之间表中数据自动同步或者手动同步的软件设计与实现。该软件具有可以自动定时把一个数据库中的数据同步到
1、该压缩包包含,创建link的过程,同步库表的sql语句,自动执行的bat脚本。 2、通过link进行连接两台带有oracle11g的数据库之间表同步,包含添加和更新表数据。...3、通过任务计划自动执行bat脚本,定时同步库表。
数据库两个表同步实例测试,给自个看的,希望对别人也有帮助
java代码操作数据转移,把一个数据库里的东西移动到另一个数据库,自动建库建表。
此脚本利用JOB定时把指定表中的数据生成SQL(利用模版去生成),...这个方法适用于只两台数据库服务器不能直接通讯的情况下, 献丑了。 注意:需要一个后台服务去支持,我不想浪费大家时间,希望对有需要的人有帮助.
亲测solr7.7.2可用,并且在原有的无需验证的基础上增加了带账号密码验证的功能,所以有两个jar包,网友可根据自己的需要下载。账号密码验证的格式为user_pwd=user:password
我们的项目中需要解决mysql的增量备份,就自己写了几个预处理程序,让后在服务器添加了两个定时任务。mydql数据库增量备份就解决了。分享给大家。
# InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 # 独立表空间优点: # 1.每个表都有自已独立的表空间。 # 2.每个表的数据和索引都会存在自已的表空间中。 # 3.可以实现单表在不同的数据库中...
最近有一个需求:把5个公众号的所有文章定时同步到小程序的数据库里,10分钟同步一次。实现这个需求当时我想了两种方案 方案一:使用Puppeteer就所以的历史文章爬下来,然后解析入库。 方案二:通过微信公众号...
这个脚本实现了跨服务器增量同步mysql数据的功能,可以同步多个表。 在使用这个脚本的时候需要注意有修改的地方就是源表配置、目标表配置需要修改成自己的服务器和登录mysql数据库的用户名和密码。基础配置中需要...
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 ...
本项目为两个数据库,由一个数据库的表向另外一个数据库的表做数据迁移,其中数据库脚本在:/src/main/resources/sql/下面(其中data_rep中的表要求创建顺序,有依赖) 项目功能: 1.本项目运行在tomcat容器中,主要...
交待:使用的软硬件环境为Win XP SP2、SQL Server 2000 SP2个人版、普通双核台式机、1000M局域网,A机为已使用的服务器,上面已有数据库和海量数据,B机为此次新架服务器,两机登陆方式均为sql server身份验证模式,...
* 该项目分为两个部分,都是对上个版本的重构,使用了两个端口,只是操作的同一个数据库 * 这里订单ID生成使用了雪花算法,uuid也行 --- ## 项目截图 >前台用户部分 ![image]...
网络环境:两个数据库处于同一局域网 先讲一下完成此任务需要用到哪些技术: Database link:使用户可以通过一个数据库访问到另外一个远程数据库 DBMS_Job:使ORACLE数据库定期执行特定的任务 Procedure:用来...