我们计划创建一些执行数据库维护操作的c#作业,如备份、收缩文件等.
我在许多博客中读到,不推荐缩小数据库,这就是为什么我在这里发表文章是为了对这个主题有一些建议。
我们还希望重建/重新组织索引。这很简单,我已经为它编写了C#脚本。
数据库的备份和事务日志的收缩也应该完成。数据库有恢复模型: Full。
一些博客推荐这样的顺序:
其他一些人建议这样做根本不收缩,是使用恢复模型:简单。
我的问题是:
我没有足够的DBA经验,所以如果你能给我一些提示,那就太好了。
谢谢
发布于 2018-01-25 19:13:35
Aaron Bertrand在SQL社区中受到高度评价,他询问源代码以了解缩小日志的原因。只有极少数情况下,压缩日志文件是一个合理的过程。在你问的问题中,这是否是一个好主意,然后在你的回答中,这是一个要求,这意味着没有讨论的余地。
2)根据经验,除非您理解为什么要收缩日志文件,或者日志文件的技术细节,否则您不会收缩日志文件。如果你要收缩一个日志文件,特别是它不应该是基于一个时间框架或任意命令。
要点是亚伦或DBA01给出与合理建议相矛盾的指示是错误的。
基本上,您只会对数据库造成问题,这通常会对用户的性能产生影响,并且可能会给您或DBA01带来额外的痛苦。
您的问题引出了黄金默认SQL答案“It取决”。你缺乏足够的信息让别人给你建议。
1)重建索引是一种脱机操作,通常是在有30%的碎片时完成的,而这种情况发生的时间取决于您更新所述索引的频率。Reorgs是在线操作,通常在大约5%的碎片之后完成,但是每30分钟这样做也是徒劳的。有一些维修计划,你可以查一查。
亚伦还暗示了一个更大的问题,为什么是C#?如果有的话,最好是将应用程序与数据库分离。一种方法可能是使用提供的工具集,然后从C#应用程序调用代理作业或进程。
3)这取决于..。你想用你的备份完成什么,RTO?RPO?哪一个是重点,什么是可接受的数据损失?
https://dba.stackexchange.com/questions/196255
复制相似问题