1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > SQL SERVER 清理数据库日志文件踩的坑!

SQL SERVER 清理数据库日志文件踩的坑!

时间:2022-07-16 16:16:54

相关推荐

SQL SERVER  清理数据库日志文件踩的坑!

先简单带一下.ldf和.mdf区别

.mdf:数据库数据文件,存放一个数据库的数据信息。

.ldf:数据库日志文件,存放对该数据库的更新操作(增、删、改)的文件。

所在在还原数据库时很慢,还原成功后发现.ldf文件很大,然后就开始一系列骚操作!

首先开始查日志文件大小情况

dbcc sqlperf(logspace)

因为当时是直接用的之前的数据库文件还原到新的数据库上,所以按照网上的方法,一直提示:

在 sys.database_files 中找不到数据库“JY_Cfcp”的文件“JY_Cfcp_log”。该文件不存在或者已被删除。

具体原因是因为 数据库名与逻辑文件名不一致。

所以在这我再带一句,如何修改文件名,如下:

alter database '数据库名'modify file(name='原逻辑文件名', newname='新逻辑文件名')

因为同步存在的还有日志文件,所以也需要做修改

alter database ‘数据库名‘modify file(name='原逻辑文件名_log', newname='新逻辑文件名_log')

通过上面两步下面可以进入主题,代码如下:

(上面两步的坑是自己作的,一般情况不会出现):

USE[master] GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式 GO USE JY_Cfcp GO DBCC SHRINKFILE (N'数据库名_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定 GO USE[master] GO ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式 GO

最后改完可以通过以下代码进行查验

SELECT * FROM SYS.database_files WHERE type_desc='LOG' --查询当前数据库select * from sys.master_files WHERE type_desc='LOG' --查询全部

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。