某用户有这样的需求,主数据库服务器为业务系统提供支持,24小时不间断工作,另加一台数据分析服务器,做离线数据分析,需要经常性地将主数据库的数据同步到离线分析数据库。数据库为SQL Server 2000。
 
这是一个比较典型的需求。解决方案也比较简单。在两台主机之间配置数据同步,然后在离线数据分析服务器上定期做快照,通过快照启动离线分析数据库。
 
在两台主机上安装Storage Foundation+Volume Replicator,然后配置卷复制。
然后在离线分析主机上定期执行下述脚本(我做实验时15分钟执行一次,实际环境中通常不需要这么高频率的数据同步。已经连续一天,目前一切正常。)
 
@echo;
@date /T    
@time /T

osql -E -S server2\inst1 -i detach.txt

vxassist -g vg1 unassign \Device\HarddiskDmVolumes\vg1\SnapVolume01
vxassist -g vg1 unassign \Device\HarddiskDmVolumes\vg1\SnapVolume02

vxrvg -g vg1 -f snapback vg2
vxrvg -g vg1 -f snapshot vg2

ping 127.0.0.1 -n 100 > nul

vxassist -g vg1 assign \Device\HarddiskDmVolumes\vg1\SnapVolume02 DriveLetter=M
vxassist -g vg1 assign \Device\HarddiskDmVolumes\vg1\SnapVolume01 DriveLetter=N

osql -E -S server2\inst1 -i attach.txt

@echo;
@date /T    
@time /T
@echo;

@echo --------------END--------------
 
其中的ping命令用于延时,attach和detach文件中放的是SQL语句,用于挂接和卸载数据库。