在SQL Server中,使用数据库备份和还原工具可以创建数据库的拷贝,将该拷贝放到安全的地方,当服务器崩溃或数据被破坏时,该拷贝就可以用于还原数据库。这就是我们本篇文章要说的备份和恢复。
(1)完整备份与恢复
制作数据库中所有内容的副本,在备份过程中需要花费的时间和空间最多,不宜频繁进行
恢复时,仅需要恢复最后一次全库备份即可
备份:backup database 数据库名 to 备份设备名 with [name='备份的名称'][init /noinit]
backup database MagDB to MagDb_1 with init
恢复:restore database 数据库名 from 备份设备名 with [norecovery/recovery]
restore database MagDb
from MagDb_1
with norecovery
(2)差异(增量)备份与恢复
只备份最后一次全库备份后被修改的数据,备份的时间和空间较少
恢复时,先恢复最后一次完整备份,再恢复最后一次差异备份
备份:backup database 数据库名 to 备份设备名 with differential [name='备份的名称']
backup database MagDb to MagDb_1 defferential
恢复:restore database 数据库名 from 备份设备名 with[norecovery/recovery]
restore database MagDb
from MagDb_1
with file =2,
recovery
(3)事务日志备份与恢复
只备份最后一次日志备份后所有的事务日志记录,备份时所用的时间和空间更少
恢复时,可以指定恢复到某一事务;可以将其恢复到某个破坏性操作执行前的一个事务,这是全库备份和差异备份所不能做到的,但利用日志备份进行恢复时,需要重新执行日志记录中的修改命令,来恢复数据库中的数据,所以通常恢复的时间较长;先恢复最后一次全库备份,再恢复最后一次差异备份,再顺序恢复最后一次差异备份以后进行的所有事务日志备份
备份:backup log 数据库名 to 备份设备名 with init/noinit
backup log DocDb to disk='c:\databak\DocDb_1.bat'
恢复:restore log 数据库名 from 备份设备名 with[norecovery/recovery]
restore log DocDb
from disk='c:\databak\DocDb1.bat'
(4)文件和文件组备份与恢复
备份某个数据库文件或数据库文件组,必须与事务日志结合才有意义
恢复时,使用事务日志,使所有的数据文件恢复到同一个时间点
备份:backup database 数据库名 file='文件的逻辑名称'(filegroup) to 备份设备名 withinit/noinit
backup database DocDb
file='DocDb_Data'
to disk='c:\databak\Docfile1.dat'
恢复:restore database 数据库名 file='文件的逻辑名称'(filegroup) from 备份设备名
restore database DocDb
file="DocDb_Data"
from disk="c:\databak\Docfile1.dat"
让您的数据万事无忧吧,做好备份,恢复,易如反掌。