咨询电话:023-88959644    24小时服务热线:400-023-8809
NEWS CENTER ·
新闻动态
关注中技互联 关注前沿

网站同步镜像如何步步实现(二)

发表日期:2012-05-14    文章编辑:山城阿修    浏览次数:23    标签:

  SQL复制的根本元素包含:出书办事器、定阅办事器、散发办事器、出书物、文章

  SQL复制的事情原理:SQLSERVER重要采纳出书物、定阅的方法来处置复制。源数据所在的办事器是出书办事器,负责颁发数据。出书办事器把要颁发的数据的所有改变环境的拷贝复制到散发办事器,散发办事器包括有一个散发数据库,可接管数据的所有改变,并保留这些改变,再把这些改变散发给定阅办事器

  SQLSERVER复制技能范例:SQLSERVER供给了三种复制技能,分别是:

  1、快照复制(待会咱们就使用这个)

  二、事件复制

  三、归并复制

  只需把下面这些观点弄明白了那末对复制也就有了必定的明白。接上去咱们就一步一步来完成复制的步调。

  第一先来设置装备摆设出书办事器

  (1)选中指定[办事器]节点

  (2)从[东西]下拉菜单的[复制]子菜单当选择[公布、定阅办事器和散发]号令

  (3)体系弹出一个对话框点[下一步]然后看着提醒不停操纵到实现。

  (4)当实现了出书办事器的设置今后体系会为该办事器的树形布局中增加一个复制监督器。同时也天生一个散发数据库(distribution)

  第二建立出书物

  (1)选中指定的办事器

  (2)从[东西]菜单的[复制]子菜单当选择[建立和办理公布]号令。此时体系会弹出一个对话框

  (3)抉择要建立出书物的数据库,然后单击[建立公布]

  (4)在[建立公布领导]的提醒对话框中单击[下一步]体系就会弹出一个对话框。对话框上的形式是复制的三个型。咱们如今选第一个也便是默许的快照公布(其余两个大师可以去看看帮忙)

  (5)单击[下一步]体系请求指定可以定阅该公布的数据库办事器范例,SQLSERVER容许在分歧的数据库如ORACLE或ACCESS之间进行数据复制。可是在这里咱们抉择运转"SQLSERVER2000"的数据库办事器

  (6)单击[下一步]体系就弹出一个界说文章的对话框也便是抉择要出书的表

  (7)然后[下一步]直到操纵实现。当实现出书物的建立后建立出书物的数据库也就酿成了一个同享数据库。

  第三计划定阅

  (1)选中指定的定阅办事器

  (2)从[东西]下拉菜单当选择[复制]子菜单的[哀求定阅]

  (3)依照单击[下一步]操纵直到体系会提醒查抄SQLSERVER代办署理办事的运转状况,实行复制操纵的条件前提是SQLSERVER代办署理办事必需已发动。

  (4)单击[实现]。实现定阅操纵。

  实现下面的步调其实复制也便是乐成了。可是若何来晓得复制是否乐成了呢?这里可以经由过程这类法子来疾速看是否乐成。开展出书办事器上面的复制——公布形式——右键公布形式——属性——击活——状况然后点当即运转代办署理步伐接着点代办署理步伐属性击活调剂把调剂设置为每一天产生,每一分钟,在0:00:00和23:59:59之间。接上去便是果断复制是否乐成了关上C:\ProgramFiles\MicrosoftSQL/Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database上面看是否是有一些以时间做为文件名的文件夹差未几一分中就发生一个。如果你还不信的话就关上你的数据库看在定阅的办事器的指定定阅数据库下看是否是看到了你适才所公布的表—

  一个手工同步的计划

  --按时同步办事器上的数据

  --例子:

  --测试环境,SQLServer2000,长途办事器名:xz,用户名为:sa,无暗码,测试数据库:test

  --办事器上的表(查询阐发器毗连到办事器上建立)

  如下为援用的形式:

  createtable[user](idintprimarykey,numbervarchar(4),namevarchar(10))

  go

  --如下在局域网(本机操纵)

  --本机的表,state阐明:null暗示新增记实,1暗示点窜过的记实,0暗示无变革的记实

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[user]')andOBJECTPROPERTY(id,N'IsUserTable')=1)

  droptable[user]

  GO

  createtable[user](idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)

  go

  --建立触发器,保护state字段的值

  createtriggert_stateon[user]

  afterupdate

  as

  update[user]setstate=1

  from[user]ajoininsertedbona.id=b.id

  wherea.stateisnotnull

  go

  --为了便利同步处置,建立链接办事器到要同步的办事器

  --这里的长途办事器名为:xz,用户名为:sa,无暗码

  ifexists(select1fro妹妹aster..sysserverswheresrvname='srv_lnk')

  execsp_dropserver'srv_lnk','droplogins'

  go

  execsp_addlinkedserver'srv_lnk','','SQLOLEDB','xz'

  execsp_addlinkedsrvlogin'srv_lnk','false',null,'sa'

  go

  --建立同步处置的存储进程

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_synchro]')andOBJECTPROPERTY(id,N'IsProcedure')=1)

  dropprocedure[dbo].[p_synchro]

  GO

  createprocp_synchro

  as

  --setXACT_ABORTon

  --发动长途办事器的MSDTC办事

  --execmaster..xp_cmdshell'isql/S"xz"/U"sa"/P""/q"execmaster..xp_cmdshell''netstartmsdtc'',no_output"',no_output

  --发动本机的MSDTC办事

  --execmaster..xp_cmdshell'netstartmsdtc',no_output

  --进行散布事件处置,如果表用标识列做主键,用上面的法子

  --BEGINDISTRIBUTEDTRANSACTION

  --同步删除的数据

  deletefromsrv_lnk.test.dbo.[user]

  whereidnotin(selectidfrom[user])

  --同步新增的数据

  insertintosrv_lnk.test.dbo.[user]

  selectid,number,namefrom[user]wherestateisnull

  --同步点窜的数据

  updatesrv_lnk.test.dbo.[user]set

  number=b.number,name=b.name

  fromsrv_lnk.test.dbo.[user]a

  join[user]bona.id=b.id

  whereb.state=1

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

  update[user]setstate=0whereisnull(state,1)=1

  --COMMITTRAN

  go

  --建立功课,按时实行数据同步的存储进程

  ifexists(SELECT1fro妹妹sdb..sysjobswherename='数据处置')

  EXECUTEmsdb.dbo.sp_delete_job@job_name='数据处置'

  execmsdb..sp_add_job@job_name='数据处置'

  --建立功课步调

  declare@sqlvarchar(800),@dbnamevarchar(250)

  select@sql='execp_synchro'--数据处置的号令

  ,@dbname=db_name()--实行数据处置的数据库名

  execmsdb..sp_add_jobstep@job_name='数据处置',

  @step_name='数据同步',

  @subsystem='TSQL',

  @database_name=@dbname,

  @co妹妹and=@sql,

  @retry_attempts=5,--重试次数

  @retry_interval=5--重试隔断

  --建立调剂

  EXECmsdb..sp_add_jobschedule@job_name='数据处置',

  @name='时间放置',

  @freq_type=4,--天天

  @freq_interval=1,--天天实行一次

  @active_start_time=00000--0点实行

  go

如没特殊注明,文章均为中技互联原创,转载请注明来自www.zjcoo.com
上一篇:web服务器安全设置配置-超全攻略,超详细~ 下一篇:已经是最后一篇了
相关新闻

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 备11003429号

  • qq客服
  • 公众号
  • 手机版
  • 新浪微博