第13章 数据库备份与恢复数据库
• 13.1 备份和恢复安全
• 13.2 完整数据库备份与恢复post
• 13.3差别数据库备份与恢复性能
• 13.4 事务日志备份与恢复学习
• 13.5 一种备份案例测试
13.1.1 备份和恢复的概念设计
Ø 前面两章分别介绍了经过数据的完整性控制和安全性控制来保证数据的安全,但这种安全是相对的。不但数据库管理系统软件自己可能会出现问题,并且做为硬件支撑的计算机也有可能出现不可修复的故障,还有天然灾害等不可抗拒的客观因素,这些都有可能形成数据的损坏或丢失,而避免这些损坏和丢失不是完整性控制和安全性控制“力所能及”的。所以,须要寻求另外一种数据保护措施——数据备份和恢复。代理
Ø 备份,就是按期地把数据库复制到转储设备的过程。其中,转储设备是指用于存储数据库拷贝的磁带或磁盘,存储的数据称为后备副本或后援副本,或直接称备份。日志
Ø 恢复,就是利用备份的后备副本把数据库由存在故障的状态转变为无端障状态的过程。备份和恢复的目的是在数据库遭到破坏时可以恢复到破坏前的正确状态,避免或最大限度地减小数据丢失。对象
Ø 如何有效对数据库进行备份和恢复,使得即便出现数据库故障时也可以避免数据丢失或将数据损失减小到最小程度,这就是数据库备份和恢复要讨论的内容。
13.1.2 恢复模式及其切换
恢复模式一共有三种:简单模式、完整模式和大容量日志模式。数据备份须要在给定的恢复模式下完成,这意味着在不一样的恢复模式下所备份的内容和方法将有所不一样。
1. 简单恢复模式
Ø 此恢复模式的主要特色是只对数据进行备份,而不对日志进行备份,于是不须要管理事务日志空间。所以,简单恢复模式可最大程度地减小事务日志的管理开销。简单恢复模式是最简单的备份和还原形式。该恢复模式同时支持数据库备份和文件备份(不支持日志备份)。可是使用这种模式将面临很大的风险:若是数据库损坏,则简单恢复模式只能将数据恢复到最近数据备份的末尾,而在最近数据备份以后所作的更新便会所有丢失。
Ø 一般,简单恢复模式用于测试和开发数据库,或用于主要包含只读数据的数据库(如数据仓库)。简单恢复模式并不适合生产系统,由于对生产系统而言,丢失最新的更改是没法接受的。在这种状况下,建议使用完整恢复模式。
2. 完整恢复模式
Ø 该模式不但支持数据备份,并且支持日志备份,即此模式完整记录全部事务,并将事务日志记录保留到对其备份完毕为止。若是可以在出现故障后备份日志尾部,则可使用完整恢复模式将数据库恢复到故障点。完整恢复模式也支持还原单个数据页,支持数据库备份、文件和文件组备份。
Ø 因为支持日志备份,所以完整恢复模式能够在最大范围内防止出现故障时丢失数据,能够将数据库还原到日志备分内包含的任什么时候点(“时点恢复”)。假定能够在发生严重故障后备份活动日志,则可将数据库一直还原到没有发生数据丢失的故障点处。这是完整恢复模式的优势。但它也存在着缺点:须要使用存储空间并会增长还原时间和复杂性。
Ø 从还原程度看,完整恢复模式是最理想的,可是这种模式是很“沉重的”(备份的内容多),所以对包含数据量很大的数据库而言,其时间和空间代价都是昂贵的。
3. 大容量日志恢复模式
Ø 此模式是完整恢复模式的附加模式,是一种特殊用途的恢复模式,偶尔用于执行高性能的大容量复制操做。与完整恢复模式相同的是,大容量日志恢复模式也须要日志备份,它将事务日志记录保留到对其备份完毕为止;不一样的是,大容量日志恢复模式经过使用最小方式记录大多数大容量操做,减小日志空间使用量,不支持时点恢复,这容易形成一些数据库更改的丢失。
Ø 大容量日志恢复模式也支持数据库备份、文件和文件组备份,它适用于进行一些大规模大容量操做(如大容量导入或索引建立),以提升性能并减小日志空间使用量。
Ø 恢复模式是数据库的一项属性,能够经过查看系统目录视图来得到数据库的恢复模式信息。
【例子】查看数据库MyDatabase的恢复模式能够利用下列代码实现:
SELECT name 数据库名, recovery_model_desc 恢复模式
FROM sys.databases
WHERE name = 'MyDatabase';
Ø 在输出的结果中,SIMPLE、FULL和BULK_LOGGED分别表明简单恢复模式、完整恢复模式和大容量日志恢复模式。
Ø 恢复模式的切换可用ALTER DATABASE语句来完成。例如,将数据库MyDatabase的恢复模式改成大容量日志恢复模式,可用下列语句实现:
ALTER DATABASE MyDatabase SET RECOVERY BULK_LOGGED;
Ø 将恢复模式改成完整恢复模式或者简单恢复模式,只须要将上述语句中的BULK_LOGGED改成FULL或SIMPLE便可。
纵观以上三种模式,简单恢复模式通常适合用于测试或开发数据库。可是,对于生产数据库,最佳选择一般是完整恢复模式,还能够选择大容量日志恢复模式做为补充。但简单恢复模式有时也适合小型生产数据库或数据仓库使用。
13.1.3 备份类型
备份类型主要包括完整备份、差别备份和事务日志备份。在不一样的恢复模式下,所容许的备份类型有所不一样。
1. 完整备份
Ø 完整备份是指备份包括特定数据库(或者一组特定的文件组或文件)中的全部数据,以及能够恢复这些数据的足够多的日志信息。当数据库出现故障时能够利用这种完整备份恢复到备份时刻的数据库状态,但备份后到出现故障的这一段时间内所进行修改将丢失。
Ø 完整备份在全部模式下都适用。
2. 差别备份
Ø 差别备份又称增量备份,是指对自上次完整备份以来发生过变化的数据库中的数据进行备份。能够看出,对差别备份的恢复操做不能单独完成,在其前面必须有一次完整备份做为参考点(称为基础备份),所以差别备份必须与其基础备份进行结合才能将数据库恢复到差别备份时刻的数据库状态。此外,因为差别备份的内容与完整备份的内容同样,都是数据库中的数据,所以它所须要的备份时间和存储空间仍然比较大。因为差别备份只记录自基础备份以来发生变化的数据(而不是全部数据),因此它较完整备份在各方面的性能都有显著的提升,这是它的优势。
Ø 差别备份也适用于全部恢复模式。
3. 事务日志备份
Ø 事务日志备份简称日志备份,它记录了自上第二天志备份到本第二天志备份之间的全部数据库操做(日志记录)。因为日志备份记录的内容是一个时间段内的数据库操做,而不是数据库中的数据,所以在备份时所处理的数据量小得多,于是所须要的备份时间和存储空间也就相对小得多。但它也不能单独完成对数据库的恢复,而必须与一次完整备份相结合。实际上,“完整备份+日志备份”是常采用的一种数据库备份方法,这将在下面的学习中有深入体会。
Ø 日志备份又分为纯日志备份、大量日志备份和尾日志备份。
• 纯日志备份仅包含某一个时间段内的日志记录;
• 大量日志备份则主要用于记录大批量的批处理操做;
• 尾日志备份主要包含数据库发生故障后到执行尾日志备份时的数据库操做,以防止故障后相关修改工做的丢失。自SQL Server 2005开始,通常要求先进行尾日志备份,而后才能恢复当前数据库。
Ø 事务日志备份仅适用于完整恢复模式或大容量日志恢复模式,不适用于简单恢复模式。
第13章 数据库备份与恢复
• 13.1 备份和恢复
• 13.2 完整数据库备份与恢复
• 13.3差别数据库备份与恢复
• 13.4 事务日志备份与恢复
• 13.5 一种备份案例
13.2.1 完整数据库备份
完整数据库备份是对数据库中全部的数据进行备份,所以须要较大的存储空间。
【例13.1】在简单恢复模式下对数据库MyDatabase进行完整备份。
首先建立一个逻辑备份设备MyDatabase_disk,它映射到磁盘文件D:\Backup\MyDatabase_disk.bak;而后利用BACKUP DATABASE语句将数据库MyDatabase彻底备份到逻辑备份设备MyDatabase_disk中,实际上备份的数据将保存到磁盘文件D:\Backup\MyDatabase_disk.bak中。代码以下:
USE master; -- 目的是关闭数据库MyDatabase
GO
ALTER DATABASE MyDatabase SET RECOVERY SIMPLE; -- 切换到简单恢复模式下
GO
-- 建立备份设备
EXEC sp_addumpdevice 'disk', 'MyDatabase_disk', 'D:\Backup\MyDatabase_disk.bak';
GO
-- 进行完整数据库备份
BACKUP DATABASE MyDatabase TO MyDatabase_disk WITH FORMAT;
GO
ü 针对例13.1,选项FORMAT的做用是以覆盖媒体标头和备份集的方式向文件MyDatabase_disk.bak中写入数据(若是该文件不存在则建立它)。实际上,利用FORMAT选项能够覆盖任意现有备份并建立新媒体集,从而建立一个完整数据库备份。
ü 系统目录视图sys.backup_devices保存了逻辑备份设备的有关信息,所以经过查询此目录视图能够获取逻辑备份设备的相关状况:,
SELECT * FROM sys.backup_devices
ü 若是要删除已有的备份设备,可用系统存储过程sp_dropdevice来实现。
【例子】执行下列语句将删除备份设备MyDatabase_disk:
EXEC sp_dropdevice 'MyDatabase_disk';
ü 本例中也能够不使用逻辑备份设备而直接将数据备份到磁盘文件中。
【例子】上述代码中的BACKUP DATABASE语句也能够写成:
BACKUP DATABASE MyDatabase TO DISK = 'D:\Backup\MyDatabase_disk.bak' WITH FORMAT;
ü 备份文件MyDatabase_disk.bak保存了备份时刻数据库MyDatabase中的全部数据,包括日志信息等。
13.2.2 完整数据库恢复
Ø 利用备份文件,能够将数据库恢复到备份时刻的状态。
【例13.2】利用例13.1中的完整备份对数据库进行恢复。
例13.1中,对数据库MyDatabase进行完整备份后获得备份文件MyDatabase_disk.bak。本例则利用此文件恢复数据库MyDatabase,代码以下
RESTORE DATABASE MyDatabase FROM DISK = 'D:\Backup\MyDatabase_disk.bak’;
执行上述语句后数据库MyDatabase将恢复到对其进行备份时的状态。因为是在简单模式进行备份,故恢复时在任何一种模式下效果都同样。若是备份操做是在完整模式下进行的,则恢复操做时也要在完整模式下进行,这时要涉及到尾日志备份和恢复。
【例13.3】在完整模式下对数据库MyDatabase进行完整备份,而后对其进行恢复。
首先在完整模式下对数据库MyDatabase进行完整备份:
USE master; --关闭数据库MyDatabase
GO
ALTER DATABASE MyDatabase SET RECOVERY FULL; -- 切换到完整恢复模式下
GO
-- 完整数据库备份
BACKUP DATABASE MyDatabase TO DISK = 'D:\Backup\MyDatabase_full.bak' WITH FORMAT;
GO
此后在数据库出现故障时利用得到的备份文件MyDatabase_full.bak,对数据库MyDatabase进行恢复:
USE master;
GO
ALTER DATABASE MyDatabase SET RECOVERY FULL; -- 切换到完整恢复模式下
-- 先进行尾日志备份才能恢复数据库
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabase_full.bak' --尾日志备份(必须在完整恢复模式下进行尾日志备份)
WITH NORECOVERY;
GO
-- 恢复数据库
RESTORE DATABASE MyDatabase FROM DISK = 'D:\Backup\MyDatabase_full.bak';
GO
第13章 数据库备份与恢复
• 13.1 备份和恢复
• 13.2 完整数据库备份与恢复
• 13.3差别数据库备份与恢复
• 13.4 事务日志备份与恢复
• 13.5 一种备份案例
Ø 完整数据库备份至关于对整个数据库进行复制。当数据量很大时,这种操做是费时的,且会严重下降系统的性能。所以,完整数据库备份是一种“沉重”的备份操做,不宜常常性进行这种的备份。这时能够寻求一种“轻量级”的备份方法——差别备份。
Ø 差别备份是指自建立完整备份之后对更改的数据区所进行的备份。可见,差别备份须要基于一个最近的完整备份(称为基础备份)。因为它不须要对整个数据库进行备份,于是差别备份具备存储空间耗费少、建立速度快等优势。一般的作法是,在某个特定的时间进行一次完整备份,而后(定时)进行相继的若干个差别备份。还原时,先还原完整备份,而后再还原最新的差别备份便可。
Ø 本节主要介绍差别数据库备份及基于完整备份和差别备份的恢复方法。
13.3.1 差别数据库备份
Ø 差别数据库备份也是使用BACKUP DATABASE语句来完成。与完整数据库备份不一样的是,用于差别数据库备份的BACKUP DATABASE语句要带DIFFERENTIAL选项。
【例13.4】建立差别数据库备份。
先建立完整数据库备份,而后建立差别数据库备份,并写入到同一个备份文件或备份设备中。代码以下:
• 在建立完整数据库备份后,可按期地屡次执行下列代码(相对完整备份来讲,其执行时间会很短),以保存最新的数据库状态:
• -- 差别数据库备份
BACKUP DATABASE MyDatabase
TO DISK = 'D:\Backup\MyDatabaseBackup.bak'
WITH DESCRIPTION = '第1次差别备份',
DIFFERENTIAL;
GO
Ø 备份文件MyDatabaseBackup.bak保存了基础备份以及全部的差别数据库备份。建议每执行一次差别备份代码,就修改一次其描述信息,以示不一样的差别备份。
【例子】在第一次执行时,令DESCRIPTION = '第1次差别备份',第二次时令DESCRIPTION = '第2次差别备份’,等。
Ø 若是备份时使用同一个备份文件,那么每当进行一次备份(包括基础备份),都会在备份设备(备份文件)中造成一个备份集,其位置(Position属性值)依次为1, 2, 3, 4, …。可用RESTORE HEADERONLY语句查看备份设备中的备份集。
【例子】若是在本例中,先执行一次完整数据库备份的代码,而后依次四次执行差别备份的代码(间隔必定的时间),接着执行RESTORE HEADERONLY语句来查看备份集。RESTORE HEADERONLY语句以下:
RESTORE HEADERONLY FROM DISK = 'D:\Backup\MyDatabaseBackup.bak‘;
该语句执行后,产生如图13.1所示的结果。
13.3.2 差别数据库恢复
Ø 利用差别备份及其基础备份所获得的备份文件,将数据库恢复到任何一次备份时的状态。
【例13.5】利用差别备份,将数据库恢复到指定的状态。
本例中利用例13.4造成的备份文件MyDatabaseBackup.bak,将数据库恢复到第3次差别备份时的数据库状态。
在例13.4中,一共对数据库MyDatabase进行5次备份,其中第1次是完整备份,接着进行了4次差别数据库备份,所以在备份文件MyDatabaseBackup.bak中造成了五个备份集。显然,第3次差别备份所造成的备份集的位置(Position)是4,所以在利用备份集1(Position值为1的备份集)来恢复数据库后,接着要利用备份集4来恢复数据库,便可知足本例的恢复要求。完整代码以下:
USE master;
GO
ALTER DATABASE MyDatabase SET RECOVERY FULL;
GO
-- 先进行尾日志备份,进入还原状态
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabaseBackup.bak' WITH NORECOVERY;
GO
-- 利用备份集1(备份集1对应基础备份,必须先对基础备份进行恢复,即先令FILE = 1)
RESTORE DATABASE MyDatabase FROM DISK = 'D:\Backup\MyDatabaseBackup.bak'
WITH FILE = 1, NORECOVERY; -- 此处FILE = 1
GO
-- 利用备份集4(表示要将数据库恢复到第3次差别备份时的数据库状态)
RESTORE DATABASE MyDatabase FROM DISK = 'D:\Backup\MyDatabaseBackup.bak'
WITH FILE = 4, NORECOVERY;
GO
RESTORE DATABASE MyDatabase WITH RECOVERY; -- 恢复数据库(通过此步后,数据库才真正恢复完毕)
GO
Ø 若是但愿将数据库恢复到第4次差别备份时的数据库状态,则只需将上述代码中的“FILE = 4”改成“FILE = 5”便可,其余状况依此类推。
Ø 从上述代码能够看到,“恢复到第3次差别备份时的数据库状态”只须要第1个备份集和第4个备份集,而第2和3个备份集是不须要的,即它们是多余的。所以,差别备份仍然出现较大的数据冗余。
第13章 数据库备份与恢复
• 13.1 备份和恢复
• 13.2 完整数据库备份与恢复
• 13.3差别数据库备份与恢复
• 13.4 事务日志备份与恢复
• 13.5 一种备份案例
13.4.1 事务日志备份
u事务日志备份也简称日志备份,包括建立备份时处于活动状态的部分事务日志,以及先前日志备份中未备份的全部日志记录。日志备份只能在完整模式和大容量日志恢复模式下才能建立。使用日志备份,能够将数据库恢复到故障点或特定的时点。建立日志备份的频率取决于用户对数据丢失风险的容忍程度与用户所能存储、管理和潜在还原的日志备份数量之间的平衡。因为日志备份并非对数据进行备份,而是对相关操做进行记录,所以日志备份集通常比其余备份集要小得多。日志备份的每一次建立都是对上一次备份以后的操做进行记录,所以备份得越频繁,所造成的备份集就越小。
u日志备份也依赖于最近的一次完整数据库备份,没有这样的完整数据库备份,而仅仅利用日志备份是没法恢复数据库的。在这一点上,日志备份与差别数据库备份很类似,但它们之间存在本质上的差异:每一第二天志备份都是对上一第二天志备份以后到如今为止所进行的操做进行记录(备份操做记录,而不是数据自己),差别数据库备份则是对自建立完整备份之后被更改的数据区进行备份(对数据自己进行备份)。
u建立日志备份可利用BACKUP LOG语句来完成,下面经过例子对其进行说明。
【例13.6】对指定数据库建立日志备份。
Ø 日志备份要依赖于最近一次完整数据库备份,不然不能恢复数据库。本例以数据库MyDatabase为例,介绍如何对其进行日志备份。
Ø 本例中,先建立数据库的完整备份,而后依次建立四个日志备份。代码以下:
-- 建立日志备份2
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabase_Log.bak'
WITH DESCRIPTION = '3. 建立日志备份2';
GO
-- 建立日志备份3
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabase_Log.bak'
WITH DESCRIPTION = '4. 建立日志备份3';
GO
-- 建立日志备份4
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabase_Log.bak'
WITH DESCRIPTION = '5. 建立日志备份4';
GO
13.4.2 事务日志恢复
u 在利用日志备份(事务日志备份)恢复数据库以前,先利用最近的完整数据库备份来恢复数据库,而后再利用日志备份恢复数据库。日志备份恢复可利用RESTORE LOG语句来实现。
【例13.7】利用已有的日志备份恢复数据库到指定的状态。
Ø 本例中,利用例13.6产生的备份文件对数据库MyDatabase进行恢复,要求将之恢复到日志备份3时的状态。
Ø 例13.6中,一共进行了5次备份,其中第1次是完整数据库备份,后面接着是4第二天志备份,即这些备份集依次是备份集一、备份集二、备份集三、备份集四、备份集5。这些备份集都保存在D:\Backup\MyDatabase_Log.bak文件中,可利用RESTORE HEADERONLY语句来查看此文件(备份文件或备份设备)中全部备份集的信息:
RESTORE HEADERONLY FROM DISK = 'D:\Backup\MyDatabase_Log.bak’;
能够看到,上述日志备份造成了如图13.2所示的备份集。
Ø 要将数据库恢复到第3第二天志备份时的状态,就应该依次用备份集一、备份集二、备份集3和备份集4来恢复数据库,而不是只用备份集1和备份集4,这与差别数据库恢复不一样。代码以下:
第13章 数据库备份与恢复
• 13.1 备份和恢复
• 13.2 完整数据库备份与恢复
• 13.3差别数据库备份与恢复
• 13.4 事务日志备份与恢复
• 13.5 一种备份案例
Ø 对于一个投入运行的数据库系统,备份是一项重要的工做。数据备份时须要占用机器资源,占用CPU时间,于是会下降系统的运行效率,同时备份的数据会占用磁盘空间。所以,若是备份频率太高,则会影响系统的正常运行效率,会耗费大量的空间资源;若是备份频率过低,则丢失数据的风险就比较大。如何设计一个有效的备份计划,不是一件容易的事情。通常来讲,实时性强的重要数据,如银行数据等,通常须要较高的备份频率;若是历史性数据,如交易数据,则备份的频率比较低,甚至不须要备份。
Ø 对于一个须要备份的数据库系统而言,有些备份操做是带有共性规律的,可为制定系统备份计划提供参考。好比,完整数据库备份的频率应该是最低,并且大多选择在节假日、周末、凌晨进行,由于这时系统处于空闲状态的概率比较高。其次是差别数据库备份,它备份的数据量较完整数据库备份少得多,所以频率能够高一些。频率最高的是日志备份,它记录的是用户对数据进行操做的信息,于是其执行时间和耗费的存储空间都相对少一些。
Ø 从实现按期备份的技术层面看,咱们须要借助一种机制和方法来按期执行咱们的备份代码。在SQL Server 2014中,SQL Server代理可提供这样的一种机制,它能够按期执行SQL代码或存储过程,其最小执行时间间隔是1小时,或者能够指定天天在某一个时间点上执行。下面经过一个例子来讲明如何按期对数据库系统进行备份。
【例13.8】制定一个备份程序,使得它能够按期地对MyDatabase数据库进行备份。备份的具体要求是:(1)每一个季度第一个周六的凌晨3:30作一次完整数据库备份;(2)天天凌晨3:30作一第二天志备份。
– 先对这个备份要求作一个简要的分析。SQL Server代理能够天天在某一个时间点上执行SQL命令,所以咱们能够将备份程序作成一个存储过程,在天天凌晨3:30执行一次该存储过程。在存储过程当中,用代码对是否为“每一个季度第一个周六”进行判断,根据判断结果来决定是执行完整数据库备份仍是差别数据库备份。相关步骤以下:
(1)建立名为pro_for_backup的存储过程,其建立代码及说明以下:
CREATE PROCEDURE pro_for_backup -- 定义存储过程pro_for_backup
AS
BEGIN
ALTER DATABASE MyDatabase SET RECOVERY FULL; -- 切换到完整模式下
DECLARE @date SMALLDATETIME, @n int, @m int, @dws nvarchar(10);
DECLARE @s1 nvarchar(100), @s2 nvarchar(100);
DECLARE @fg int;
SET @date = GETDATE(); -- 获取当前日期、时间
--下面语句获取当前时间在当前月中的第几周
SET @n = DATEPART(WEEK,@date)-DATEPART(WEEK,@date-DAY(@date)+1)+1;
SET @m =DateName(mm, @date); -- 提取月份
SET @dws = DateName(dw, @date); -- 提取当前星期(星期几)
SET @s1 = '建立完整数据库备份,时间:'+CONVERT(varchar(30), @date, 114);
SET @s2 = '建立日志备份,时间:'+CONVERT(varchar(30), @date, 114);
SET @fg = 0;
IF @m=1 or @m=4 or @m=7 or @m=10 -- 每一个季度的第一个月
BEGIN
IF @n=1 and @dws=‘星期六’ -- 若是如今是当前月份中第一周星期六,则创 建完整数据库备份
BACKUP DATABASE MyDatabase TO DISK = 'D:\Backup\MyDatabase_Log.bak’
WITH DESCRIPTION = @s1, FORMAT; -- 会覆盖备份集中之前的备份数据
SET @fg = 1;
END
IF @fg = 0 -- 若是没有作上述的彻底数据库备份,则作日志备份
BACKUP LOG MyDatabase TO DISK = 'D:\Backup\MyDatabase_Log.bak’
WITH DESCRIPTION = @s2;
END
(2)打开SSMS,在“对象资源管理器”中展开“SQL Server代理”节点(若是SQL Server代理没有启动,则先启动),右击其“做业”节点,在弹出的菜单中选择“新建做业…”选项,而后打开“新建做业”对话框,如图13.3所示。
(3)在对话框的左边选择“常规”项,而后在右边的“名称”文本框输入做业的名称(本身拟定),如“按期备份数据库”,在“说明”文本框输入必要的说明文字,如“每一个季度第一个周六的凌晨3:30作一次完整数据库备份,天天凌晨3:30作一第二天志备份”。
(4)在图13.3所示的对话框的左边选择“步骤”项,而后在打开的界面中点击左下方的“新建”按钮,进而打开“新建做业步骤”对话框。在此对话框中,输入步骤的名称,本例输入“按期备份数据库步骤”,类型选择“Transact-SQL脚本(T-SQL)”,数据库选择“MyDatabase”,在“命令”文本框中输入要执行的SQL命令,本例要执行的是存储过程pro_for_backup,所以输入“EXEC pro_for_backup”,结果如图13.4所示。设置完后,点击“肯定”按钮。
(5)在图13.3所示的对话框的左边选择“计划”项,而后在打开的界面中点击左下方的“新建”按钮,进而打开“做业计划属性”对话框。在此对话框中,输入计划的名称,如“按期备份数据库计划”,“计划类型”一栏选择“重复执行”一项,执行频率选择“天天”,执行间隔选择最小值——1天,“天天频率”选择“执行一次”,时间设置为3:30。设置结果如图13.5所示。而后单击“肯定”按钮。
(6)返回“新建做业”对话框后,点击“肯定”按钮便可。
至此,备份程序的编写及设置所有完成。此后,该备份程序会按照既定的要求对数据库MyDatabase按期进行彻底数据库备份和日志备份。