Sqlserver2005 peer-to-peer事务复制(对等拓扑复制)的Bug及其配置简述
Sqlserver 2009-08-01 17:32:22 阅读55 评论0 字号:大中小 订阅
主要就是几点,其他的按照向导来就行了。
所有参与的服务器都要配置了分发。
如果使用WINDOWS账户,每台机器都有一个同密码的相同的用户名,并且使其对分发目录,分发数据库还有进行订阅的数据库有相应的权限(与其他类型的订阅所需权限相同)。
数据库中的项目只能处在一个对等订阅中,不能被多个对等订阅共享。
步骤是先建一个普通的事务发布,然后在它的属性里的订阅选项里将对等订阅设为true,出来后再右键配置对等订阅。
在配置的时候,主要就是一个日志读取代理的配置,每个服务器配刚才配好的自己的那个本机的账户即可名字的格式必须为(server/user)。
在分发代理安全性的配置中,经过我的测试,我觉得这里sqlserver2005存在着一个严重的BUG,因为同样的配置模式方法,我在sqlserver2008中是正确的,最后可以无任何错误的建立起多点的对等拓扑复制,而在sqlserver2005中却会报错,而非常巧合的是,如果是用sqlserver2005在这里可以正确运行的一个配置方式(这种方式只适合两点的对等拓扑复制,而对多点的情况只能是所有参与对等复制的服务器全都在一个域里使用统一的domain/user的方式,如果不在一个域里只能使用微软不推荐的使用sqlserver代理运行账户的方式(这种方式我也没做测试),如果使用自定的windows账户方式将无法成功配置对等拓扑复制),在sqlserver2008里却会报同样的错误。具体的情况如下:
假设有三台服务器 server1,server2,server3,在配置分发代理安全的时候,正确的配置模式应该是
server1对应的配置是server1/abc(之前在各个服务器上设置的用来进行复制使用的windows账户名)
server2-----------------server2/abc
server3-----------------server3/abc
在对此进行说明之前,先看一段在sqlserver2005联机帮助中 如何配置对等事务复制这篇文章中关于分发代理安全性的一段话:
也就是说在server1的发布上为server2和server3分别建立一个订阅,而建立这两个订阅,并为其做分发的账户就应该是配置好的server1/abc,换句话说,这里配置的代理账户应该是为除server1以外的其他节点上的订阅进行分发服务的账户,对server2和server3是同理。
但在sqlserver2005中,这里的配置正好是一种相反的情况,我做了测试,如果是两点对等复制的话,在sqlserver2005里能够正常运行的配置方式是:
server1-----------------server2/abc
server2-----------------server1/abc
Sqlserver2005的意思等于是在server1这里配置的账户应该是对server1上的订阅数据库进行分发而使用的账户,也就是除了server1之外其他节点上的所有的分发代理使用的账户(server2/abc,server3/abc)。在两台服务器间,这个账户对应的当然只有server2上的abc,可以在配置对话框里输入server2/abc,运行没有问题,但是在多点对等复制里,比如举的server1,server2,server3这个例子里,server1的用户配置同时对应着server2/abc,server3/abc两个用户名,但配置对话框只能输入一个用户名和其相应的密码,所以这种情况你无法进行配置。
比如,如果在server1的配置里输入了server2/abc及其密码,到最后创建对等复制的时候,当运行到server3为server1创建订阅的时候,会报server2/abc不是有效的windows账户,同样,如果按sqlserver2008里的正确的方式来与配置,在server1那里配上server1/abc,当创建的时候,当运行到server2为server1或者server3为server1创建订阅的时候就会报server1/abc不是有效的windows账户。而在sqlserver2008里,如果在server1的配置里输入server2/abc或者server3/abc,同样在创建的时候会报server2/abc或server3/abc不是有效的windows账户。
所以我最后觉得在sqlserver2005里,这个分发代理安全性的配置这里是有bug的。
创建对等复制前的最后一步,看向导的说明很明确了,进行相应的选择配置就可以了。
对于那个BUG其实也有解决的办法,只是麻烦点,也就是两点两点的对进行相互的配置或者多运行几次这个对等拓扑复制向导,反正它报错停止之前创建的部分,还是保留的并不会回滚。
大概就是这样吧关于sqlserver2005的对等拓扑复制。
另外要说的一点是,我有以上情况的sqlserver2005是打了sp2补丁的。配置大概就是这样了。
所有参与的服务器都要配置了分发。
如果使用WINDOWS账户,每台机器都有一个同密码的相同的用户名,并且使其对分发目录,分发数据库还有进行订阅的数据库有相应的权限(与其他类型的订阅所需权限相同)。
数据库中的项目只能处在一个对等订阅中,不能被多个对等订阅共享。
步骤是先建一个普通的事务发布,然后在它的属性里的订阅选项里将对等订阅设为true,出来后再右键配置对等订阅。
在配置的时候,主要就是一个日志读取代理的配置,每个服务器配刚才配好的自己的那个本机的账户即可名字的格式必须为(server/user)。
在分发代理安全性的配置中,经过我的测试,我觉得这里sqlserver2005存在着一个严重的BUG,因为同样的配置模式方法,我在sqlserver2008中是正确的,最后可以无任何错误的建立起多点的对等拓扑复制,而在sqlserver2005中却会报错,而非常巧合的是,如果是用sqlserver2005在这里可以正确运行的一个配置方式(这种方式只适合两点的对等拓扑复制,而对多点的情况只能是所有参与对等复制的服务器全都在一个域里使用统一的domain/user的方式,如果不在一个域里只能使用微软不推荐的使用sqlserver代理运行账户的方式(这种方式我也没做测试),如果使用自定的windows账户方式将无法成功配置对等拓扑复制),在sqlserver2008里却会报同样的错误。具体的情况如下:
假设有三台服务器 server1,server2,server3,在配置分发代理安全的时候,正确的配置模式应该是
server1对应的配置是server1/abc(之前在各个服务器上设置的用来进行复制使用的windows账户名)
server2-----------------server2/abc
server3-----------------server3/abc
在对此进行说明之前,先看一段在sqlserver2005联机帮助中 如何配置对等事务复制这篇文章中关于分发代理安全性的一段话:
配置对等拓扑向导创建推送订阅(分发代理在分发服务器上运行),每个订阅都有一个独立的代理。在三节点拓扑中,每个节点都有其他两个节点的订阅,因此每台分发服务器上都会运行两个分发代理。
也就是说在server1的发布上为server2和server3分别建立一个订阅,而建立这两个订阅,并为其做分发的账户就应该是配置好的server1/abc,换句话说,这里配置的代理账户应该是为除server1以外的其他节点上的订阅进行分发服务的账户,对server2和server3是同理。
但在sqlserver2005中,这里的配置正好是一种相反的情况,我做了测试,如果是两点对等复制的话,在sqlserver2005里能够正常运行的配置方式是:
server1-----------------server2/abc
server2-----------------server1/abc
Sqlserver2005的意思等于是在server1这里配置的账户应该是对server1上的订阅数据库进行分发而使用的账户,也就是除了server1之外其他节点上的所有的分发代理使用的账户(server2/abc,server3/abc)。在两台服务器间,这个账户对应的当然只有server2上的abc,可以在配置对话框里输入server2/abc,运行没有问题,但是在多点对等复制里,比如举的server1,server2,server3这个例子里,server1的用户配置同时对应着server2/abc,server3/abc两个用户名,但配置对话框只能输入一个用户名和其相应的密码,所以这种情况你无法进行配置。
比如,如果在server1的配置里输入了server2/abc及其密码,到最后创建对等复制的时候,当运行到server3为server1创建订阅的时候,会报server2/abc不是有效的windows账户,同样,如果按sqlserver2008里的正确的方式来与配置,在server1那里配上server1/abc,当创建的时候,当运行到server2为server1或者server3为server1创建订阅的时候就会报server1/abc不是有效的windows账户。而在sqlserver2008里,如果在server1的配置里输入server2/abc或者server3/abc,同样在创建的时候会报server2/abc或server3/abc不是有效的windows账户。
所以我最后觉得在sqlserver2005里,这个分发代理安全性的配置这里是有bug的。
创建对等复制前的最后一步,看向导的说明很明确了,进行相应的选择配置就可以了。
对于那个BUG其实也有解决的办法,只是麻烦点,也就是两点两点的对进行相互的配置或者多运行几次这个对等拓扑复制向导,反正它报错停止之前创建的部分,还是保留的并不会回滚。
大概就是这样吧关于sqlserver2005的对等拓扑复制。
另外要说的一点是,我有以上情况的sqlserver2005是打了sp2补丁的。配置大概就是这样了。