gpt4 book ai didi

sql-server - 为什么删除的数据会保留在 SQL Server 备份文件中?

转载 作者:行者123 更新时间:2023-12-04 04:52:29 25 4
gpt4 key购买 nike

我想备份我的 SQL Server 数据库,以便将其发送给我的供应商以帮助诊断。但是,我不想将表格中的数据包含在客户信息中。

这是我尝试过的:复制数据库,删除所有包含客户信息的表,然后备份结果。

但是,当我在文本编辑器中查看备份时,我看到备份文件中有大量私有(private)数据。知道为什么吗?

最佳答案

当您删除 SQL Server 数据库中的数据时,SQL Server 只是将页面标记为空闲,但不会覆盖数据。就像任何现代文件系统实际上并没有删除文件一样,只是将磁盘 block 标记为空闲。

要清理您的数据库,我会尝试以下操作:

  • 删除数据
  • 重建所有索引和堆(重建,而不是重组)
  • 通过重新组织页面将每个数据文件缩小到可能的最小大小
  • 重复 2 和 3 几次
  • 执行检查点
  • 分离数据库并重命名日志文件
  • 重新连接数据库,强制 SQL Server 重新创建一个新的空日志文件 (http://www.mssqltips.com/sqlservertip/1894/attach-a-sql-server-database-with-a-missing-transaction-log-file/)
  • 运行 DBCC CHECKDB确保您没有破坏任何东西
  • 备份

  • 现在这是一个非常具有破坏性的过程,因此请确保永远不要对您想要继续使用自己的数据库执行此操作,但它应该删除所有已删除的数据。

    重建索引是必要的,因为否则单个删除的行可能会在页面内的未删除行中保留下来。重组和缩小会删除未使用的页面。但是有时它不会完全清理,因此您需要重复步骤 2 和 3。4、5 和 6 确保日志文件中没有留下任何数据痕迹,否则根据您的恢复模式,仍然包含已删除的数据,可能是多次。

    关于sql-server - 为什么删除的数据会保留在 SQL Server 备份文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com