在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 MagDbfrom MagDb_1with norecovery(2)差异(增量)备份与恢复
只备份最后一次全库备份后被修改的数据,备份的时间和空间较少
恢复时,先恢复最后一次完整备份,再恢复最后一次差异备份
备份:backup database 数据库名 to 备份设备名 with differential [name='备份的名称']
backup database MagDb to MagDb_1 defferential恢复:restore database 数据库名 from 备份设备名 with [norecovery/recovery]
restore database MagDbfrom MagDb_1with 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 DocDbfrom disk='c:\databak\DocDb1.bat'(4)文件和文件组备份与恢复
备份某个数据库文件或数据库文件组,必须与事务日志结合才有意义
恢复时,使用事务日志,使所有的数据文件恢复到同一个时间点
备份:backup database 数据库名 file='文件的逻辑名称'(filegroup) to 备份设备名 with init/noinit
backup database DocDb file='DocDb_Data'to disk='c:\databak\Docfile1.dat'恢复:restore database 数据库名 file='文件的逻辑名称'(filegroup) from 备份设备名
restore database DocDbfile="DocDb_Data"from disk="c:\databak\Docfile1.dat"
让您的数据万事无忧吧,做好备份,恢复,易如反掌。
- 6楼yuluows昨天 19:12
- 嘻嘻,加油哦
- Re: linlin8023061917分钟前
- 回复yuluowsn你这离开CSDN好多年的人要回归了呀~
- 5楼gxq741718618昨天 07:59
- 很有条理哦!!
- Re: linlin80230619昨天 16:15
- 回复gxq741718618n嘿嘿~
- 4楼lzh1110昨天 22:50
- 嘿嘿!不错哦!
- Re: linlin80230619昨天 07:58
- 回复lzh1110n吼吼~~~~
- 3楼lfmilaoshi昨天 21:19
- 好文章,有张图就更好了。。。米老师
- Re: linlin80230619昨天 22:20
- 回复lfmilaoshin好的~以后会注意图文结合的~
- 2楼liujiahan6296293天前 17:07
- 好文章!
- Re: linlin80230619前天 08:43
- 回复liujiahan629629n你这话学得可真快呀~哈哈~
- 1楼CJL56783天前 15:23
- 很实用的知识