MS SQL Server事务日志压缩与删除

原创 2006年06月05日 23:34:00

    方法一:

    第一步:
    backup log database_name with no_log
    或者 backup log database_name with truncate_only 
    -- no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。

    第二步:
    1.收缩特定数据库的所有数据和日志文件,执行:
       dbcc shrinkdatabase (database_name,[,target_percent])
        -- database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。

    2.收缩一次一个特定数据库中的数据或日志文件,执行
       dbcc shrinkfile(file_id,[,target_size])
       -- file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.

    方法二:

    第一步:
    先备份整个数据库以备不测  。
                                                                    
    第二步:
    备份结束后,在Query Analyzer中执行如下的语句:
    exec sp_detach_db yourDBName,true
    --卸除这个DB在MSSQL中的注册信息

    第三步:  
    到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录

    第四步:
    在Query Analyzer中执行如下的语句:
    exec sp_attach_single_file_db yourDBName,'d:/mssql/data/yourDBName_data.mdf '
     --以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。
 
    方法三:

    1. 进入企业管理器,选中数据库,比如demo

    2. 所有任务->分离数据库

    3. 到数据库文件的存放目录,将MuOnline_log.LDF文件删除,以防万一,你可以拷出去

    4. 企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。

    5. 记得数据库重新附加后用户要重新设置一下。

    如果以后,不想要它变大:

  SQL2000下使用:

  在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

  或用SQL语句:

  alter database 数据库名 set recovery simple


相关文章推荐

SQL Server中收缩、清空和删除数据库文件及日志文件

一、简单方法  –SQL Server收缩方法  1、右键数据库→属性→选项→故障还原模型→设为简单→确定;  2、右键数据库→所有任务→收缩数据库→确定;  3、右键数据库→属性→选项→故障...

SQL Server中收缩、清空和删除数据库文件及日志文件

一、简单方法 –SQL Server收缩方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还...
  • wlming6
  • wlming6
  • 2015年06月15日 11:29
  • 6232

SQLServer中事务日志已满的原因以及解决办法

SQLServer中事务日志已满的原因以及解决办法 错误描述:数据库的事务日志已满。若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_des...

SQLServer:删除log文件和清空日志的方法

原文地址:http://www.cnblogs.com/rainman/p/3469225.html 1、删除LOG2. 清空日志3. 收缩数据库文件4. 截断事务日志 ...

MS-SQL日志文件过大时应该做的

MS SQL 日志文件过大

MS sql server数据库设置自动清除事务日志的方法

--清除日志 方法1、 --在查询分析器,选中所要清理日志的数据库,执行如下SQL backup log 数据库名 with no_log DBCC SHRINKFILE ( 日志...

MS SQL Server数据库事务锁机制分析

锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。目前,大多数数据库管理系统都或多或少具有自我调...

MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)

----------------- 【1】 use master go sp_configure 'allow updates',1 reconfigure with override go --...
  • dxnn520
  • dxnn520
  • 2012年06月18日 11:23
  • 10852

ms sql server 2005数据库日志文件过大,需要清除或者清空

数据库:ms sql server 2005 任务:ms sql server 2005数据库日志文件过大,需要清除。 方法: backup log [你的数据库名称] WITH N...
  • joyhpo
  • joyhpo
  • 2012年09月12日 15:48
  • 221

ms sql server缓存清除与内存释放

Sql Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行Sql Server的系统内存往往居高不下。这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MS SQL Server事务日志压缩与删除
举报原因:
原因补充:

(最多只允许输入30个字)