SqlServer2005 数据库同步配置图文详解

<1>软件准备条件  
机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器)   
机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器)

  一:【准备条件】

  <1>软件准备条件

  机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器)

  机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器)

  (可以用别的,不过订阅服务器版本不得高于发布服务器版本)

  <2>数据库复制准备条件

  1. 所有被同步的数据表尽量要用主键,如果没有主键也没有关系,SqlServer会提示为表自动生成主键,如图

  2. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。

  3. SQLSERVER必需启动代理服务,且代理服务必须以本地计算机的帐号运行。 不得使用IP地址以及别名进行注册,比如LOCAL, “.”以及LOCALHOST等。

  如果非同一网段或者远程服务器,或者只能用IP,不能用计算机名的,为对方注册服务器别名。将其对应关系加到本地系统网络配置文件中。文件的具体位置在C:\Windows\system32\drivers\etc\hosts

  配置方式: 用记事本打开hosts文件,在文件的最下方添加IP地址和主机名的对应关系。如图:

  4.SqlServer 必需启动代理服务,且代理服务必需以本地计算机的帐号运行。

  5.发布服务器和订阅服务器都要设置MSDTC ,允许网络访问控制面板--->管理工具--->组件服务--->计算机--->我的电脑(Win7继续找 -->Distributed Transaction Coordinator--->本地DTC),右键属性,找到MSDTC选项卡,点击安全设置,按如下设置即可

  )

  确定,重启MSDTC服务。

  二:准备工作的详细操作步骤

  1、在发布服务器上,新建一个共享目录,作为发布的快照文件的存放目录,为共享目录添加EveryOne的完全控制权限。

  2、确定发布服务器上用来发布的数据库和订阅服务器的用来订阅的数据库结构要保持一致,或者订阅服务器新建一个空数据库(不创建表)。

  3、将发布端和订阅端的数据库所有者均设置为sa。

  4、启动SQL代理(SQLSERVERAGENT)服务。

  5、开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。

  6、设置SQL SERVER 身份验证为混合验证SQL Server和WINDOWS(发布、订阅服务器均设置)

  7、发布服务器和订阅服务器互相注册

  步骤如下:视图---à单击已注册服务器---à右击 数据库引擎---à新建服务器注册----à填写要注册的远程服务器名称----à身份验证选“SQL Server验证“----à用户名(sa) 密码,对于只能用IP,不能用计算机名的,为其注册服务器别名,见上。

  准备工作完成,接下来我们进行发布和订阅的操作

  二、【发布和订阅】

  一:发布

  (1)首先我们在发布服务器上(winserver2003)打开SqlServer2005 Management Studio (企业版)。在“对象资源管理器”中找到复制节点,右键--->新建发布(注:如果你的SqlServer是express版本的话,是没有发布这一功能的,只有订阅功能!)

  (2)接下来选择要发布的数据库,下一步,选择“发布类型”,我这里选择“合并发布”

  (3)下一步,选择订阅服务器类型,选择“SqlServer2005”,下一步,选择发布项目,我们选择表、视图、存储过程等。

  (4)如果你的表没有主键,SqlServer会提示你,为没有主键的表自动添加主键。

  (5)接下来设置作业计划,为了方便看到测试效果,我们设置“每隔一分钟”执行一次作业。

  (6)设置快照代理安全性,连接到发布服务器时,用模拟进程即可。

  (7) 为发布起个名字,完成发布

  二:订阅

  接下来,我们配置订阅服务器。订阅服务器是winxp系统,SqlServer版本为SqlServer 2005 Manager Studio Express ,只支持订阅。

  (1)同发布,新建订阅

  (2)选择发布服务器,找到我们刚刚新建的发布“Test3Copy” ,下一步

  (3)选择运行代理的位置,根据需求选择是“推送”还是“请求”!

  (4)接下来同发布类似,这里就不赘述了,订阅执行成功,在订阅数据库和发布数据库的表中都会多出一个字段来,SqlServer自动生成的!标志订阅成功。

  三、【查看同步状态】

  查看同步状态,只能在发布服务器上查看。具体操作步骤:(下列图中的发布跟上面提到的不是同一个发布)

  (1)打开“复制”——>右键发布名称——>“启用复制监视器”

  (2)展开“我的发布服务器”——>发布服务器机器名称-——>发布名称。在右侧会看到订阅服务器的状态“正在同步”。右键,选择“属性”可以打开详细说明。

  (3)打开属性后,会弹出同步历史记录的对话框。这里有插入、更新、删除等操作的记录。

  当然这篇文章里还有许多细节可能说的不那么清楚,难免也会出现一些问题,我会在随后的下篇博客中写一下遇到的问题及解决方案。大家有什么问题,欢迎相互交流

