尝试从DB

时间:2016-03-09 08:53:15

标签: sql-server

我需要从数据库中删除一些旧日志,但是由于物理硬盘空间不足,没有足够的空间来维持删除活动导致的事务日志增长。

我的问题是:

  1. 如果我要写一个游标来删除数据,这个动作是否仍然有助于此活动的事务日志增长?我想是的,但只是为了确认。

  2. 如果#1不是一个选项,那我还能尝试什么?物理磁盘空间增加也不是一种选择。

  3. 希望我已经提供了足够的信息来获得帮助。如果需要更多,请告诉我。

    提前感谢您收到的任何帮助。

2 个答案:

答案 0 :(得分:0)

是的,用光标一次删除一行会导致同样的问题。

如上所述,只有TRUNCATE TABLE才会删除所有行而不单独记录它们。它使用较少的日志空间,但仍有一些。

答案 1 :(得分:0)

@GarethD这是一个可行的解决方案吗?

  1. 将整个数据库的完整备份执行到远程位置 - 确保可以成功还原此备份副本。
  2. 假设您希望保留2012年至今的数据,请仅输出您希望从UGCALL保留的所有数据。
  3. 确保可以成功将此导出导入到空表中,并且数据未损坏。
  4. 截断UGCALL表。截断操作完成后检查磁盘空间。
  5. 将步骤(2)中导出的数据重新导入UGCALL表并验证导入是否成功。
  6. 再次检查磁盘空间使用情况,以查看剩余空间是否足够。