内容正文:
网站数据库应用技术SQL Server 2008
(项目教程)
项目十二 数据库的备份与还原
任务1:备份数据库
任务2:还原数据库
任务1:数据库备份
数据库备份
数据库在使用过程中会遇到一些意外问题导致数据丢失,这时数据库备份是保证数据完整一个很好的手段,DBA(数据库管理员)应该养成良好的数据备份习惯。本任务中我们使用系统操作和命令2种方式完成数据备份。
12.1.1相关知识
备份数据库首先要设置数据库“恢复模式”,因为数据库如果恢复模式设置不正确,会导致数据无法还原。SQL Server 2008数据库恢复模式分为三种:完整恢复模式、大容量日志恢复模式、简单恢复模式。
相关知识
1、完整恢复模式。为默认恢复模式。它会完整记录下操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。
2、大容量日志恢复模式。它是对完整恢复模式的补充。简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。一般只有在需要进行大量数据操作时才将恢复模式改为大容量日志恢复模式。
数据库备份
相关知识
3、简单恢复模式。在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,此模式只用于对数据库数据安全要求不太高的数据库。并且在该模式下,数据库只能做完整和差异备份。
数据库备份
相关知识
了解了以上数据库还原模式后,备份数据库,SQL Server 2008有四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。
数据库备份
相关知识
1、完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。
2、差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。因此,差异备份通常作为常用的备份方式。在还原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的内容相同。
数据库备份
相关知识
3、事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成的文件较小、占用时间较短,但是在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份(这是与差异备份的区别)。
数据库备份
相关知识
4、文件和文件组备份。如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,由于文件和文件组备份只备份其中一个或多个数据文件,当数据库里的某个或某些文件损坏时,可能只还原损坏的文件或文件组备份。
数据库备份
相关知识
除此之外,我们还可以使用SQL命令进行数据备份,语法如下:
完整数据库备份语句格式:
BACKUP DATABASE <数据库名字>
TO <备份设备名>
[ MIRROR TO <备份设备名> ]
[ WITH
[ [,] NAME = { backup_set_name } ] 指定备份集名称
[ [,] DESCRIPTION = { 'text' } ] 指定备份集的描述
[ [,] DIFFERENTIAL ] 指定是否为完整差异备份
[ [,] EXPIREDATE = { date } | RETAINDAYS = { days } ]
[ [,] { INIT | NOINIT } ] 指定是否覆盖媒体集中已有的备份集
[ [,] MEDIANAME = { media_name } ] 指定媒体集名称
[ [,] MEDIADESCRIPTION = { 'text' } ] 指定媒体集描述
]
数据库备份
相关知识
事务日志备份语法格式:
BACKUP LOG <数据库名字>
TO <backup_device> [ ,...n ]
[ MIRROR TO <backup_device>]
[ WITH
[ [ , ] NA