(0)

相关推荐

  • SqlServer 2005/2008数据库被标记为“可疑”的解决办法

    问题背景: 日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server 2005数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为"可疑"(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结构及数据内容都还是存在的. 解决方法: 当数据库发生这种操作故障时,可以按如下

  • SQLServer 2005数据库连接字符串 连接sql2005必备资料

    连接字符串中常用的声明有: 服务器声明 Data Source.Server和Addr等. 数据库声明 Initial Catalog和DataBase等. 集成Windows账号的安全性声明 Integrated Security和Trusted_Connection等. 使用数据库账号的安全性声明 User ID和Password等. 对于访问数据库的账号来说,通常我们在一些参考资料上看到ADO.NET的字符串连接往往有如下写法: 复制代码 代码如下: string ConnStr = "s

  • SQLServer数据库从高版本降级到低版本实例详解

    SQLServer数据库从高版本降级到低版本实例详解 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接[分离/附加]或者[备份/还原]数据库,在不同版本之间存放.往往就会遇到版本不兼容的问题.前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错: 从运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不是跨度

  • 用sql脚本创建sqlserver数据库范例语句

    下面是创建一个sqlserver数据库的代码模板,加上一个创建表的模板.开发的时候可以拷贝过去直接改动一下就可以用了. 希望能帮上忙! 复制代码 代码如下: USE [master] GO IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'HkTemp') BEGIN DROP DATABASE HkTemp --如果数据库存在先删掉数据库 END GO CREATE DATABASE HkTemp ON PRIMARY --创建主数据库文件 (

  • SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法

    无法打开用户默认数据库,登录失败,其原因是登录帐户的默认数据库被删除. 解决办法是使用管理员帐户修改此登录帐户的默认数据库. 1.使用管理员帐号登入企业管理器,在"对象资源管理器"中,展开"安全性"--"登录名",右键该帐户点击"属性" 2.在"登录属性"的对话框中,第一个"常规"选项卡界面的右边更改默认的数据库. 如果出问题的就是你的管理员帐户,你无法登入企业管理器里修改,可以使用以下

  • SQLSERVER查询所有数据库名,表名,和字段名的语句

    1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name FROM SysColumns WHERE id=Object_Id('TableNa

  • 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)

    ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 打开ACCESS2007的数据库工具 方法一:使用ACCESS2007自带的数据库迁移工具 1.打开ACCESS2007的数据库迁移向导 2.点击SQLSERVER按钮,弹出升迁向导对话框 3.选择新建数据库 4.输入计算机名,我的本地计算机名字叫joe,因为SQLSERVER安装在本地,所以选择使用可信连接就可以了 数据库名称默认就可以了 5.选择所有表,移动到右边框 6.把表索引也一起升迁到SQLSE

  • oracle,mysql,SqlServer三种数据库的分页查询的实例

    MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如:select * from table WHERE - LIMIT 10; #返回前10行select * from table WHERE - LIMIT 0,10; #返回前

  • sqlserver、Mysql、Oracle三种数据库的优缺点总结

    一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势.从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要.作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序.为企业赢得核心竞争优势打开了胜利之门.作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServ

  • c#连接sqlserver数据库、插入数据、从数据库获取时间示例

    c#连接sqlserver.插入数据.从数据库获取时间 复制代码 代码如下: using System;using System.Data.SqlClient; namespace Test{    //连接数据库    public class Connection    {        private static string connectionString =            "Server = 192.168.1.222;" +            "D

  • SQLServer 数据库变成单个用户后无法访问问题的解决方法

    解决办法是: 运行下面SQL 复制代码 代码如下: USE master;  GO  DECLARE @SQL VARCHAR(MAX);  SET @SQL=''  SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)  FROM master..sysprocesses  WHERE dbid=DB_ID('数据库名'); EXEC(@SQL); ALTER DATABASE 数据库名 SET MULTI_USER;

  • sqlserver数据库导入数据操作详解(图)

    Microsoft SQL Server Management Studio是SQL SERVER的客户端工具,相信大家都知道.我不知道大伙使用导入数据的情况怎么样,反正我最近是遇到过.主要是因为没有远程数据库服务器的权限,而需要测试新修改的内容对旧数据的冲突.因为流程改变,免不了需要修改数据来适应新的变化.所以需要在测试环境里面去模拟真实环境的数据.当时还搞笑,直接是粘贴到EXCEL,然后再复制到数据库.对于一般来说,这种方式也可以,但是对于一些特殊的字符,如果直接粘贴到EXCEL里面的话,并

随机推荐