社区
MS-SQL Server
帖子详情
小问题,数据库日志已満要作些什么操作???
littlecainiao
2003-12-13 12:15:54
[Microsoft][ODBC SQL Server Driver][SQL Server]数据库 'Budget' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
我以前没备份过,虽然在书上看到了操作语句,但还不放心做,还是上来问问高手。
...全文
35
8
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
8 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
boydgmx
2003-12-15
就用 txlicenhe(马可) 的,没问题,我刚刚还用过呢
打赏
举报
回复
赞
zjcxc
元老
2003-12-15
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
打赏
举报
回复
赞
littlecainiao
2003-12-15
现在日志已満,我不能修改表了,
具体要怎样做即能修改表又能以后遇到问题时能恢复数据 ?
我执行了 backup log 库名 with no_log 还是不能修改表。
是不是要删除日志才能啊: DUMP TRANSACTION 库名 WITH NO_LOG
这样以后会有什么问题吗?
打赏
举报
回复
赞
lanshen
2003-12-13
把日志文件设为大小不受限制,或重建一个日志,或收缩数据库
打赏
举报
回复
赞
zjcxc
元老
2003-12-13
1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
4: 如果想以后不让它增长
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
打赏
举报
回复
赞
txlicenhe
2003-12-13
1: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M
打赏
举报
回复
赞
dlpseeyou
2003-12-13
通过企业管理器,收缩数据库
打赏
举报
回复
赞
97866
2003-12-13
转:
如何使Microsoft SQL Server的日志文件不会增大?
先介绍一个简单的方法。
就是把数据库的故障还原模型设置为“简单”(SQL2K)。这样它就会在Checkpoint的时候截断日志。
具体操作方法是:
1、在Enterprise Manager中右键点数据库,“属性|选项|故障还原”,选择“简单”就可以了,如果是SQL7,在“属性|选项”中有一个“trunc. log on chkpt. ”,选中就可以了。
2、如果不想用Enterprise Manager,在Query Analyser或者isql里面执行
EXEC sp_dboption 'your_dbname', 'trunc. log on chkpt.', 'TRUE'
就可以了
但是,要注意的是,这样做了之后,虽然日志不会增大,但是也意味着你一旦出现误操作,将不会有利用日志恢复的机会。(如何利用日志来恢复请参见精华区的FAQ)
所以,绝对不建议在生产数据库上截断日志,除非你有充足的理由和足够的把握,或者……
承担责任的不是你。
既然这种方法不安全,下面我将介绍一种安全的方法。
大家都知道,SQL Server 在完成事务日志备份时将自动截断事务日志中的不活动部分。这些不活动的部分包含已完成的事务,因此在恢复过程中不再使用。相反,事务日志的活动部分包含仍在运行但尚未完成的事务。SQL Server 将重新使用事务日志中这些截断的非活动空间,而不是任由事务日志继续增大并占用更多的空间。
所以,我们备份事务日志就可以使日志文件不再增大了。
但是呢,日志文件一直放着也不是个办法,删除呢,又会失去恢复的可能性。
我们可以结合完全备份来做。做过完全备份之前的事务日志就可以删除了。
比如说,一个备份计划,每天一次完全备份,保留7天内的,每15分钟一次事务日志备份,保留2天的。
用数据库维护计划向导可以很方便的建立备份计划,不过一定要记得设置保留多久的备份哦,否则硬盘空间被备份给占满了就坏事了。
打赏
举报
回复
赞
相关推荐
旅行代理
数据库
设计
一个旅行代理机构希望为他的消费者假日登记行为建立一个
数据库
。消费者在公司登记假期旅行。每个假期活动中一般都有飞机航班和食宿。在接受登记后,假日旅游的账单就会发给用户。
架构的演变和为什么
要
使用NoSQL
文章目录1:单机MySQL的美好年代2:Memcached(缓存)+MySQL+垂直拆分3:MySQL主从读写分离4:分表分库+水平拆分+MySQL集群5:MySQL扩展性瓶颈6:今天是什么样子7:为什么使用NoSQL7.1 NoSQL是什么7.2 NoSQL
数据库
的...
Redolog
日志
文件删除恢复
Redolog
日志
文件删除恢复 1.查看当前重做
日志
组及成员个数状态 SQL> select GROUP#,MEMBERS,STATUS from v$log; GROUP# MEMBERS STATUS ---------- ---------- -------------------------------- 1 1 ...
SpringBoot2整合ElasticSearch(包含ElasticSearch入门+spring-boot-starter-data-elasticsearch)
作为互联网热点知识的ElasticSearch,怎能不学。如果你有空余时间,欢迎入门;...走过如果不
要
错过,这是一篇自我感觉相对对入门者来说比较全面的文章了,希望对大家有帮助,有什么疑问或者建议欢迎留言讨论。
今天搞定一个自认为很怪得
问题
折腾了我两天,总算是把个组件得
问题
给搞定了,呵呵,高兴一下。下面详细叙述一下该事件。 两天前去给一个客户那里得服务器上配一个网站,那个客户本来也是个技术牛人,所以不敢有一点怠慢。上午折腾了半天,配好后...
发帖
MS-SQL Server
微信扫一扫
点击复制链接
分享社区
下载分享明细
3.3w+
社区成员
25.4w+
社区内容
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
帖子事件
创建了帖子
2003-12-13 12:15
社区公告
暂无公告