傻大方


首页 > 知识库 > >

sql|sql数据库日记文件满造成数据库不能保存数据的处理方法( 三 )


按关键词阅读: 数据库 SQL 方法 处理 数据 保存 不能 造成 文件 日记


其实不是 , 需要再执行以下数据库收缩 , 这时候日志文件就会回复到初始大小,默认就是1MB 。
收缩数据库的语句是:DBCC SHRINKDATABASE (需要收缩的数据库名称,TRUN 。

14、CATEONLY)但是这样还不行 , 考虑日志是恢复和保证数据一致性重要信息 , 那么万一数据库碰到问题就麻烦了 , 所以应当立即备份 。
考虑以上操作 , 觉得可以写一个通用的脚本 , 把这几个步骤放到一起来 , 保证备份到固定位置 。
于是就编写如下脚本 。
-Author:ETZRP-Date:2009-01-07-Useage:Remove Log and Backup DB-截断日志DUMP TRANSACTION 要操作的数据库 WITH NO_LOG-收缩数据库DBCC SHRINKDATABASE (要操作的数据库,TRUNCATEONLY)-备份数据库goUSE master declare Version v 。

15、archar(20)declare DateAppend varchar(20)declare BasePath varchar(200)declare BakPath varchar(200)-设定备份的基本目录set BasePath=D:SQL_Data-设定版本 , 每个版本的备份放在不同的地方set Version=V1.0.5-生成形如20090107这样的时间串set DateAppend=ltrim(str(year(getdate()if(month(getdate()10)set DateAppend=DateAppend+0set DateAppend=DateAppend+ 。

【sql|sql数据库日记文件满造成数据库不能保存数据的处理方法】16、ltrim(str(month(getdate()if(day(getdate()10)set DateAppend=DateAppend+0set DateAppend=DateAppend+ltrim(str(day(getdate()-设定备份的完整路径 , 奇怪的是 , 如果直接使用下面=后面的表达式会出错 。
所以新建一个变量set BakPath=BasePath+ Version +Db.Bak.+DateAppendUSE master-创建备份设备 , 如果存在则无需建立if not exists(select * from sysdevices where name=DB_Bak) begin EXEC sp_addumpdevice disk,DB_Bak,BakPathend -备份数据库BACKUP DATABASE 要操作的数据库 TO DB_Bak -备份日志BACKUP LOG 要操作的数据库 TO DB_Bak 这样这一切都可以自动完成了 , 当然可以发散一下将其改造成为存储过程 , 或者根据需要做成一个调度 。
需要注意的是 , 笔者在实践的时候的心得是使用脚本创建的还原的时候需要使用强制还原 , 因为日志都没了 。


来源:(未知)

【学习资料】网址:/a/2021/0324/0021765319.html

标题:sql|sql数据库日记文件满造成数据库不能保存数据的处理方法( 三 )


上一篇:前台|前台接待岗位职责及工作内容

下一篇:煤矿安全|煤矿安全工作计划