收录日期:2018/12/11 04:40:35 时间:2016/05/21 14:12:32 标签:应用实例
看到一文件有10G之巨,直接删除之。因为SQLSERVER还在用,当然删除不掉。
结果启动DOS,在DOS下删除了database.ldf文件.......

结果是可想而知的........

求数据库高手帮助,如成功,送一年免费VIP贵宾帐号。提供电影,A片.............


救命啊!!! 
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

--清除日志
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)
        
在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------
得到以下结果
fileid     groupid          name  
2          0                test_log 

以上结果,fileid为日志文件ID,name为test_log

你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复  模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple

方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。

清空日志
DUMP  TRANSACTION  库名  WITH  NO_LOG  

或:

截断日志:
backup log 数据库 with no_log
然后再压缩:

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
EXEC sp_detach_db @dbname = 'database'
EXEC sp_attach_single_file_db @dbname = 'database', 
   @physname = 'c:\MSSQL\Data\database.mdf'
“一年免费VIP贵宾帐号。提供电影,A片”?!

呵呵,奖品丰厚,吸引了众多星星...
来晚了,楼上几位的方法应该可以解决了.
DUMP  TRANSACTION  库名  WITH  NO_LOG
你的奖品太吸引人了
账号多少?
谁得到,共享之

呵呵,来晚了,只有这个主意了
谁得到,共享之

呵呵,来晚了,只有这个主意了
感谢各位帮助!
恢复好后我会用短信一一通知各位的。谢谢
EXEC sp_detach_db @dbname = 'database'
EXEC sp_attach_single_file_db @dbname = 'database', 
   @physname = 'c:\MSSQL\Data\database.mdf'

按照这种方法恢复,可是.......

服务器: 消息 1813,级别 16,状态 2,行 1
未能打开新数据库 'bbs'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 'E:\webhome\SQL数据库\bbs_log.ldf' 可能有误。
你这样:

新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库
搞定了,结帐!

怎么样设置一个空白JLabel的高度?? 用vc写的,怎样用VB实现? 在哪里可以控制oracle客户端自动断开连接时间? 简单算法?看看谁会? struts在weblogic8上的部署问题 如何连接mysql USB modem如何实现自动拨号和自动断线?在线等 更正:本人申请了700余ID,准备随时解放水园 csdn的版主是不是疯了啊!为什么删除我的回复? 想写一个服务程序,用来监测数据库中的某表数据变动,请提供思路 RecordsAffected 这个参数如何解释? 重复发帖:想招一个懂ASP/ASP.NET开发的人 请问这种怪模怪样的js代码是通过什么东西编译过的? delphi7如何检测.net framework安装了没有? JBUILDER显示图片的问题 用vc写的,怎样用VB实现? 如何知道windows是否在锁定模式?? 杭州抗议人众多,临时取消阿妹演唱会 请问传感器是什么功能 和刚认识的人见面,在哪里比较合适! 一个奇怪的网页ActiveX控件问题 用VC++ 6。0 读取Access2000数据时出现错误,怎办? 怎样获取本机未使用的端口?(c#) 问题还是没解决,只好重新开贴,伙计们进来看看哪!(关于javaBean调用失败,应该是个菜鸟问题吧) 删我的贴,封我的ID,你们能堵住我的嘴,能绑住我的手吗!! 送100分,新开发的论坛,UTSpeed 极速论坛,大家多给些意见。 -----在北京的外地朋友必看.强烈建议!!!!!!!! 请教session中的代码 【说起来】ginger、封杀、政治贴 关于DW的初级问题