名站网址导航为大家提供关于数据库教程相关的教程网站知识。
网站数据库复制就是由两台 站点服务器,主 站点服务器和备份站点服务器,主站点服务器修改后,备份站点服务器自动修改,在以前的文章中已经做了详细的说明,这里就不在重复,具体请参见SQLServer 2005 实现网站数据库同步备份 过程-结果-分析
网站数据库复制:,简单来说,网站数据库复制就是由两台站点服务器,主站点服务器和备份站点服务器,主站点服务器修改后,备份站点服务器自动修改。,复制的模式有两种:推送模式和请求模式,推送模式是主站点服务器修改后,自动发给备份站点服务器,请求模式是,备份站点服务器自动去请求,个人开始也比较重视去测试两个模式的差别,但是测试发现,其实两个模式差别不是很大,在,网站数据库发布类型有三种:快照发布,事务性发布,具有可更新订阅和事务性发布,合并发布,一般都会采用事务性发布,具体好处,就不说了,网上一大堆的,复制过程:,第一:点开网站数据库--复制---本地发布---新建发布,下面只提供需要注意的地方,其他的点击下一步即可,上面已经说了,推荐事物,一般只复制表即可,但是假如如果需要其他的,请自行考虑,快照,假如如果每天需要快照一次,那么可以点击下面的按钮,假如如果只快照一次的话,就没必要了,使用默认配置即可,这样不出意外就完成了一个发布站点服务器的配置,那么现在配置订阅站点服务器,可以在您自己机器上直接操作办法,第一:点开网站数据库--复制---本地发布---新建订阅--,推送模式和请求模式,假如如果您不想找麻烦,建议直接使用推送模式,重点说一下复制过程中出现的错误,①:因为主站点服务器和备用站点服务器必须在一个局域网内,而且不能用IP连接,必须用主机名连接,那么会出现使用主机名无法连接的情况,可能是因为修改过机器名,使站点服务器.sql和访问和机器名不一致,使用一下查新,查看是否一致,假如如果不一致,使用下面具体相关代码修改一下即可,select @@servername和 select serverproperty ('servername'),if serverproperty('servername') <> @@servername begin declare @server sysname set @server = @@server,②:假如如果您使用的是推送模式,那么最大的麻烦将会是读取不到快照,一般错误为:,由于出现操作办法系统错误 3,进程无法读取网站网站文件“D:\DBSYNC\unc\FLOORWEB_FLOORLINK2_TESTFLOOR\20081128174839\ufoCorpAccount_2.pr,这个原因是订阅站点服务器读取不到快照网站网站文件夹位置.可能的原因较多,最直接和简单的解决办法是:,将您的快照网站网站文件复制一份,复制到订阅站点服务器上F:\XX,修改一下 某个订阅属性-》快照位置-》“备用网站网站文件夹”,快照网站网站文件夹-》F:\XX,错误的原因:第一次复制时,订阅站点服务器需要到主站点服务器读取快照,进行同步,然后主站点服务器因为权限问题,无法读取这个快照,所以导致如上错误,将主站点服务器的快照复制到订阅站点服务器,第一次直接根据这个快照进行同步就可,测试的一些结果:仅供参考,1.1:假如如果在订阅站点服务器上修改数据(例如update或delete),这个时候主站点服务器操作办法后,会报错,直接会停止服务,1.2: 重新初始化订阅的时候,最好使用最新快照,不要使用当前快照,会死人的,因为他会从开始到结束的快照以后的操作办法全部执行一次,例如,您插入了1000w,删除了1000w,您使用当前快照,可以直接同步,1.3:在百万数据插入过程中,内存使用大约150-200mb左右,和平时本来就占用120mb左右的内存相比,可以直接忽视,1.4:速度方面,500w的数据插入,在最后400-500w的时间约为7分钟,插入100w的网站数据库量,同步大约需要8-10分钟
使用了网站数据库复制的人,首先担心的就是主站点服务器和备份站点服务器的性能消耗问题,本人也是对此十分担忧,查了半天,基本上没发现类似的测试说明,就自己测试了一下,下面为测试的结果,仅供参考
我采用的是网站数据库推送的复制模式,下面测试页是基于此模式
因为网站数据库复制主要是I/O操作办法,所以在此测试主要测试站点服务器的硬盘读写操作办法,此次测试主要监控的对象为
avg. disk queue length(下文简称为dql) 简单可以理解成磁盘数据吞吐量的外在体现。通俗的将就是曲线上随便取两个不同的点,高的一点说明正在的进行读写操作办法的量比较大,反之,比较小。
第一种情况:1秒钟写入一次数据,一次数据写入三个表,循环写入10000条
过程:关闭复制,单纯的写入,dql平均值最大值为:0.126
开启复制,同步性的写入 , dql平均值最大值为 :0.132
结论:鉴于这种比例,1秒钟一次是这种小网站数据库的写入,同步问题,咱们可以完全忽略了
第二种情况:忽略等待时间,一次数据写入三个表,死循环写入10000 次数据
过程 :关闭复制,单纯的写入,第一次测试:dql平均值最大值为:3.05-3.08 第二次测试:2.2-2.30
开启复制,同步性的写入 , dql平均值最大值为 :3.06-3.10 第二次测试: 2.2-2.34
结论:可以由于两次测试间隔时间比较长,机器的情况不一致,但是结果很明显,都是相差不大
第三钟情况:关闭复制,主站点服务器写入 10000 次数据 ,每次写三个表,然后开启站点服务器,主站点服务器的 dql基本没变化,因为是复制站点服务器写数据,和主站点服务器关联性不大
就上述情况来看,复制基本上不会影响主站点服务器的性能消耗,但是,咱们通过监控SQL Server Profiler 会发现,出现大量的复制监视器,这种复制监视器,会非常消耗站点服务器的性能,造成站点服务器缓慢,因为是推送模式,所以主站点服务器要时刻监控自己的变化情况,而造成性能消耗,如下图
如何解决这个问题呢?咱们首先会想到,减少主站点服务器的监视频率即可,打开复制监视器,
右键--》发布站点服务器属性设置,修改一下刷新速度,一般咱们可以接受的是范围是30-60秒的延迟
修改后,咱们在去SQL Server Profiler 查看,就会发现基本上消耗就会很少了
假如如果您的站点服务器复制模式为订阅模式,那么您去--代理配置网站网站文件---》分发代理--里面去修改您的订阅时间即可
作者: cnblogs 習 慣