- 浏览: 181303 次
- 性别:
- 来自: 广州
文章分类
最新评论
今天去查询历史库存表,发现6天的记录都没有被自动保存,运行备份语句,提示"数据库xxx日志已满。请备份该数据库的事务日志以释放一些日志空间。" 网上查了下相关资料,找到下面这个最好用的,.(本人只试过了前三步就OK了,后面的方法未验证)
--压缩日志及数据库文件大小
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
--*/
1.清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小(sql2000和sql2005类似)
右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = 'pubs'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--压缩日志及数据库文件大小
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
--*/
1.清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小(sql2000和sql2005类似)
右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = 'pubs'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
- SQL数据库收缩工具.rar (251.7 KB)
- 下载次数: 2
发表评论
-
sqlserver 计划任务 收缩数据库日志文件
2019-06-28 15:32 1026针对之前的语句做了整合,只有日志文件大于1000M时,才进行收 ... -
Sqlserver查询数据库文件大小和剩余空间
2019-06-28 14:27 884在MS Sql Server中可以能过以下的方法查询出磁盘空间 ... -
使用job对日志文件定期处理
2019-06-28 10:35 348use master go --更改数据库模式为简 ... -
根据当前日期往前推12个月得到每月月份及年份
2019-04-24 11:39 2904效果就是: col_name data_month ... -
查看数据库中每个表的空间大小及行数
2019-04-04 16:58 415create table #t (name varcha ... -
sql语句之根据起始结束日期获取每一天、周、月、年【转】
2019-03-20 15:45 1607得到两个时间之间的每一天 create function ... -
SQL 多列转换为一行【转】
2019-03-14 11:56 1099--创建测试表 IF OBJECT_ID('test') ... -
sqlserver update或者Delete误操作恢复方法---【验证】
2018-11-08 12:32 2179高手具体方法: 原文地址:http://blog.csdn. ... -
SQL并发的问题
2018-01-15 15:55 523参考文献: https://www.cnblogs.com/C ... -
sql函数应用简单举例
2017-11-24 16:25 499返回某个字段 create function getran ... -
sql 生成不重复的随机数
2017-11-24 15:13 1977--创建视图(因为在函数中无法直接使用newid()) ... -
sql 上个月,下个月时间处理函数
2017-11-21 15:52 2889--上月的第一天 SELECT CONVERT(CHAR(1 ... -
删除当前库中所有表记录
2011-10-04 20:45 804--先禁用所有外键约束 exec sp_msforeac ... -
因为文件组primary已满,未能为数据库XX对象XX分配空间
2011-02-18 17:10 15231.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理 ... -
net use 发生系统错误67,找不到网络名
2010-12-29 10:56 16551局域网中有两台电脑 A ... -
反思SQL的or连接词
2010-12-17 18:04 1091下午在调试程序的时候一个诡异的现象,删除单据后被删除的单据依然 ... -
尝试在数据库 5 中提取逻辑页 (1:1640) 失败。该逻辑页属于分配单元XXX ,而非 XXX。
2010-12-02 16:15 4156此信息表明数据库或表 已经部分损坏可以通过以下步骤尝试修复: ... -
win7 安装sql2000
2010-11-22 11:56 1368win7下安装sql2000的要点: 1、以管理员身份运行 m ... -
关于解决SQLServer 2005安装时的COM+目录要求问题
2010-09-06 21:23 12201、开户MSDTC服务 开始-运行,输入cmd后回车,在命令提 ... -
sql 所有格式时间
2010-09-06 21:16 7341. 当前系统日期、时 ...
相关推荐
总结的如何解决SQL数据库日志已满的方法,希望对大家有帮助
sql数据库日志已满的解决办法
当前的解决方法是:把硬盘上的其他... 在查询分析器上操作: 清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 解决SQL数据库日志已满的问题 1、右键数据库→属性→选项→
数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的 解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限。 ...
数据库tempdb的日志已满数据库tempdb的日志已满
数据库日志清理数据库日志清理数据库日志清理
数据库日志维护手册,数据库日志维护手册,数据库日志维护手册。数据库日志维护手册.
解决SQL数据库日志已满的问题.txt
处理数据库日志过大问题处理数据库日志过大问题处理数据库日志过大问题处理数据库日志过大问题
oracle数据库日志查看方法,排查错误。
SQL数据库日志清理工具
教程名称:手把手教你整理自己的SQL Server日志课程目录:【】MSSQL数据库日志满的快速...教你如何清除SQL日志【】数据库日志已满解决办法【】通过sqlserv 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
数据库日志收缩脚本,适用于SQL server 2005, 2008, 2012
MSSQL_server数据库日志满的快速解决办法 MSSQL_server数据库日志满的快速解决办法
SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志 清理 工具SQL 2000 数据库 日志...
sqlserver压缩数据库日志文件
MSSQL数据库日志清理工具支持SQL2000/2005/2008/2012/2014/2016版本。也可以备份数据库日志。选择数据库时若报错,请关掉程序,使用管理员权限运行即可。使用说明:1、点击选择数据库,填写数据源信息,测试成功后...
在集群环境下数据库日志文件疯狂扩张,使用此方法进行数据库日志文件清理。后期可以放到任务计划中定期进行处理
在sqlserver中如何清空数据库日志文件:当您备份一个很大的数据库时,日志对您无用时,您可以清空其日志。