目录
1.备份概念
1.1 为何备份?
SQL Server 备份是通过复制 SQL Server 数据库中的数据记录或复制其事务日志中的日志记录来创建备份。
备份 SQL Server 数据库防止数据库因用户错误(例如,误删除了某个表)、硬件故障(例如,磁盘驱动器损坏或服务器报废)、自然灾难等原因导致数据丢失。
1.2 SQL Server 备份模式
SQL Server 的备份有三种形式:
- (1)全备份(full backup),数据库有数据文件与日志文件两种方式,全备份是将所有的缓存先 flush到磁盘上,不管在进行的事务是否提交,这样保证了日志的连续性,数据与日志的一致性。如果事务没提交 ,在日志文件上的标记是active的,这段日志也就不会被清空,下次恢复的时候,就从这段日志开始,接着使用新的日志执行。因此 全备份之前肯定会执行一次 checkpoint 。
- (2)差异备份(differential backup),先执行checkpoint,然后再将上一次备份之后,发生数据页变化的这些数据页都备份起来,这部分备份就不会有日志。但是和全备份一样,备份的容积体量比较大,差异备份备份的是数据页,不管这一页是不是只有一条数据更改了,还是全部更改了。
- 差异备份相对全备份,优越的地方在于备份数据量少,但是差异备份不能独立存在,差异备份必须以一个全备份做基准,在这基础之上再判断哪些数据页是有过更新的,这些更新的数据页计算出来并被备份起来。
- (3)日志备份(transaction log backup), 日志备份中需要注意的就是对未提交事务的理解,没有提交的事务其实还是占用日志文件的VLF,shrink并不能回收日志空间;提交事务的日志如被备份之后,就会将日志VLF打上unactive或者truncated标记,这个时候执行shrink就可以回收这部分日志VLF了。日志备份体量小,比较适合频率高的执行,比如每5分钟执行一次。
2.SQL Server 数据库备份
2.1 借助SSMS备份数据库
SSMS并连接到您的实例,然后在对象资源管理器中右键单击要备份的数据库,选择任务 —> 备份。
在弹出的备份数据库窗口中,您可以进行以下设置:
- 数据库,您可以在这里从下拉列表中选择服务器上的任何数据库
- 备份类型,默认类型为“完整”,如果想执行SQL Server差异备份或事务日志备份的话,前提是执行过一次及以上的完整数据库备份
- 备份组件,在这里请您选择“数据库”
- 备份到,选择“磁盘”并查看备份文件的默认位置(在.../mssql/backup文件夹中)
2.2 借助 T-SQL 备份数据库
(1)将数据库的恢复模式由完整模式修改为简单恢复模式,点击数据库对象右键选着属性,然后选着选项,将恢复模式由完整修改为简单模式。修改为简单模式的原因是使 sql server 立即将内存中的数据写入到磁盘中,保证了用户的操作数据不会丢失。