收缩日志文件代码---改为存储过程

u010412956 2013-04-26 01:59:08
我用下面的一段sql,是可以成功收缩2008版本的日志文件大小,假如需要收缩日志文件的数据库名为bb。。
一、查出日志文件名字
SELECT file_id, name FROM sys.database_files;
查出的日志文件名为bb_log

二、在简单模式下进行
USE [master]
GO
ALTER DATABASE bb SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE bb SET RECOVERY SIMPLE
GO
USE bb
GO
DBCC SHRINKFILE (N'bb_log' , 11, TRUNCATEONLY)
GO

三、调回到完全模式
USE [master]
GO
ALTER DATABASE bb SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE bb SET RECOVERY FULL
GO

现在我想将这段代码改为存储过程,传入2个参数dbname 和logfile,比如传入上面的bb和bb_log,然后达到收缩日志文件的效果。。。
不知道这个过程应该怎么写?
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtazrael 2013-04-26
  • 打赏
  • 举报
回复
收缩的时候用simple吧,完成了以后再用full
黄_瓜 2013-04-26
  • 打赏
  • 举报
回复
引用 5 楼 u010412956 的回复:
[quote=引用 4 楼 Beirut 的回复:] 你这是闹那样,直接搞成simple 不得了
对恢复没要求,只要日志文件不要太大就行。 google了一下,把恢复模式 设为简单 ,只会记录一点点的日志,不知道是不是这样? [/quote] 没要求就设为simple吧
u010412956 2013-04-26
  • 打赏
  • 举报
回复
引用 4 楼 Beirut 的回复:
你这是闹那样,直接搞成simple 不得了
对恢复没要求,只要日志文件不要太大就行。 google了一下,把恢复模式 设为简单 ,只会记录一点点的日志,不知道是不是这样?
黄_瓜 2013-04-26
  • 打赏
  • 举报
回复
你这是闹那样,直接搞成simple 不得了
發糞塗牆 2013-04-26
  • 打赏
  • 举报
回复
从数据库管理角度,他们这个需求就表明没有管理好数据库,日志本来就不应该频繁收缩,而且如果哪个手痒去执行,说不定整个系统会非常缓慢,再者你这个是无论大小完全收缩到最小,万一ldf到了几十G,一下子收缩,十几个小时都完成不了,这个应该让管理员去做。
u010412956 2013-04-26
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
动态可能也不行,因为你要use 又要go,又不能再同一行。非要这样做吗?维护计划不是有这个选项?
我以前没接触过sqlserver,这是我在网上找的并实验成功的,感觉不错。 现在客户需要我弄个过程,传入数据库名字和日志文件名。。。只要达到能收缩日志文件的目的就可以,不一定要用我这个代码。
發糞塗牆 2013-04-26
  • 打赏
  • 举报
回复
动态可能也不行,因为你要use 又要go,又不能再同一行。非要这样做吗?维护计划不是有这个选项?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