【问题标题】:SQL server- Transaction log for database is fullSQL server - 数据库的事务日志已满
【发布时间】:2017-11-07 09:07:11
【问题描述】:

我正在尝试将一些数据插入到我在 sql server 的数据库中的表中。它有大量的数据,我说的是数百万条记录。

我不断收到错误 9002

数据库“GCVS2”的事务日志已满。寻找 找出为什么日志中的空间不能被重用,请参阅 log_reuse_wait_desc sys.databases 中的列。

当我昨天尝试插入数据时,它很好,没有问题,虽然它确实需要一些时间。

我今天又试了一次,但一直收到这个错误。我检查了我的数据库的日志文件,它的自动增量设置为 10% ,无限制。有没有办法解决这个问题?

【问题讨论】:

  • 类似的问题在 SO 和互联网上被问了无数次。怎么什么都找不到???
  • 将您的数据库设置为使用简单模式而不是完全恢复。然后缩小你的日志文件
  • Mitch,我确实阅读了线程,但无济于事,无法解决我的问题。这就是我在这里发帖的原因。

标签: sql sql-server ssms


【解决方案1】:

您可以截断事务日志。使用下面的查询

BACKUP LOG  databasename  WITH TRUNCATE_ONLY

DBCC SHRINKFILE (  databasename_Log, 1)

Check here for more details

【讨论】:

  • 可以,不然他可以拿个备份盘截断
【解决方案2】:

您需要检查数据库的Recovery 模式。把它放在Full Recovery mode。之后,确保您的数据库有一个transaction log 备份。您将需要深入研究并制定维护计划,具体取决于您的数据的重要性。这将是一个长期的解决方案。

暂时您可以使用以下DBCC 命令缩小日志文件 -

BACKUP LOG  DBName WITH TRUNCATE_ONLY
DBCC SHRINKFILE (  DBNameLog, 1)

或者您可以通过Object Explorer 进行操作。详情请参阅this 链接。但是您必须将数据库设置为Simple Recovery model 才能使用Shrink 命令

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2017-11-20
    • 1970-01-01
    • 2019-04-08
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多