SQL Server自动异地备份的研究与应用

时间:2022-10-15 04:58:00

SQL Server自动异地备份的研究与应用

摘要:数据库是前台应用的“心脏”,其中每一条记录凝结了工作人员的智慧和辛勤劳动,都是宝贵的财富。对其进行备份是有效防止软硬件损坏、人为操作错误等对数据库造成破坏的必备方法。该文详细介绍了通过在Sql Server2000的数据库维护计划的基础上经过脚本实现数据备份的具体步骤。

关键词:SqlServer;数据库;维护计划;备份

中图分类号:TP309.3文献标识码:A 文章编号:1009-3044(2009)33-9617-03

The Research and Application of Sqlserver Automatic Secondary Backup

WU Yan, ZHANG Dong

(Fujian Polytechnic of Information Technology, Fuzhou 350003, China)

Abstract: Database is the heart of foreground application, every record has the staff's wisdom and hard work., they are all valuable asset. Back-up the database is the really essential method of preventing damage to hardware and software, human operational errors and so on that destroys the database. This paper describes the concrete steps that after the script for data backup based on Sql Server2000 database maintenance plan.

Key words: SQL Server; database; maintenance plan; backup

Sql Server数据库是目前广泛使用的数据库。备份和保护数据是数据库维护的首要任务,SqlServer本身具有比较强大的备份功能,但出现灾难的原因往往是由于硬盘的损坏,所以有必要在异地(异机)多保留一份备份数据,以备不测。这就要求我们除sqlserver自带功能外,还要探索其他的方法实现SqlServer数据库自动的异地备份。

1 备份目标

我们具体研究实现目标包括:每天对数据库进行两个不同时刻的完全备份、保留最近1周的备份数据、备份数据实现异地(异机)存放。

每天对数据库进行两个不同时刻的完全备份;保留最近1周的备份数据;备份数据实现异地(异机)存放;对于目标的前两条,我是利用SQL Server 2000本身自带“数据库维护计划”来实现的;而最后一条我是通过手工编写脚本来实现的。

具体如下:“数据库维护计划”是SQL Server 2000能够实现自动备份调度,以及自动删除旧的数据备份,完全能够满足我我们备份要求。

2 实现步骤

2.1打开SQL Server“企业管理器”窗体

用鼠标单击任务栏上的“开始”按钮中的“程序(P)”菜单下的“Microsoft SQL Server”子菜单中的“企业管理器”菜单项,即可打开SQL Server 2000的“企业管理器”窗体。

2.2找到“数据库维护计划”功能

在“企业管理器”窗体中左侧的树型选项卡中,用鼠标单击“+”图标扩展开“控制台根目录”下的“Microsoft SQL Servers”,可以看到其下有一个“SQL Server组”;接着继续扩展开“SQL Server组”,此时可以看到其下出现了服务器的名称;再继续扩展开此服务器,可以看到其下列出了诸如“数据库”、“数据转换服务”等项目;最后单击“管理”项目,可以看到其下存在一个“数据库维护计划”(如图1)。

2.3创建“数据库维护计划”

鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。

步骤1:单击 “下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中选定文献系统数据库“tsgdb”。

步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。

在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。

本人没有使用其中的功能。

步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体,如图4所示。

在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。选中“检查数据库完整性[H]”复选框,因为有可能会修正一些错误,使备份的数据更有效。

步骤4:在“检查数据库完整性”窗体中的“下一步(N)”按钮,打开“指定数据库备份计划”窗体。因为图书馆开馆时间为8:00――12:00和14:00――21:00,所以我在“调度”中设为每天12:30开始备份和21:30开始备份,这样做,即提高了数据库备份的效率,又不会影响到文献系统的正常使用。

对数据库进行备份,则必须选定“作为维护计划的一部分来备份数据库[A]”复选框,指定存储备份文件的位置:磁盘。设定“调度”后单击“下一步(N)”按钮则显示“指定备份磁盘目录”窗体(如图6)。

