一台服务器上sql server 2008的2个数据库如何保持数据同步,要怎么配置?

解决方案 »

  1.   

    应该和2005差不多吧.参考:
    SQL SERVER 2005 同步复制技术以下实现复制步骤(以快照复制为例) 运行平台SQL SERVER 2005 一、准备工作: 1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。 2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例 3.在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文件夹名为SqlCopy 4.设置SQL 代理(发布服务器和订阅服务器均设置)本篇文章发表于www.xker.com(小新技术网) 打开服务(控制面板---管理工具---服务) ---右击SQLSERVER AGENT---属性---登录---选择“此帐户“ ---输入或选择第一步中创建的WINDOWS 用户 ---“密码“中输入该用户密码 5.设置SQL SERVER 身份验证,解决连接时的权限问题(发布、订阅服务器均设置) 步骤为:对象资源管理器----右击SQL实例-----属性----安全性----服务器身份验证------选“SQL Server和WINDOWS“,然后点确定 6.开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。 7.在SQL Server中创建步骤1中对应的系统用户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。 8.以系统超级用户sa登陆SQL Server建立数据库和表。 9.发布服务器和订阅服务器互相注册 步骤如下:视图----单击以注册服务器----右键数据库引擎----新建服务器注册-----填写要注册的远程服务器名称------身份验证选“SQL Server验证“-----用户名(sa) 密码------创建组(也可不建)-----完成。 10.对于只能用IP,不能用计算机名的,为其注册服务器别名 二、开始: 发布服务器配置(在发布服务器上配置发布和订阅) 1. 选择 复制 节点 2. 右键本地发布 ----下一步---------系统弹出对话框看提示----直到“指定快照文件夹“ ----在“快照文件夹“中输入准备工作中创建的目录(指向步骤3所建的共享文件夹)------选择发布数据库-------选择发布类型-------选择订阅服务器类型-------选择要发布的对象------设置快照代理-------填写发布名称。本篇文章发表于www.xker.com(小新技术网) 3. 右键本地订阅--------选择发布服务器-------选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之 选择请求订阅)-------填加订阅服务器--------选择代理计划(一般选择连续运行)---------其余选择默认项。 至此, SQL SERVER 2005 同步复制就完成了。使用复制技术,用户可以将一份客户端的数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性,就无需编程实现客户端和服务器端数据同步了!大大提高了工作效率! 
      

  2.   

    ---触发器同步/*
    作者:邹建
    *//*--同步两个数据库的示例有数据
    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)
    go
    --然后创建一个作业定时调用上面的同步处理存储过程就行了企业管理器
    --管理
    --SQL   Server代理
    --右键作业
    --新建作业
    -- "常规 "项中输入作业名称
    -- "步骤 "项
    --新建
    -- "步骤名 "中输入步骤名
    -- "类型 "中选择 "Transact-SQL   脚本(TSQL) "
    -- "数据库 "选择执行命令的数据库
    -- "命令 "中输入要执行的语句:   exec   p_process  
    --确定
    -- "调度 "项
    --新建调度
    -- "名称 "中输入调度名称
    -- "调度类型 "中选择你的作业执行安排
    --如果选择 "反复出现 "
    --点 "更改 "来设置你的时间安排
    然后将SQL   Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
    我的电脑--控制面板--管理工具--服务--右键   SQLSERVERAGENT--属性--启动类型--选择 "自动启动 "--确定.
      

  3.   

    何实现两个数据库的同步利用数据库复制技术   实现数据同步更新复制的概念
    复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。SQL复制的基本元素包括
    出版服务器、订阅服务器、分发服务器、出版物、文章SQL复制的工作原理
    SQL   SERVER   主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器SQL   SERVER复制技术类型,三种复制技术,分别是:
    1、快照复制(呆会我们就使用这个)
    2、事务复制
    3、合并复制只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。
    第一先来配置出版服务器
    (1)选中指定[服务器]节点
    (2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令
    (3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
    (4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)第二创建出版物
    (1)选中指定的服务器
    (2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框
    (3)选择要创建出版物的数据库,然后单击[创建发布]
    (4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)  
    (5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如   ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行 "SQL   SERVER   2000 "的数据库服务器
    (6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表
    (7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。第三设计订阅
    (1)选中指定的订阅服务器
    (2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
    (3)按照单击[下一步]操作直到系统会提示检查SQL   SERVER代理服务的运行状态,执行复制操作的前提条件是SQL   SERVER代理服务必须已经启动。
    (4)单击[完成]。完成订阅操作。
    完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?
    这里可以通过这种方法来快速看是否成功。
    展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度
    把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。
    接下来就是判断复制是否成功了打
    开C:\Program   Files\Microsoft   SQL   Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面
    看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
    要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表
    /*****************   常见问题:权限问题    启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
    你用的账号没有读取\\ServerA\D$\Program   Files\Microsoft   SQL   Server\MSSQL\repldata\unc\这个目录下的文件的权限。
              启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
    ----^^^^^^^^^^^^^^^在控制面板--> 管理--> 服务--> sqlagent--> 属性里的那个启动用户
      

  4.   

    SQL SERVER 2005 同步复制技术以下实现复制步骤(以快照复制为例) 运行平台SQL SERVER 2005 一、准备工作: 1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。 2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例 3.在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文件夹名为SqlCopy 4.设置SQL 代理(发布服务器和订阅服务器均设置)本篇文章发表于www.xker.com(小新技术网) 打开服务(控制面板---管理工具---服务) ---右击SQLSERVER AGENT---属性---登录---选择“此帐户“ ---输入或选择第一步中创建的WINDOWS 用户 ---“密码“中输入该用户密码 5.设置SQL SERVER 身份验证,解决连接时的权限问题(发布、订阅服务器均设置) 步骤为:对象资源管理器----右击SQL实例-----属性----安全性----服务器身份验证------选“SQL Server和WINDOWS“,然后点确定 6.开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。 7.在SQL Server中创建步骤1中对应的系统用户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。 8.以系统超级用户sa登陆SQL Server建立数据库和表。 9.发布服务器和订阅服务器互相注册 步骤如下:视图----单击以注册服务器----右键数据库引擎----新建服务器注册-----填写要注册的远程服务器名称------身份验证选“SQL Server验证“-----用户名(sa) 密码------创建组(也可不建)-----完成。 10.对于只能用IP,不能用计算机名的,为其注册服务器别名 二、开始: 发布服务器配置(在发布服务器上配置发布和订阅) 1. 选择 复制 节点 2. 右键本地发布 ----下一步---------系统弹出对话框看提示----直到“指定快照文件夹“ ----在“快照文件夹“中输入准备工作中创建的目录(指向步骤3所建的共享文件夹)------选择发布数据库-------选择发布类型-------选择订阅服务器类型-------选择要发布的对象------设置快照代理-------填写发布名称。本篇文章发表于www.xker.com(小新技术网) 3. 右键本地订阅--------选择发布服务器-------选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之 选择请求订阅)-------填加订阅服务器--------选择代理计划(一般选择连续运行)---------其余选择默认项。 至此, SQL SERVER 2005 同步复制就完成了。使用复制技术,用户可以将一份客户端的数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性,就无需编程实现客户端和服务器端数据同步了!大大提高了工作效率! 
      

  5.   

    二、开始: 发布服务器配置(在发布服务器上配置发布和订阅) 1. 选择 复制 节点 2. 右键本地发布 ----下一步---------系统弹出对话框看提示----直到“指定快照文件夹“
    我在sql2008没找到“复制”这个节点,新手,不好意思!