首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#为sql数据库创建维护计划

问使用C#为sql数据库创建维护计划
EN

Database Administration用户
提问于 2018-01-25 18:35:04
回答 1查看 1K关注 0票数 0

我们计划创建一些执行数据库维护操作的c#作业,如备份、收缩文件等.

我在许多博客中读到,不推荐缩小数据库,这就是为什么我在这里发表文章是为了对这个主题有一些建议。

我们还希望重建/重新组织索引。这很简单,我已经为它编写了C#脚本。

数据库的备份和事务日志的收缩也应该完成。数据库有恢复模型: Full。

一些博客推荐这样的顺序:

  1. 备份数据库
  2. 变更恢复模型
  3. 缩小.ldf文件
  4. 重新设置原来的恢复模型

其他一些人建议这样做根本不收缩,是使用恢复模型:简单。

我的问题是:

  1. 我们应该多久在sql表中重建或重新组织索引?
  2. 收缩日志文件是个好主意吗?
  3. 我们应该按照什么顺序进行数据库备份/日志备份/日志收缩?

我没有足够的DBA经验,所以如果你能给我一些提示,那就太好了。

谢谢

EN

回答 1

Database Administration用户

发布于 2018-01-25 19:13:35

Aaron Bertrand在SQL社区中受到高度评价,他询问源代码以了解缩小日志的原因。只有极少数情况下,压缩日志文件是一个合理的过程。在你问的问题中,这是否是一个好主意,然后在你的回答中,这是一个要求,这意味着没有讨论的余地。

2)根据经验,除非您理解为什么要收缩日志文件,或者日志文件的技术细节,否则您不会收缩日志文件。如果你要收缩一个日志文件,特别是它不应该是基于一个时间框架或任意命令。

要点是亚伦或DBA01给出与合理建议相矛盾的指示是错误的。

基本上,您只会对数据库造成问题,这通常会对用户的性能产生影响,并且可能会给您或DBA01带来额外的痛苦。

您的问题引出了黄金默认SQL答案“It取决”。你缺乏足够的信息让别人给你建议。

1)重建索引是一种脱机操作,通常是在有30%的碎片时完成的,而这种情况发生的时间取决于您更新所述索引的频率。Reorgs是在线操作,通常在大约5%的碎片之后完成,但是每30分钟这样做也是徒劳的。有一些维修计划,你可以查一查。

亚伦还暗示了一个更大的问题,为什么是C#?如果有的话,最好是将应用程序与数据库分离。一种方法可能是使用提供的工具集,然后从C#应用程序调用代理作业或进程。

3)这取决于..。你想用你的备份完成什么,RTO?RPO?哪一个是重点,什么是可接受的数据损失?

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/196255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档