SQL Server日志文件过大的处理

数据库版本:  Microsoft SQL Server 2008 R2 (10.50.1600.1 )

问题: sqlserver 日志文件过大,磁盘空间不够,影响正在服务

 
现象:SQL Server 2008 R2 版本的 数据库显示“数据库可疑”。然后,备份数据库的mdf、ldf文件,再删除该数据库,重新附加数据库,但附加失败了。直接附加mdf文件,也失败,报错1813。


解决步骤:
A.使用默认方式建立一个供恢复使用的数据库(如test)。
B.停止数据库实例服务。
C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
D.启动数据库服务器。此时会看到数据库test不可访问。
E. ALTER DATABASE <dbname> SET EMERGENCY
F. ALTER DATABASE <dbname> SET SINGLE_USER
G. ALTER DATABASE <dbname> REBUILD LOG ON (NAME=dbname_log, FILENAME='E:\XXX\测试\dbname_log.ldf')
    执行后,会有警告信息“警告: 数据库 'xhtyjbbs' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。”
H. DBCC CHECKDB(<dbname>, REPAIR_ALLOW_DATA_LOSS) 
I. ALTER DATABASE <dbname> SET MULTI_USER
J. ALTER DATABASE <dbname> SET ONLINE 


==========================================================================
下面是针对自己的库的sql语句
alter database MG_IOVDB_V6 set emergency

alter database MG_IOVDB_V6 set single_user

alter database MG_IOVDB_V6 rebuild log on (name = MG_IOVDB_V6_log, filename='D:\db\MG_IOVDB_V6_log.ldf')

DBCC CHECKDB(MG_IOVDB_V6, REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE MG_IOVDB_V6 SET MULTI_USER
 
ALTER DATABASE MG_IOVDB_V6 SET ONLINE
======================================================================== 
 


----将数据库中的密码提取出来
select 'update std_userinfo set UserPass = ''' + UserPass + ''' where UserID=' + CAST(UserID as varchar)
from std_userinfo where isdeleted = 0  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值