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