代码改变世界

sql中job(sql 作业)使用入门

2010-03-22 15:58  ☆冷枫☆  阅读(1947)  评论(0编辑  收藏  举报

       编写这篇随笔的缘由是最近sql中有一个数据同步的需求,也就是说两个不同服务器上面的数据库,源数据库中的数据更新后,目标数据库中的数据也需要在一定时间内同步更新,方便程序调用、实现实时更新。

       源数据库服务器(***.***.***.***)上面的数据表结构如图所示:

         

      

       当然,目标数据库服务器上面的表结构需要与源数据库表结构相同。开始之前我们需要在服务器上面检查是否存在或新建一个"链接服务器","链接服务器"用于两台DB Server间的通信,可以在如图所示的位置查看或新建它:

    

 

       接下来,我们需要在目标数据库服务器上面新建作业,详细步骤如下所示:

       1.新建执行数据同步的存储过程

                 

 

示例代码如下所示:

-- =============================================
--
 Author:    zhuzx
--
 Create date: 2010-12-21
--
 Description:    同步行情数据
--
 =============================================
create PROCEDURE [dbo].[vinnervideo_datasyn]
AS
declare @temp1 int  
declare @temp2 int
BEGIN  
select top 1 @temp1 = OID from [122.11.***.***].[winnervideo].dbo.video where IsDelete = 0 and IsAuditing = 1 order by OID desc
select top 1 @temp2 = OID from video where IsDelete = 0 and IsAuditing = 1 order by OID desc
if(@temp1 > @temp2)
begin
insert video (IsDelete,LinkUrl,IsPost,RelativeUrl) 
select IsDelete,LinkUrl,IsPost,RelativeUrl from [122.11.***.***].[winnervideo].dbo.video  where oid > @temp2
end
END

 


       2.新建作业

       

      

      新建之后会一个弹出窗体出现,里面也还是有一些小细节问题是需要注意的。

 

      a.常规,需要注意的地方有:名称和启用状态

 

       

    

  

     b.步骤。需要注意到的地方有步骤名称,命令行(第一步新建的sql存储过程)   

  

  

  

     c.计划。需要注意到的地方主要有:计划类型(sql存储过程执行的频率、执行间隔)可以按照自己的业务需求进行设定

 

     


 

      执行完这些操作后,基本的工作已经完成了。最后检查一下自己新建的作业是否已经启动,即是否开始了作业。之后,在指定的时间间隔内目标数据库中的数据就会得到更新了,如果数据的访问量比较大,将数据库中的数据分发到其他数据库中也有利用缓解数据访问压力。好了,先总结到这里吧!