收缩SQL Server 事务日志及数据库文件大小

刘帝勇 sql server 事务日志 收缩 it

    我们经常会发现日志文件已经非常大了,导致磁盘空间不足,收缩日志文件又不管用,怎么办?可以参考如下步骤:
  
  1.清空日志 
  DUMP     TRANSACTION     库名     WITH     NO_LOG            
  2.截断事务日志: 
  BACKUP   LOG   库名   WITH   NO_LOG    
  3.收缩数据库文件(如果不压缩,数据库的文件不会减小)
  企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 
  --选择日志文件--在收缩方式里选择收缩至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    '库名' 
  
  b.删除日志文件 
  
  c.再附加 
  EXEC   sp_attach_single_file_db   @dbname    '库名',   
        @physname    'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\库名.mdf' 
  
  5.为了以后能自动收缩,做如下设置: 
  企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" 
  
  --SQL语句设置方式: 
  EXEC   sp_dboption   '库名',   'autoshrink',   'TRUE' 
  
  6.如果想以后不让它日志增长得太大 
  方式1:
  企业管理器--服务器--右键数据库--属性--事务日志 
  --将文件增长限制为xM(x是你允许的最大数据文件大小) 
  
  --SQL语句的设置方式: 
  alter   database   库名   modify   file(name=逻辑文件名,maxsize=20)   
  方式2:
  SQL2000及以上版本下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。 
  --SQL语句的设置方式:
  alter   database   数据库名   set   recovery   simple

注意:
  
  请按步骤进行,未进行前面的步骤,请不要做后面的步骤 
  否则可能损坏你的数据库.   
  
  一般不建议做第4,6两步 
  第4步不安全,有可能损坏数据库或丢失数据 
  第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. 


相关推荐

  • 关于修改Mysql数据库文件大小限制解答 关于修改mysql数据库文件大小限制解答,跃途网络科技南宁网站建设在用phpmyadmin导入mysql数据库时,遇到10M的数据库不能导入,mysql数据库最大只能导入2M..phpmyadmin数据库导入出错:Youprobablytr
  • SQL Server 数据库文件存放在何处 效数据库系统是数据库良好物理和逻辑设计的产品。充分理解数据库系统设计之前,必须对数据库服务器使用的文件有深刻理解,并且对文件配置的硬件也应有很好理解。SQLSever数据库引擎使用两种类型的文件:data文件和Log文件。下面是这两种文件类
  • Android 数据库文件怎样跟apk一起发布?该怎么处理 我的程序有几个sqlite3文件,每个大约2M或3M,怎么样把他们打包进apk一起发布并且不泄露给用户数据库源文件呢?网上搜了相关的解决方案,有种说法是用InputStream打开raw下面的数据库文件,然后用outputStream输出到
  • ecstore 数据库文件(dbschame)文件详解 字段类型运行结果备注moneydecimal(20,3)default0.00…emailvarchar(255)使用dbeav的save时会验证是否是email类型的数据如果不是将抛出异常bnvarchar(255)商品的货号货品的货号,
  • mysql 数据库文件导入和更新删除 linux环境的搭建:http://linux.cn/article-571-1.html一、文件的移动1、文件的复制cpdm.sql/home/work2、文件的删除rmdm.sql3、文件夹的删除有提醒rm-rdm.sql4、文件夹的删
  • MySql数据库文件frm的移植 (ERROR 1146 (42S02): Table 'xxx.xxxx&#03 在实际开发中对于MySQL数据库进行移植发生的问题来说下.开始把本地data中的数据库文件拷贝到另一台机子上Test,执行showtables;可以看到数据库表,但是对表进行任何操作都报错:表不存在,原以为Mysql的数据库文件(.frm)
  • SQL Server2000数据库文件损坏时如何恢复 SQLServer2000数据库文件损坏时如何恢复出现这样的问题是比较严重的了,能否修复只能看你的运气……SQLServer2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,仅适用于非master,msdb的数据库。说明如下:1
  • SQL Server2000数据库文件损坏时如何恢复 SQLServer2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办。以下是笔者以前的笔记。仅适用于非master,msdb的数据库。说明如下:1建一个测试数据库test(数据库类型为完全)2建一个表,插入点记录cr
  • mysql导入数据库文件最大限制更改解决方法:You probably tried to upload too large fil 最近一次在用phpmyadmin导入mysql数据库时,偶的15M的数据库不能导入,mysql数据库最大只能导入2M..phpmyadmin数据库导入出错:Youprobablytriedtouploadtoolargefile.Pleas
  • oracle中导入导出dmp数据库文件语句使用 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用
  • 把mdb数据库文件还原成sql数据库 呵呵,有经验了,上次同学给我一个文件,连后缀名都没有,说还原成sql数据库,呵呵,查看了资料解决了。首先要知道,还原的数据库名称是什么,2.创建该数据库3.给那个文件加个后缀名.bak就行核心步骤:在sqlserver2005中直接右击数据
  • Oracle数据库文件误被删除挽救措施 我们都知道回滚段就是数据库中的一部分,它主要的作用就是记录Oracle数据库的变更相关信息。使这些相关信息实现Oracle数据库的读一致性以及Oracle数据库恢复。若回滚段出现故障,则数据库不能正常启动,导致数据库瘫痪,用户无法读写数据。

你的评论

就没有什么想说的吗?

最新博客

关于我们 免责声明 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X