袁晋武
(河南工程学院网络管理中心河南郑州451191)
中图分类号:TP3文献标识码:A文章编号:1673-0992(2011)05-0000-01摘要:本文详细介绍了在镜像服务器之间,利用数据库复制技术实现数据同步更新与备份,来满足企业单一服务器访问瓶颈和网站数据库安全的问题。
关键词:MSSQLServer2000;数据库;同步;备份;镜像服务器
一、引言
现在的网站随着访问量的增加,单一服务器无法承担巨大的访问量,同时要解决电信、网通等商业网络及和CERNET教育网之间互访的瓶颈问题,最方便快捷的方式就是建立镜像网站。这样即可以解决线路问题,又可以解决访问量问题。这就要提到网站两台或者多台镜像服务器之间的文件和数据库之间根据实时的变化,进行同步和备份的问题。
网站数据基本分为两类:一类是文件如HTML、ASP、PHP等网页文件,以及JPG、RAR、RMVB、AVI等可下载文件。要实现他们的同步很简单用FTP同步软件就可以了。一类是数据库数据文件,比如MySQL、SQLServer2000等等。镜像服务器数据库同步和备份不但可以实现网站中两台或者多台服务器之间数据库实时的变化,满足不通网络用户的访问同一资源的需求;而且可以在镜像服务器数据库在因管理制度不完善、系统管理人员的意外操作、破坏性病毒的攻击、黑客攻击、自然灾害等原因引起系统故障时,可以利用其他镜像服务器备份的数据数据,及时采取有效的拯救措施。本文将着重以MicroSoftSQLServer2000数据库为例,利用数据库复制技术实现数据同步更新与备份,来满足企业单一服务器访问瓶颈和网站数据库安全的问题。
二、备份简介
简单来说,复制数据是最简单的备份方式。但对于数据库来说,除了用户数据需要复制备份外,还应该包括一些重要的数据库组建的复制备份,比如控制文件、速据文件等。在发生数据丢失或应用程序错误时,可以利用备份来重新建立应用程序所需的数据与环境。备份可以分为“物理备份”与“逻辑备份”两种类型。
(一)物理备份
物理备份是指数据库文件从一处复制到另一处,实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,需要进行备份的数据库包括数据文件、归档重做日志以及控制文件等。
(二)逻辑备份
逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。主要利用export等工具执行SQL语句的方式将数据库读取出来,然后再写入到一个二进制文件中。在需要恢复的时候,可以利用import等工具从这个二进制文件中读取数据,并通过执行SQL语句的方式将它们写入到数据库中。
(三)数据库的备份类型
在SDSQLServer2000中备份类型包括四种:
①完全备份:对数据库的所有对象进行备份;
②差异备份:对前一个完全备份后的改动部分进行备份;差异备份只能在执行了完全备份后才可选用。
③事务日志备份:对数据库的事务日志的备份;
④文件/文件组备份:当数据库非常巨大时选用该备份。
三、备份系统的设计原理
使用了一个重要的类SQLDMO(SQLDistributedManagementObjects,SQL分布式管理对象)。SQLDMO是SQLServer2000中的SQLServer企业管理器的应用程序接口,因此可以实现远程设备备份和恢复数据库的功能。
系统工作流程为:当系统启动时,首先遍历搜索系统,要遍历搜索网内的所有SQLServer服务器,把得到的计算机名和IP地址填充到主窗体的相应下拉框中,然后由用户选择要操作的数据库服务器,填写完相应的内容后,再由用户选择相应的数据库操作。如果是备份数据库,系统首先要验证用户输入的数据库服务器的用户名和密码是否正确,是否具有操作数据库的权限,验证通过后,系统将提示用户备份后的数据库存储在哪里,备份数据库可以存储在本机上,也可以存储在网络中的其他计算机上,选择好存储位置,系统就把备份的数据库存放在指定的地方。
具体代码实现
数据库的备份代码:
publicboolBackUPDB(stringstrDbName,string,strFileName)
{
SQLDMO.SQLServersvr=newSQLDMO.SQLServerClass();
try
{
svr.Connect(ServerName,UserName,Password);
SQLDMO.Backupbak=newSQLDMO.BackupClass();
bak.Action=();
bak.Initialize=true;
bak.Files=strFileName;
bak.Database=strDbName;
bak.SQLBackup(svr);
returntrue;
}
catch(Exceptionerr)
{
throw(newException(“备份数据库失败”+err.Message));
}
finally
{
svr.DisConnect();
}
}
四、数据同步更新实现
(一)数据库复制
数据库复制是将一组数据从一个数据源拷贝到多个数据目的点的技术,是将一组数据保存到多个存储点上的有效方式。使用复制技术,用户可以将一组数据同时发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这组数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
(二)SQL复制的基本元素
包括出版服务器、订阅服务器、分发服务器、出版物、文章等等。
(三)SQL复制的工作原理
SQLServer主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。
(四)SQLServer复制技术类型
SQLServer提供了三种复制技术,分别是:
1.快照复制
2.事务复制
3.合并复制。
(五)复制的实现步骤
第一步:配置出版服务器
1.选择指定的[服务器]节点;
2.选择[工具]—>[复制]—>[发布、订阅服务器和分发]命令;
3.系统弹出一个对话框点[下一步]然后根据提示一直操作到完成;
4.当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)。
第二步:创建出版物
1.选择指定服务器;
2.选择[工具]—>[复制]—>[创建和管理发布],系统弹出一个对话框;
3.选择要创建出版物的数据库,然后单击[创建发布];
4.在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是SQLServer复制的三个类型。我们现在选第一个也就是默认的“快照发布”;
5.单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQLServer2000"的数据库服务器;
6.单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表;
7.然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
第三步:设计订阅
1.选择指定的订阅服务器;
2.选择[工具]—>[复制]—>[请求订阅];
3.按照单击[下一步]操作直到系统会提示检查SQLServer代理服务的运行状态,执行SQLServer复制操作的前提条件是SQLServer代理服务必须已经启动;
4.单击[完成]。完成订阅操作。
完成以上配置后,复制备份也就配置成功了。
五、结束语
对于多数普通高等院校,同时拥有教育网、网通和电信网络的现状而言,对外信息发布受到各网络之间互访的瓶颈问题,以至于高校信息发布在数据量不大的情况下,依然很慢。访问速度最方便快捷的方式就是建立镜像网站。这样即可以解决线路问题,又可以解决访问量问题。本文通过对网站两台或者多台镜像服务器之间的文件和数据库,根据实时的变化,进行同步和备份,很好的解决了上述问题。
参考文献:
[1]邵莉1李清茂2SQL数据库备份恢复策略在教学管理系统中的应用[J].阿坝师范高等专科学校学报2007年;
[2]于泗波1张雪英2SQLServer2000数据库备份与恢复系统的设计与实现[J].科技情报开发与经济2008年;
[3]郑阿奇SQLServer2000数据库实时备份[J].计算机工程与设计2006年;
[4]赵震数据库备份和恢复探究[J].福建电脑2005年。