sql server 2000、2008 删除日志,收缩LDF文件

转载 2014年12月10日 13:51:46
sqlserver 2000、2008会保存所有的数据库操作过程,将指令保存在ldf文件中,如果误删除数据,想恢复数据的话,可以通过Lumigent Log Explorer For SQLServer 软件分析ldf文件,可以看到所有执行过的insert、update、delete数据,导出来再逆向执行即可,本人曾经用过一回,确实奏效。

1、sql server 2000清理数据库日志

USE 数据库名

DUMP  TRANSACTION  数据库名  WITH  NO_LOG BACKUP LOG 数据库名 WITH NO_LOG DBCC SHRINKFILE(2)

SHRINKFILE(2),后面的2是file_id,可以在当前数据库用select * from sysfiles看得到,看数据库的log文件的fileid是多少,正常情况下log的ldf文件是2,mdf文件的fileid是1。
这个查询语句可以随时执行,不影响数据库的运行。

sql server 2005、2008清理数据库日志

USE 数据库名
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE
ALTER DATABASE 数据库名 SET RECOVERY FULL
DBCC SHRINKDATABASE(数据库名,0)
这个查询语句可以随时执行,不影响数据库的运行。
清理ldf的操作可以使用sql server代理,每天自动执行一次,就不怕文件增长撑爆硬盘了。
2、一般mdf用不着收缩,收缩多了容易产生文件碎片,因为delete数据之后,mdf文件中可用页面空间会保留在那里,等下次有新数据进来时,会继续使用。如果实在要清理,可以参考下面的语句:
sql server 2000、2005、2008 收缩mdf文件

DBCC SHRINKDATABASE(数据库名) DBCC SHRINKFILE(1,0) DBCC UPDATEUSAGE(0)

执行上述操作后,你会发现mdf的文件减少了,ldf的文件增大了,再用上面1的日志清理操作一次即可。
3、最后再附送一个查看数据表的行数、占用文件空间、存储情况的查询语句

-- drop table #test create table #test( name varchar(50), rows int, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20) ) set nocount on insert into #test EXEC sp_MSforeachtable @command1="sp_spaceused '?'" select * from #test order by cast(replace(reserved,'KB','') as int) desc

 

 

 

http://fangzi2048.blog.163.com/blog/static/19526539120120723125718/

SQL Server 控制Ldf文件的大小

SQL Server 控制Ldf文件的大小(清理历史记录 &设定自动缩小) *清理历史记录 1. 在SQL Server Enterprice Manager(企业管理器)工具列---进入 SQL Q...

如何清理LDF文件

如何清理LDF文件LDF文件太大了,在网上找一下,有很多方法,但好多在SQL 2005下,没有成功。最后用这个SQL搞定了。脚本如下: declare @db nvarchar(20)set @db=...

SQL SERVER LDF日志文件太大的解决方法

如何压缩日志及数据库文件大小 /*--特别注意 请按步骤进行,未进行前面的步骤,请不要做后面的步骤 否则可能损坏你的数据库. 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步...

VS 延迟通知解决办法

用devenv.exe /resetuserdata 恢复Visual Studio 初始状态 我最近发现,解决方法是,在任务管理器里,把由vs打开的所有iexplorer.exe进程统统杀掉就可以了...

sql 循环插入20万条数据

DECLARE @number INT  SET @number = 200000    WHILE @number > 0  BEGIN      INSERT dbo.Article ...

sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法

关键词:SQL Server数据库文件恢复技术 SQL Server日志文件丢失的恢复方法  SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另...

sql server2008mdf和ldf文件连接数据库

昨天接收了机房收费系统的参考资料后,不觉感到一丝压力。先不说这次只有结构没有源码,甚至连我们熟悉的dsn文件都没有,只有mdf文件和ldf文件,这可要怎么连接数据库啊,直接运行就出现下面的错误提示。 ...
  • jhrwerw
  • jhrwerw
  • 2014年09月07日 20:03
  • 173

SQL Server数据库备份恢复-拷贝数据库文件mdf和日志文件ldf

SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。...

SQL Server 2000数据库LDF损坏,只有mdf的恢复

SQL Server 2000数据库LDF损坏,只有mdf的恢复         SQL Server 2000数据库文件遭到破坏的现象经常出现,数据库出错是否可以修复呢?答案是可以的,本日志以一个s...

压缩SQL SERVER200的LDF文件

  • 2010年09月13日 21:26
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql server 2000、2008 删除日志,收缩LDF文件
举报原因:
原因补充:

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