当前位置: 代码迷 >> Sql Server >> 求解决方案,sql2000企业版,小弟我只有一个远程公网ip地址,本地ip是动态变化的(adsl+猫),可以实现同步复制么
  详细解决方案

求解决方案,sql2000企业版,小弟我只有一个远程公网ip地址,本地ip是动态变化的(adsl+猫),可以实现同步复制么

热度:234   发布时间:2016-04-24 11:02:23.0
求解决方案,sql2000企业版,我只有一个远程公网ip地址,本地ip是动态变化的(adsl+猫),可以实现同步复制么?
如题,sql2000企业版,我只有一个远程公网ip地址,本地ip是动态变化的(adsl+猫),可以实现同步复制么?
我想本地作发布服务器,远程作订阅服务器,实现本地到远程的同步复制,sql2000企业版在这种环境下可以实现么?
--------------------------------------------------------------------------------------

如果不行,我想在程序里启动一个线程,不断地把本地变化的数据用sql命令更新远程数据库。
不知道这个方案可行么?需不需要用到数据库的事务概念呢?我想用ado来实现访问,vc++写的一个
进销存服装管理软件。
有没有这方面的程序代码呢?有的请给我一个,谢谢。
发到我的邮箱就可以了。hbc20@163.com
------解决方案--------------------
引用:
我可不可以考虑本地用花生壳来申请一个域名来实现呢?


这个可以试试的。
------解决方案--------------------
另外,你说的第二个方法,可以考虑用触发器+连接服务器来实现,大致的代码:
/*  
  作者:邹建  
  */  
   
  /*--同步两个数据库的示例  
   
  有数据  
  srv1.库名..author有字段:id,name,phone,  
  srv2.库名..author有字段:id,name,telphone,adress  
   
  要求:  
  srv1.库名..author增加记录则srv1.库名..author记录增加  
  srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新  
  --*/  
   
  --大致的处理步骤  
  --1.在   srv1   上创建连接服务器,以便在   srv1   中操作   srv2,实现同步  
  exec   sp_addlinkedserver     'srv2','','SQLOLEDB','srv2的sql实例名或ip'  
  exec   sp_addlinkedsrvlogin   'srv2','false',null,'用户名','密码'  
  go  
   
  --2.在   srv1   和   srv2   这两台电脑中,启动   msdtc(分布式事务处理服务),并且设置为自动启动  
  我的电脑--控制面板--管理工具--服务--右键   Distributed   Transaction   Coordinator--属性--启动--并将启动类型设置为自动启动  
  go  
   
   
  --3.实现同步处理  
   
  --a.在srv1..author中创建触发器,实现数据即时同步  
  --新增同步  
  create   trigger   tr_insert_author   on   author  
  for   insert  
  as  
  set   xact_abort   on  
  insert   srv2.库名.dbo.author(id,name,telphone)  
  select   id,name,telphone   from   inserted  
  go  
   
  --修改同步  
  create   trigger   tr_update_author   on   author  
  for   update  
  as  
  set   xact_abort   on  
  update   b   set   name=i.name,telphone=i.telphone  
  from   srv2.库名.dbo.author   b,inserted   i  
  where   b.id=i.id  
  go  
   
  --删除同步  
  create   trigger   tr_delete_author   on   author  
  for   delete  
  as  
  set   xact_abort   on  
  delete   b    
  from   srv2.库名.dbo.author   b,deleted   d  
  where   b.id=d.id  
  go  
   
   
   
  --3.实现同步处理的方法2,定时同步  
   
  --在srv1中创建如下的同步处理存储过程  
  create   proc   p_process    
  as  
  --更新修改过的数据  
  update   b   set   name=i.name,telphone=i.telphone  
  from   srv2.库名.dbo.author   b,author   i  
  where   b.id=i.id   and  
  (b.name<>i.name   or   b.telphone<>i.telphone)  
   
  --插入新增的数据  
  insert   srv2.库名.dbo.author(id,name,telphone)  
  select   id,name,telphone   from   author   i  
  where   not   exists(  
  select   *   from   srv2.库名.dbo.author   where   id=i.id)  
   
  --删除已经删除的数据(如果需要的话)  
  delete   b    
  from   srv2.库名.dbo.author   b  
  where   not   exists(  
  select   *   from   author   where   id=b.id)  
  相关解决方案