在图6中,指定存储备份文件的目录备份文件扩展名,因为我要保存最近1周的备份,所以设置备份计划自动地删除早于1周的备份文件。设定后,单击“下一步(N)”按钮则显示“指定事务日志备份计划”窗体。

步骤5:指定“事务日志备份计划”的过程与步骤4的过程完全相同,只是在设定“调度”上稍有差别(因为我的要求是数据库每天备份一次,事务日志每1小时备份一次)。

步骤6:对事务日志的备份计划全部设定后,单击“下一步(N)”按钮则显示“要生成的报表”窗体。在此窗体中可以指定用于存放整个备份计划执行过程中的日志的目录。

步骤7:完成步骤6后,单击“下一步(N)”按钮则显示“维护计划历史纪录”窗体。

在此窗体中可以指定如何存储此维护计划的历史纪录(是存放在“本地服务器”上,还是在“远程服务器”上),而且通过指定表中的行数可以限定历史纪录的存储大小。

步骤8:完成步骤7后,单击“下一步(N)”按钮则显示“正在完成数据库维护计划向导”窗体(如图7)。

在此窗体中自定义一个“计划名”为“tsgdb备份”。

步骤9:完成步骤8后,单击“完成”按钮,则显示“维护计划已创建成功。”的提示框,再单击 “确定”按钮即成功地设定了文献系统数据库维护计划。

2.4 启动SQL Server 2000以便执行“作业”

完成第三步后,还需启动SQL Server 2000 Agent(),以便执行“数据库维护计划”作业。

与展开SQL Server 2000“数据库维护计划”的步骤一样,在“管理”项目中,可以发现存在一个“SQL Server ”。

2.5 检查结果

经过上述步骤后,文献系统数据库的备份计划就建立起来了。可以通过“资源管理器”来检查备份目录下是否存在相应地备份文件。

通过以上操作,已经实现了在服务器上保留最近一周的备份数据了,为了防止服务器本身硬件故障等情况对备份数据造成破坏,我又通过编写脚本实现了备份数据的异地(机)存放。具体如下:

3 编写脚本

新建文件名为cptsgdb.txt的文本文件,在其中编辑以下内容(如图8):

net use \\172.16.0.8\DB_bk PASSWD_for_tsg /user:tsg

REM start copy

cd C:\WINDOWS\system32

xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

说明:

172.16.0.8是数据库服务器,DB_bk为服务器上存放备份数据的目录,一定要先将其共享。

・ net use \\172.16.0.8\DB_bkPASSWD_for_tsg /user:tsg

以用户tsg访问DB_bk目录,PASSWD_for_tsg是用户tsg的密码。

・ REM start copy 此为注释行

・ cd C:\WINDOWS\system32 切换当前目录到system32

・ xcopy.exe \\172.16.0.8\tsg\DB_back\*.* g:\ /e/h/y/d

将服务器上的备份数据拷贝到本地g盘中。参数含义:

/e复制目录和子目录,包括空的。

/h也复制隐藏和系统文件。

/y禁止提示以确认改写一个。

/d只复制那些源时间 比目标时间新的文件。

编辑完成后保存文件,将文件后缀改为.bat,这样就生成了一个批处理文件,我们使用windows自带的“任务计划”来调度它,实现数据在两台计算机之间的自动定时copy。

4 结论

这样对数据库的异地备份的实现,这样我们就能有效防止软硬件损坏、人为操作错误等对数据库造成破坏,来保障数据内容。

参考文献:

[1] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2004:247-248.

[2] 张家爱.基于日志的数据恢复及其在SQLSERVER中的实现[J].农业网络信息,2009(1).

[3] 赵松涛.SQL SERVER2000系统管理与应用开发[M].北京:人民邮电出版社,2006:18-20.

[4] 苏国磊.利用RMAN实现Oracle数据库的备份与恢复[J].电脑知识与技术,2007(2).

[5] 贾代平,吴丽娟.Oracle DBA核心技术解析[M].北京:电子工业出版社,2006:136-137.

上一篇:高性能I/O完成端口服务器的实现与优化 下一篇:普招网报系统中服务器集群与缓存的研究