Dan*_*iel 5 backup maintenance sql-server-2000
我刚开始一份新工作,正在审查数据库维护计划。我在编写 SQL 方面有相当多的经验,但在数据库管理方面经验不足。我上一份工作是在一家大公司,他们不让普通人接触那种东西。
我们被锁定在 SQL Server 2000(它嵌入在一些很旧的软件中,我们还不能升级)。当前维护计划(完全恢复模式)执行以下操作:
从早上 6 点到晚上 11 点,每小时:
backup log Accounting to Accounting_Logs with noinit
每天凌晨 1 点,会发生这种情况:
backup Log Accounting WITH TRUNCATE_ONLYDBCC SHRINKDATABASE (Accounting, TRUNCATEONLY)backup database Accounting_ReadOnly to Accounting with init
然后在凌晨 3 点:
- 重建所有索引
这是一个体面的计划吗?这会给我们提供易于恢复的良好备份吗?我知道我要求很多,但任何想法/评论/建议将不胜感激。
如果您需要更多信息,请告诉我。谢谢!
虽然这是有效的,但这里存在一些漏洞,一旦出现问题,将很难恢复:
我不确定您的日志备份到什么设备,但根据我在这里看到的内容,您将所有日志备份附加到同一个文件/设备以执行所有日志备份操作。这可能会很麻烦,并且可能会导致存储问题。
BACKUP LOG ...WITH TRUNCATE_ONLY 是多余的,可能会导致数据丢失。您的日志截断发生在每次日志备份之后,因此这应该足以管理您的日志,但您应该考虑将日志备份安排在每小时 24/7,而不是仅在上午 6 点至晚上 11 点进行。
使用当前语法的完整备份将在每次运行时覆盖以前的备份,因此除非您在完整备份运行之间将该备份保存到磁带,否则您将无法恢复到上次完整备份之前的状态。
由于多种原因,定期缩小数据库是非常糟糕的做法。Paul Randal在这里详细讨论了这一点。
一般来说,您的备份/维护计划如下:
这是一个足够扎实的计划,看起来你只需要填补一些空白。不幸的是,备份/恢复是一个太大的话题,无法在这里讨论。我建议您在SQLServerPedia(现在的 ToadWorld)上阅读此内容。由于您致力于 SQL 2000,这限制了您使用一些当前现有的工具。然而,有大量的代码示例可以用来微调和完善您当前现有的代码。
至于索引碎片,在没有看到您的代码的情况下,我无法评论任何可能的问题。如果到目前为止一直工作正常,则可能没有问题,但您可以在MSDN上阅读有关管理此问题的更多信息。
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |