如何删除SQL SERVER中的日志文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除SQL SERVER中的日志文件相关的知识,希望对你有一定的参考价值。
先分离要删除日志文件所属数据库,再查看该数据库的属性,找到文件位置,删除后缀名为“_log.ldf”的文件即可 参考技术A 1、分离数据库。分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。
2、删除LOG文件
3、附加数据库,附加的时候会提醒找不到log文件。
附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。
也可以通过命令才完成以上的操作:
use master;exec sp_detach_db @dbname='TestDB';exec sp_attach_single_file_db @dbname='TestDB',@physname='D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf' 参考技术B 用T-SQL是最快最便捷的方法。T-SQL语法如下:
BACKUP LOG DBName WITH TRUNCATE_ONLY
DBCC SHRINKFILE ('DBName_log', 2)
--以上T-SQL中
--DBName :数据库的逻辑名称
--DBName_log:log的逻辑名称
如有问题请留言.... 参考技术C 答案很好
SQL Server2008 如何附加没有日志文件ldf的数据库mdf?
SQL Server2008 如何附加没有日志文件ldf的数据库mdf?
可以直接附加,如果只有mdf文件没有日志文件,系统会自动产生一个日志文件。 参考技术A DB:Microsoft SQL Server 2008 R2 (10.50.1600)现象:SQL Server 2008 R2 版本的数据库没有ldf文件,直接附加mdf文件。
解决步骤:
1.使用默认方式建立一个供恢复使用的数据库(如dbname)。
2.停止数据库实例服务。
3.将刚才生成的数据库的日志文件dbname_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件dbname.mdf。
4.启动数据库服务器。此时会看到数据库dbname不可访问。
5. ALTER DATABASE <dbname> SET EMERGENCY
6. ALTER DATABASE <dbname> SET SINGLE_USER
7. ALTER DATABASE <dbname> REBUILD LOG ON (NAME=dbname_log, FILENAME='E:\XXX\xxx\dbname_log.ldf')
执行后,会有警告信息“警告: 数据库 'dbname' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。”
8. DBCC CHECKDB(<dbname>, REPAIR_ALLOW_DATA_LOSS)
9 ALTER DATABASE <dbname> SET MULTI_USER
10. ALTER DATABASE <dbname> SET ONLINE
大功告成! 参考技术B 新建一个数据库,把名字和这个MDF文件一样,停止数据库,将mdf覆盖你的新建的数据库,然后重新启动 参考技术C 附加的时候删除日志连接就行了
以上是关于如何删除SQL SERVER中的日志文件的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 清空删除日志文件(瞬间日志变几M)