AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1
Accepted
Jarrod Dixon
Jarrod Dixon
Asked: 2009-04-30 22:49:01 +0800 CST2009-04-30 22:49:01 +0800 CST 2009-04-30 22:49:01 +0800 CST

如何从 SQL Server 2008 中的备份中排除索引

  • 772

我们的夜间完整(和定期差异)备份变得非常大,主要是由于我们表上的索引数量;大约一半的备份大小由索引组成。

我们正在使用简单恢复模型进行备份。

有没有办法通过使用FileGroups或其他文件分区方法从备份中排除索引?

如果这也可以扩展到全文目录,那就太好了。

sql-server backup sql-server-2008 indexes
  • 4 4 个回答
  • 7209 Views

4 个回答

  • Voted
  1. Best Answer
    Brent Ozar
    2009-05-01T04:06:00+08:002009-05-01T04:06:00+08:00

    如果您切换到完全恢复模式,您可以使用文件组来执行此操作,但它确实非常笨拙。您将数据留在主文件组中,并将索引放在单独的(非默认,这是关键)文件组中。

    然后,您错开备份,以便每晚对主数据库进行文件组备份,每 X 分钟进行一次事务日志备份。

    当灾难发生时,您可以自行恢复主文件组。数据突然在线,但索引不在线。但是,要恢复正常,您需要将该数据导出到一个新的干净数据库并从那里添加索引。如果不恢复所有文件组,就无法使数据库完全联机,也不能说“我不再需要那个其他文件组了”。

    有关其工作原理的更多信息,请查看我的文件组恢复视频教程。

    • 16
  2. Adam Davis
    2009-05-01T09:16:16+08:002009-05-01T09:16:16+08:00

    老实说,你真的不想这样做,即使你克服了其他人在这里提出的其他问题。

    当您在紧急情况下恢复备份时,您不想等待索引重建,并且您将遭受可恶的性能,直到您这样做。

    我想不出你想要恢复没有索引的备份的情况,所以在所有情况下你真的想同时备份它们。

    您可能需要寻找其他解决方案来解决这个问题......

    -亚当

    • 6
  3. Jon Galloway
    2009-05-01T00:44:39+08:002009-05-01T00:44:39+08:00

    听起来好像不支持。从此错误报告信息:

    对此有很多兴趣,所以我将更详细地介绍幕后发生的事情,以及实现此功能意味着什么。某些类型的索引页被隔离到单独的分配单元中,而其他类型的索引页则与数据页混合在一起。我们目前只查看分配位图来查看是否分配了一个区,现在我们必须进入并解释每个分配单元中存储的内容。此外,我们现在不能只对复制数据的数据文件进行线性扫描,我们会在文件中跳过。对数据结构的所有这些解释都会大大减慢备份速度。恢复变得更加有趣,因为有很多结构必须修复才能解决备份中的漏洞。否则,您将拥有指向未备份页面的分配映射,因此其中有垃圾等。因此,实现这一点意味着我们将节省更少的数据,花费更长的时间,并花费更多的时间更长的时间恢复它。要考虑的另一个方面是,这将需要大量的工程工作才能使其正常运行。虽然表面上这不是您的问题,但请考虑这意味着您可能希望看到的其他功能不会被构建。

    • 3
  4. Nick Kavadias
    2009-05-04T19:49:27+08:002009-05-04T19:49:27+08:00

    可能是一个疯狂的想法,但这里有。

    1. 删除占用大量空间的非聚集索引
    2. 做备份
    3. 重新创建您删除的索引

    当然,只有当您的数据库允许一天中的一些停机时间时,您才能真正做到这一点。

    此外,不要删除您的聚集索引,因为 SQL Server 会浪费大量时间将这些索引转换为堆。

    购买额外的磁盘空间似乎是一个更简单的解决方案吗?

    您是否考虑过进行压缩备份?这是 2008 年的一个新功能,它可能是您的一个选择。

    • 1

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve