收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章数据库开发MS-SQL
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |
SQL Server 同步复制测试
[ 作者:佚名    转贴自:网络转载    阅读次数:25    更新时间:2007-8-20 12:36:00   录入:刘光勇 ]        
    

1.     测试环境:

操作系统 windows  Server 2003 sp1  ,两台,独立系统,不在一个信任域内(如果在同一信任域,权限操作就更简单了)。

数据库:SQL Server 2000 SP4 企业版

2.     条件准备:

1、安装好两台windows 2003 server 和Sql server 2000企业版的服务器。

2、在两台windows 2003服务器添加windows 系统用户SqlCopy ,密码相同,属于administrators 组。

3、在两台服务器的hosts文件中相互添加两条记录(参考“失败可能的问题”部分)。

4、服务器名称及及相关配置

Windows 主机名

Sql server 建库

服务类型

Boco-server

Test数据库(空)

订阅服务器

Boco2006

Test数据库(有数据)

发布服务器

5、在SQL server 上建立两个sql 用户:“fuzhi”,权限system administrators,具备管理发布的数据库的所有的权限(参看以下步骤)。

3.     配置发布、订阅服务步骤:

1、进入服务器的服务内,找到“SQLSERVERAGENT的”服务,双击,在弹出的属性中,选“登录”在登录身份中输入在准备条件中建立的帐号和密码(本次用户名为“SqlCopy”),点“确定”,重启“SQLSERVERAGENT的”服务,使之生效。

2、打开SQL Server 2000的企业管理器,对两台SQL server进行注册,不要采用local 和ip地址来注册,采用windows 2003的主机名来注册。

3、将需要发布的服务器(主服务器),展开sql serer 树,如下图,右点右边的空白处,在弹出的菜单中点“配置发布、订阅服务器和发布”

 

4、启动向导,继续

 

5、提示如下图,“boco2006”服务器是发布服务器,点“下一步”。

6、出现如下图,按照缺省。

7、选择发布数据放置点,默认也可。

8、出现如下的提示,这说明我们在建立帐号的时候,需要管理员权限或者具有该目录的管理权限。

9、默认配置继续。

10、            发布配置完成。

4.     新建发布

1、在两台服务器上建立SQL Server 用户,用于相互登录,不用SQL Server的sa用户,主要是sa用户存在安全和其他用户使用的情况,造成修改了sa密码而复制无法顺利进行。

2、修改该用户的属性,设置该用户具有System Administrators 权限。

 

3、修改该用户数据库访问权限

4、在发布服务器上,展开目录树,点“发布内容”,在右边空白处有点,在弹出的菜单中,点“新建发布”。

5、选择要发布的数据库,这里是“test”。

 

6、选择“合并发布”,继续,这样主要是在备用数据库启用主数据库的时候,主数据成为备用数据库,系统正常使用。

7、缺省继续即可。

8、选择要发布的内容,选择“全部发布”。

9、“项目问题”中,唯一标识中,提示如果不带列表的语句的Insert可能会失败,即类似“Insert  table values( a,’b’)”,会失败,“Insert  table (aa,bb) values( a,’b’)”成功。

10、            缺省继续即可。

 

11、            剩下步骤缺省继续即可。

 

12、            在配置好的发布属性中,选择“订阅”,点“强制新建【P】”。

 

 

13、            选择订阅服务,这里订阅服务器为“BOCO-SERVER”

 

14、            数据,默认就可。

 
15、            默认配置,继续即可,完成及订阅完毕,没有必要在订阅服务器上配置订阅,因为订阅已经在发布服务器上强制。

5.     完成订阅

1、进行测试,在准备阶段,已经在订阅服务器上建立了test数据库,在没有复制同步是,可以看到“boco-server”服务器上没有user1 表。

2、同步后,两个数据库一样。

3、平时可以查看相关的日志,发布服务器上,展开发布数据库的树“代理服务器”->“合并代理程序”。

6.     失败可能的问题

1、在同步过程中,出现“远程服务器不是内容订阅服务器”的问题,该问题有可能两个原因引起。

A、   hosts 文件问题,在准备工作中,hosts文件中配置的IP地址和主机名,但是如果 SQL Server的实例名成为类似  “wwwserver\remote那么在 hosts文件中 的格式为

 

192.168.1.2                 wwwserver\remote    #注意中间的“\”

 

然后在企业管理中以“wwwserver\remote”重新注册远程的服务器,重新配置复制即可。

 

B、   修改了机器名等出现问题,可以按照以下的步骤解决。
   
       在查询分析器里执行:
         use master
         select srvid,srvname,datasource from sysservers   
          如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改(如果 本机的srvid必须是“0,否则也必须执行如下脚本:
         ----------------------以下可以直接粘贴到 查询分析器 中--------------------------
         USE master
        GO
        -- 设置两个变量
        DECLARE @serverproperty_servername  varchar(100),  @servername    varchar(100)
        -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 返回运行 Microsoft SQL Server 的本地服务器名称
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 显示获取的这两个参数
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
        --删除错误的服务器名
        EXEC sp_dropserver @server=@servername
        --添加正确的服务器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
        ---------------------到此结束------------------------------------
       修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效
该问题还可参考:
http://support.microsoft.com/kb/321822/
http://support.microsoft.com/kb/217395/EN-US/
【备注】本文经测试后,已经移植到生产环境中,效果良好!
文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“SQL Server 同步复制测试”版权归文章所有者,转载请注明出处!
 ·上一篇文章:掌握SQL中几个值得注意的特殊符号      ·下一篇文章:Microsoft SQL Server SA弱口令攻防
相关文章
·运用LINQ轻松清除SQL注入式攻击[107]
·SQL Server自动编号字段的数据恢复[44]
·SQL语句中INSERT语句的另一种写法[63]
·学习SQL应知道的动态SQL语句基本语法[96]
·SQL Anywhere Studio的主要特点及组件[40]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号