zoukankan      html  css  js  c++  java
  • 记一次数据库同步经历(sql server 2008)

            

    前阵子搞了下数据库同步,大概意思就是服务器上有一个数据库,与本地数据库进行同步,服务器上的数据库有什么改变,可以同步到本地数据库中。做之前百度了下,流程分以下三步,

    第一步服务器上的数据库进行发布 

    第二步本地数据库进行订阅

    第三步把冰箱门关上 

    看起来很简单,实际上远不是这么一回事,把哥都弄得上火了。

    首先第一天,开始弄了,结果打开sql server 2008一看,死活没找到发布和订阅功能,复制一项里面空空如也,吊毛没有。看来是没装完整,没办法,只能卸了重装,卸过sql的都知道sql有多难卸,还要清除注册表什么的,搞了半天没搞好,一气之下,重装系统。

    搞了半天终于装好了,首先在服务器端对指定数据库进行发布,具体步骤就不讲了,网上多得是,注意的是选择发布方式时要选择事务发布,这种发布方式可以实现数据的及时更新,比如说服务器端数据有更改时,会及时同步到本地端数据库,而快照发布并不能实现这一功能,因为这种发布方式原理是将数据库转成快照,然后发布的是快照,适用于数据稳定,几乎不会更改的情况下,若是要同步更改过的数据,那就得重新生成快照了。所以一般选择事务发步,其他不会有啥问题。

    发布成功后,本地端即可进行订阅了,新建订阅的时候,若出现以下提示

     

    这时候首先在sql中执行 select @@servername ,将得到的结果与计算机名称进行比较,你会发现两者是不一样的。呵呵,一样就见鬼了。出现这种情况一般是改过计算机名称,

    接下来执行以下语句:

    sp_dropserver 'old_server_name' // old_server_name就是上面执行select @@servername的    结果

    go sp_addserver 'current_computer_name','local'  //current_computer_name就是当前PC名称

    修改完后,重启SQL SERVER服务。之后按照网上流程一步一步订阅即可,订阅成功后,可以测试一下 ,在服务器端改个数据,然后看下本地啊有同步,一看,果然没同步!!!继续找原因吧....

    登录服务器端 ,查看订阅状态,显示错误:进程无法连接到 subscriber xxx-xxxxxx;网上百度了一大堆答案,有一个给了我提示。计算机名称中不能有特殊字符,比如 ’/’ , ’-’之类的,OK,修改计算机名称后,重新来一遍,大功告成!!!!!!!!!!

  • 相关阅读:
    开源权限框架shiro 入门
    Struts1.2入门笔记
    memcache概述
    教你如何将中文转换成全拼
    WPF第一章(XAML前台标记语言(Chapter02代码讲解))
    WPF第一章(XAML前台标记语言)
    WPF简介
    Activity以singleTask模式启动,intent传值的解决办法
    linux下查看文件编码以及编码转换
    Fedora 17字体美化
  • 原文地址:https://www.cnblogs.com/ForStudyAlways/p/5166519.html
Copyright © 2011-2022 走看看