日期:2014-05-17  浏览次数:20515 次

Server2005数据库复制冲突解决方案
大体结构如下:

SQLServer1(发布服务器)  <---数据复制同步---->SQLServer1(订阅服务器)
  |                                               |
  |                                               |
业务服务器1                                   业务服务器2

两个相同结构之间的数据库可以采用SQLServer2005的基于事务日志的复制来实现热备和负载均衡,但是我有一个问题想请教:两个数据库同一个表的同一条记录被不同服务器同时修改会造成冲突,SQLServer会以发布服务器为准进行冲突解决,但是这样由于订阅服务器的更改会回滚会造成业务数据不是想要得到的结果,想问下各位一般怎么来实现双机热备和负载均衡,请提供大致的思路,谢谢!
------解决方案--------------------
哇!好高深啊!

帮顶,等大牛!


两个数据库同一个表的同一条记录被不同服务器同时修改


------解决方案--------------------
两个数据库同一个表的同一条记录被不同服务器同时修改会造成冲突?

这种事情出现不了的,如果出现了,SQL SERVER早就退出江湖了。

至于双机热备份可参考如下的内容:
双机热备份安装文档
(Ver 1.1 2002.11.26)
下面的文档以IBM Netfinity 7600/xSeries 250为例!
说明如何安装SQL 群集
本方案我已经在4家医院使用,是本人在总结了多次经验教训后写出来的

1. 从IBM下载,具体的地址参阅IBM手册。Server Raid Firmware软件,升级BIOS,具体升级方法参考IBM升级文档
2. 制作驱动程序
在其它的机器中,插入Server Guide x.x.x System Upates And Applications光盘,next->next->选择IBM Netfinity 7600/xSeries 250 System Diskettes ->next->选择Advanced System Management Device Driver Dsikette 和IBM ActivePCI Software for Microsoft windows 2000->Next->Next->插入空的软盘,系统开始自动制作驱动程序盘,共2张。
插入ServerRaid x.xx Support CD,将光盘中Diskettes/tools/disk4w32.exe和Images/dd.img 文件拷贝到硬盘中,然后运行 dsk4w32 dd.img a: 将文件释放到一张新的软盘中。
3. 在nt1,nt2上安装win2000 , 切记必须去掉IIS,和群集服务
设置IP地址
NT1:网卡1:IP 192.168.0.2,mask:255.255.255.0,Dns1:192.168.0.2,Dns2:192.168.0.3
网卡2: IP 10.0.1.1 ,mask: 255.0.0.0, Dns1:10.0.1.1,Dns2:10.0.1.2
Nt2:网卡1:IP 192.168.0.3,mask:255.255.255.0,Dns1:192.168.0.3,Dns2:192.168.0.2
网卡2:IP 10.0.1.2 mask:255.0.0.0 Dns1:10.0.1.2,Dns2:10.0.1.1
安装后需要安装必要的驱动程序
右击我得电脑->属性->硬件->设备管理器->可以看到2个未知的设备,先卸栽第一个未知设备,然后右击计算机名,选择扫描硬件驱动,插入制作好的Advanced System Managerment软盘,安装驱动
然后卸栽第二个未知设备,同样的方法扫描驱动,然后插入Active PCI Device软盘
安装后,必须重新启动计算机
最后卸栽第三个未知设备,同样地方法扫描驱动,然后插入 ServeRaid 驱动软盘或光盘
注意:如果硬盘上有东西,必须将所有的分区全部删除,然后必须重新启动!!!
4. 重新启动 NT2 并放入SeveRaid 光盘
系统会首先升级Bios 和 Firmware ,升级后重新启动,然后自动进入ServeRaid Manager
在controller1,在Arrays 右击选择Create Arrays->Express Configuration for controller1->Next->选择Raid level 为1,(不要使用1E或5) 具体的选择和磁盘的数量有关,注意不可以选择Raid Levl 5,一般2个为1,多于2个用1+0,以4个为例,首先将2个磁盘设为1个组,做成Raid0,然后再将另外两个磁盘设为1个组,也做成Raid0,最后将这个磁盘做成Raid1
重新启动后
右击Controller1->选择Clustering Actions-Configure for Clustering,改Controller name=Node2,Partnet name=Node1,channel1=6

右击controller1->选change strip-unit size 为16KB->选择YES
单击窗口右上方的差号,选择Reboot
重新启