【问题标题】:Huge sql server database with varbinary entries带有 varbinary 条目的大型 sql server 数据库
【发布时间】:2013-12-06 14:08:17
【问题描述】:

我们必须设计一个存储许多 varbinary blob 的 SQL Server 2008 R2 数据库。

每个 blob 大约有 40K,每天大约有 700.000 个额外条目。 估计数据库的最大大小为 25 TB(30 个月)。 斑点永远不会改变。它们只会被存储和检索。 这些 blob 将在添加的同一天被删除,或者仅在 30 个月后的清理过程中被删除。两者之间不会有任何变化。

当然我们需要表分区,但一般的问题是,在实现正常的备份(到磁带)和恢复策略时,我们需要考虑什么? 感谢您的任何建议!

【问题讨论】:

  • 您确定 SQL Server 是存储 25 TB 二进制文件的最佳解决方案吗?
  • 就个人而言,当遇到这些东西时,我倾向于将它们保存为文件对象并写入数据库的路径和指针,而不是尝试将其存储在数据库本身中。
  • @EkoostikMartin:不,但我们不得不这样做。在这个系统上已经有一个包含 700 GB 结构化数据的数据库。除了已经可用的数据外,我们还将通过来自单独系统的存储过程接收这些对象,我们希望将其存储到单独存储中的单独数据库中。我们还需要通过存储过程导出这些数据。因此,如果没有强有力的理由反对它,我们将不胜感激。
  • @David:对于较少的大文件,我肯定会这样做,但由于文件实际上很小而且很多,我倾向于将其存储为 varbinary。我们过去有过糟糕的经历,因为系统的可管理性存储了大量较小的文件。我也读过social.msdn.microsoft.com/Forums/sqlserver/en-US/…(接受的答案)之类的建议
  • @user1633911 有趣的观点,感谢您分享文章。

标签: sql-server-2008 backup varbinary


【解决方案1】:

看看“零碎备份和恢复”——你会发现它对你的场景非常有用,这将受益于不同文件组/分区的不同备份计划。这里有几篇文章可以帮助您入门: http://msdn.microsoft.com/en-us/library/ms177425(v=sql.120).aspx http://msdn.microsoft.com/en-us/library/dn387567(v=sql.120).aspx

【讨论】:

  • 谢谢!看起来很有希望,我会深入研究。
【解决方案2】:

过去我有幸使用过几个非常大的数据库,我曾使用过的最大的环境在 5+TB 范围内。比这更大,我相信你会遇到一些我可能没有遇到过的独特挑战。

我可以肯定地说,您要实施的任何备份策略都需要一段时间,因此您应该计划每周至少有一天时间专门用于备份和维护,而数据库可用时不应该这样做预计将达到相同的水平。

其次,我发现以下 MVP 文章在规划通过本机 MSSQL 备份操作进行的备份时非常有用。备份命令有一些特定于大型数据库的选项,可以帮助减少备份持续时间。虽然这些增加了吞吐量,但您可以预期性能影响。具体来说,对我的测试影响最大的选项是 buffercount、blocksize 和 maxtransfersize。

http://henkvandervalk.com/how-to-increase-sql-database-full-backup-speed-using-compression-and-solid-state-disks

此外,假设您的数据存储在 SAN 上,您可能希望在备份策略中调查 SAN 级工具的使用情况。一些 SAN 供应商提供的软件与 SQL Server 集成以执行 SAN 样式的快照备份,同时仍与引擎集成以处理标记备份日期和转发 LSN 值等事情。

根据您的大部分数据不会随时间变化的说法,包含差异备份似乎是一个非常有用的选项,可让您减少必须在恢复中恢复的事务日志的数量场景。

如果您想进一步讨论,请随时直接与我联系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多