SQL Server中Recovery Model与Back type中的区别与联系

ChinaITOldMan 2017-09-23 11:22:11
请教下SQL Server中Recovery Model中的Full、Simple、Bulk-logged 及Back type中的FULL、Differential、Transaction_log的区别,谢谢!


1. 当SQL Server的Recovery model选择FUll时,若我们不做数据库备份,系统一直不会自动删除数据库的日志文件吧?
2. 当SQL Server的Recovery model选择FUll时,若我们对数据库做Full备份,备份完成后系统不会删除数据库之前的日志文件吧?
3. 当SQL Server的Recovery model选择Simple时,若我们对数据库做FULL或Differential或Transaction_log备份时,备份完成后系统会删除数据库之前的日志文件吧?
4. 当SQL Server的Recovery model选择Simple时,若我们不做数据库备份,系统也会定期自动删除数据库的日志文件吧?
5. 当SQL Server的Recovery model选择Bulk-logged时,若我们不对数据库做备份,系统一直不会自动删除数据库的日志文件吧?
6. 当SQL Server的Recovery model选择Bulk-logged时,若我们对数据库做备份时,备份完成后系统会删除数据库之前的日志文件吧?

7. 当SQL Server中Recovery Model中的Full时,对数据库的所有操作都会记录在log中吧?
8. 当SQL Server中Recovery Model中的Bulk-logged时,只是通过数据库批量导入的功能与批量导入命令导入的数据才不在log记录吧?
9. 当SQL Server中Recovery Model中的Simple时,怎样哪些情况下数据库会自动清除日志?
10.SQL Server中Recovery Model与Back type中除上述问题外还有其他的区别与联系吗?
...全文
331 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
OwenZeng_DBA 2017-09-23
  • 打赏
  • 举报
回复
就是使用过的日志做个标记,变成可用,sql server就下次就可以使用这段日志
ChinaITOldMan 2017-09-23
  • 打赏
  • 举报
回复
引用 2 楼 z10843087 的回复:
@mcxhh2005 请教下SQL Server中Recovery Model中的Full、Simple、Bulk-logged 及Back type中的FULL、Differential、Transaction_log的区别,谢谢! 1. 当SQL Server的Recovery model选择FUll时,若我们不做数据库备份,系统一直不会自动删除数据库的日志文件吧? 对。 2. 当SQL Server的Recovery model选择FUll时,若我们对数据库做Full备份,备份完成后系统不会删除数据库之前的日志文件吧? 对。 3. 当SQL Server的Recovery model选择Simple时,若我们对数据库做FULL或Differential或Transaction_log备份时,备份完成后系统会删除数据库之前的日志文件吧? 不对。这里有2个错误。首先,FULL 和 diff 备份,不会影响日志文件。其次日志文件不是删除,而是把之前使用过的日志变成可用,就是日志重用 4. 当SQL Server的Recovery model选择Simple时,若我们不做数据库备份,系统也会定期自动删除数据库的日志文件吧? 能够自动重用日志 5. 当SQL Server的Recovery model选择Bulk-logged时,若我们不对数据库做备份,系统一直不会自动删除数据库的日志文件吧? 对 6. 当SQL Server的Recovery model选择Bulk-logged时,若我们对数据库做备份时,备份完成后系统会删除数据库之前的日志文件吧? 要看备份类型。日志备份才会重用 7. 当SQL Server中Recovery Model中的Full时,对数据库的所有操作都会记录在log中吧? 基本正确,但是查询操作不会 8. 当SQL Server中Recovery Model中的Bulk-logged时,只是通过数据库批量导入的功能与批量导入命令导入的数据才不在log记录吧? 会产生尽量少的日志,而不是不产生 9. 当SQL Server中Recovery Model中的Simple时,怎样哪些情况下数据库会自动清除日志? 正确情况下,都会自动重用。你应该问的是,什么时候不会自动清除 10.SQL Server中Recovery Model与Back type中除上述问题外还有其他的区别与联系吗? 基本涵盖了。总结下吧,其实Bulk-logged 这种类型使用的很少。所有生产系统我都强烈建议使用完整的模式。
谢谢您的指点,问题是有点多,因为是相互关联,所以麻烦了,但是还有以下问题麻烦下,谢谢! 您说的"把之前使用过的日志变成可用,就是日志重用"中日志变成可用与日志重用,是什么意思?
OwenZeng_DBA 2017-09-23
  • 打赏
  • 举报
回复
@mcxhh2005 请教下SQL Server中Recovery Model中的Full、Simple、Bulk-logged 及Back type中的FULL、Differential、Transaction_log的区别,谢谢! 1. 当SQL Server的Recovery model选择FUll时,若我们不做数据库备份,系统一直不会自动删除数据库的日志文件吧? 对。 2. 当SQL Server的Recovery model选择FUll时,若我们对数据库做Full备份,备份完成后系统不会删除数据库之前的日志文件吧? 对。 3. 当SQL Server的Recovery model选择Simple时,若我们对数据库做FULL或Differential或Transaction_log备份时,备份完成后系统会删除数据库之前的日志文件吧? 不对。这里有2个错误。首先,FULL 和 diff 备份,不会影响日志文件。其次日志文件不是删除,而是把之前使用过的日志变成可用,就是日志重用 4. 当SQL Server的Recovery model选择Simple时,若我们不做数据库备份,系统也会定期自动删除数据库的日志文件吧? 能够自动重用日志 5. 当SQL Server的Recovery model选择Bulk-logged时,若我们不对数据库做备份,系统一直不会自动删除数据库的日志文件吧? 对 6. 当SQL Server的Recovery model选择Bulk-logged时,若我们对数据库做备份时,备份完成后系统会删除数据库之前的日志文件吧? 要看备份类型。日志备份才会重用 7. 当SQL Server中Recovery Model中的Full时,对数据库的所有操作都会记录在log中吧? 基本正确,但是查询操作不会 8. 当SQL Server中Recovery Model中的Bulk-logged时,只是通过数据库批量导入的功能与批量导入命令导入的数据才不在log记录吧? 会产生尽量少的日志,而不是不产生 9. 当SQL Server中Recovery Model中的Simple时,怎样哪些情况下数据库会自动清除日志? 正确情况下,都会自动重用。你应该问的是,什么时候不会自动清除 10.SQL Server中Recovery Model与Back type中除上述问题外还有其他的区别与联系吗? 基本涵盖了。总结下吧,其实Bulk-logged 这种类型使用的很少。所有生产系统我都强烈建议使用完整的模式。
OwenZeng_DBA 2017-09-23
  • 打赏
  • 举报
回复
引用 楼主 mcxhh2005 的回复:
请教下SQL Server中Recovery Model中的Full、Simple、Bulk-logged 及Back type中的FULL、Differential、Transaction_log的区别,谢谢! 1. 当SQL Server的Recovery model选择FUll时,若我们不做数据库备份,系统一直不会自动删除数据库的日志文件吧? 2. 当SQL Server的Recovery model选择FUll时,若我们对数据库做Full备份,备份完成后系统不会删除数据库之前的日志文件吧? 3. 当SQL Server的Recovery model选择Simple时,若我们对数据库做FULL或Differential或Transaction_log备份时,备份完成后系统会删除数据库之前的日志文件吧? 4. 当SQL Server的Recovery model选择Simple时,若我们不做数据库备份,系统也会定期自动删除数据库的日志文件吧? 5. 当SQL Server的Recovery model选择Bulk-logged时,若我们不对数据库做备份,系统一直不会自动删除数据库的日志文件吧? 6. 当SQL Server的Recovery model选择Bulk-logged时,若我们对数据库做备份时,备份完成后系统会删除数据库之前的日志文件吧? 7. 当SQL Server中Recovery Model中的Full时,对数据库的所有操作都会记录在log中吧? 8. 当SQL Server中Recovery Model中的Bulk-logged时,只是通过数据库批量导入的功能与批量导入命令导入的数据才不在log记录吧? 9. 当SQL Server中Recovery Model中的Simple时,怎样哪些情况下数据库会自动清除日志? 10.SQL Server中Recovery Model与Back type中除上述问题外还有其他的区别与联系吗?
你一次问的问题太多了吧。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