• SQLSERVER 2008 R2 事务日志已满


    方法一:

    1. USE [master]  
    2.     GO  
    3.     ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT  
    4.     GO  
    5.     ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式  
    6.     GO  
    7.     USE DNName   
    8.     GO  
    9.     DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)  
    10.     GO  
    11.     USE [master]  
    12.     GO  
    13.   
    14.     ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT  
    15.   
    16.     GO  
    17.   
    18.     ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式  
    19.   
    20.     GO  

      

    方法二:

    报错:数据库 .... 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的   log_reuse_wait_desc 列

    处理办法:

    --将数据库设为简单模式。日志文件自动断开。

     alter database dbname set recovery simple

    --查看日志文件状况
     use dbname
     dbcc shrinkfile('logname')  --like  XXXX_log

    --恢复数据库模式
     alter database dbname set recovery full

     
     
     
    方法三:

    在 tempdb 数据库不发生任何活动时运行 DBCC SHRINKFILE 命令。要确保在执行 DBCC SHRINKFILE 时其他进程不能使用 tempdb,必须以单用户模式重新启动 SQL Server。有关 DBCC SHRINKFILE 的更多信息,请参见本文中在使用 Tempdb 时执行 DBCC SHRINKDATABASE 或 DBCCSHRINKFILE 的结果 一节。
    1.  确定主数据文件 (tempdb.mdf)、日志文件 (templog.ldf) 和/或添加到 tempdb 的其他文件的所需大小。确保在这些文件中使用的空间小于或等于所需的目标大小。
    2.  用查询分析器连接到 SQL Server,然后为需要收缩的特定数据库运行下列 Transact-SQL 命令:

       use tempdb
       go

       dbcc shrinkfile (tempdev, 'target size in MB')
       go
       -- this command shrinks the primary data file

       dbcc shrinkfile (templog, 'target size in MB')
       go
       -- this command shrinks the log file, look at the last paragraph.

  • 相关阅读:
    什么是多线程中的上下文切换?
    java 中有几种方法可以实现一个线程?
    什么叫线程安全?servlet 是线程安全吗?
    什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
    一个线程运行时发生异常会怎样?
    我的样式
    springboot+dynamic多数据源配置
    mybatis plus条件拼接
    springboot配置虚拟路径
    springboot+mybatis+Druid配置多数据源(mysql+postgre)
  • 原文地址:https://www.cnblogs.com/cwy173/p/5393807.html
Copyright © 2020-2023  润新知