在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>技术论坛>数据库技术>F0134175 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入

论坛首页
|--web开发
   |--ASP
   |--JSP
   |--ASP.net
   |--DHTML
   |--RUBY
|--软件开发
   |--C++
      |--Code here
   |--JAVA
   |--VB
   |--Delphi
   |--XML
|--.net技术
   |--C#
   |--VB.net
|--Yup开发组
|--站务&投诉
   |--站长专区
|--硬件&网络
|--休息室
|--数据库技术
 进入精华区 我要发言



 LOG太大,導致空間不夠back to 数据库技术 forum  
作者:ziyi572,6级分数:20
日期:2005/2/16 12:54:00类别:数据库技术, 技术问题
回复:7次浏览:2480次
状态:已结贴 [firefly(20)]

關於數据庫的日志文件太大,大到硬盤空間不夠存儲,除了可以收綜數据庫外,能否使日志文件(LOG)的一部分分割出來,以減輕對盤符空間的占有.

reply[F0134175]
 



 
 re [1] LOG太大,導致空間不夠数据库技术 forum  
- firefly05-02-16 16:34  

上次的方法效果如何?

这种情况下,应该做一个维护计划,定期对数据库进行整理.你可以看看企业管理器里面的"管理|数据库维护计划",应该可以满足你的需求

reply[F0134177]
 



 
 re [2] LOG太大,導致空間不夠数据库技术 forum  
- ziyi57205-02-17 08:34  

它主要是c盤空間不夠,只有10G,而現在就只有100多M了,過我想用警報功能,
那里有,如果日專滿的話(到達80%),可以有Email通知管理員.
不過也沒通知批準,不過還是謝謝你
,這樣說,分割log日志文件是行不通的吧.我的想法是把日志文件分割一部份放到其它盤上,不知還有其它方法沒有,有的話,請告之,謝謝你了
還有我看過維護計劃了,那里只有提到數据庫備分,日志備份
沒有提到如果日志太大,如何清除,我現在的問題是日志太大,沒有空間讓它存放,
能否刪除一部分無用的日志,上次我用了backup log -nolog 書上說是可以刪除無用的日志的,可是用了以后,好像不太行.

reply[F0134185]
 



 
 re [3] LOG太大,導致空間不夠数据库技术 forum  
- firefly05-02-17 09:27  

先澄清一下概念。

想释放日志物理空间,就必须先截断日志,然后收缩。日志截断在下列情况下发生:

1.执行完 BACKUP LOG 语句时。

2.在每次处理检查点时(如果数据库使用的是简单恢复模式)。

关于详细内容,可以参看sql server的帮助。

所以我说先backup,然后shrink。其中第一步目的是通过截断挖掘现有日志可用空间使之重新可用,第二步则是回收空间。大多情况下,步骤二是不必须的,也就是说,只需要让日志不增长即可。所以,只要用维护计划定期来备份日志,就可以达到目的了。当然,也可以计划任务执行
BACKUP LOG ... NO_LOG
或者
BACKUP LOG ... TRUNCATE_ONLY
来达到仅仅截断日志的目的。

good luck!

reply[F0134188]
 



 
 re [4] LOG太大,導致空間不夠数据库技术 forum  
- ziyi57205-02-17 14:55  

首先,非常感謝firefly的幫助!
其資,我想表述一下,我的執行方案,還望看看是否合理 :
  1.清理數据庫中無用的TABLE
  2.清除非活動部分的日專,用如下命令:
    Backup Log  sfef2k  NO_LOG
  3.之后,壓縮數據庫,用如下命令:
    Dbcc shrinkdatabase (sfef2k,20)

但還有兩點不太清楚:
  1.用 no_log參數清除非活動日志前,是否需要像 TRUNCATE_ONLY
    一樣完整備份數据庫一次,執行之后,是否也需要完整備份一次?
  2.上述說到壓縮到可用空間有20%,但我現的數据庫的可用空間只有
    1%了,在書上看到說指定壓縮的百分比(20%)如果大於備份前的
    可用空間比率(1%)是不會被壓縮的,如果指定的壓縮比小於1%,則
    達不到效果?
 
  還請再次勞駕看看,謝謝!

reply[F0134200]
 



 
 re [5] LOG太大,導致空間不夠数据库技术 forum  
- firefly05-02-18 09:13  

对,是这个样子。


1。TRUNCATE_ONLY等于NO_LOG,是一个意思。就是不备份,光清理。

2。至于最终shrink效果,取决于截断操作的后果,也就是逻辑日志的大小。如果截断后可用空间足够多,就不会有问题。

关于收缩的说明:
减小大小的单位是一个虚拟日志文件。例如,如果有个 600 MB 的日志文件被分成了 6 个 100 MB 的虚拟日志,则该日志文件的大小只能按 100 MB 递减。比如,文件可以减小到 500 MB 或 400 MB,但不能减小到 433 MB 或 525 MB。

这部分具体说明参见sqlserver help的
事务日志:收缩
这个索引。我这里的位置是:

mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\architec.chm::/8_ar_da2_1uzr.htm

reply[F0134208]
 



 
 re [6] LOG太大,導致空間不夠数据库技术 forum  
- ziyi57205-02-18 13:51  



firefly我還想問幾點:

1.no_log可以清理非活動的日志記錄,這里指的非活動指得是离當前
    時間最遠的那些日志記錄嗎?

2.我用 DUMP  TRANSACTION  ?名  WITH  NO_LOG 這
    個命令來清空日專后,如果再用backup log database_name no_log
  來備份現有的日志,因為no_log是截熂日志文件,那這個動作之后的數据交
    易是不是不會記錄到日志文件中去了?

3.据說通過分离數据庫,把日志文件刪除,再附加數据庫,會產生的一個新的 
  log文件的方法可以減小物理磁盤空間,我不知道確不確定,還請向firefly
  求教!多謝,煩擾之處,盡請見諒!

reply[F0134213]
 



 
 re [7] LOG太大,導致空間不夠数据库技术 forum  
- firefly05-02-19 16:03  

事务日志是用于恢复事务的,当数据写入磁盘后,事务就没法回滚,也就是说,最小恢复 LSN (MinLSN)之前的事务已经无法回滚,也就没有活性了。他的作用并不是记录操作本身,而是记录trans的中间状态。

所以,我们的目的只是通过某个操作实现截断。只要不活动部分够大,就可以实现物理空间的释放。

因此分离以后再处理一定是可以的。因为这时候,数据已经存盘,没有活动日志了。不过在运行期,最好的办法,还是尽快释放事务(commit, rollback),并且定期截断、收缩。

reply[F0134224]
 



您的位置
  (c)2000-2019 Yup Studio, all rights reserved.  
109.375