SQL Server数据库收缩日志的方法:
方法一
一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大。
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存。
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。
方法二
以下为引用的内容:
set nocount on
declare @logicalfilename sysname,
        @maxminutes int,
        @newsize int
use     tablename            
-- 要操作的数据库名
select  @logicalfilename = 'tablename_log', 
-- 日志文件名
@maxminutes = 10,              
-- limit on time allowed to wrap log.
        @newsize = 1                 
-- 你想设定的日志文件的大小(m)
-- setup / initialize
declare @originalsize int
select @originalsize = size
  from sysfiles
  where name = @logicalfilename
select 'original size of ' + db_name() + ' log is ' +
        convert(varchar(30),@originalsize) + ' 8k pages or ' +
        convert(varchar(30),(@originalsize*8/1024)) + 'mb'
  from sysfiles
  where name = @logicalfilename
create table dummytrans
  (dummycolumn char (8000) not null)

declare @counter   int,
        @starttime datetime,
        @trunclog  varchar(255)
select  @starttime = getdate(),
        @trunclog = 'backup log '
 + db_name() + ' with truncate_only'
dbcc shrinkfile (@logicalfilename, @newsize)
exec (@trunclog)
-- wrap the log if necessary.
while     @maxminutes > datediff
(mi, @starttime, getdate()) -- time has not expired
      and @originalsize =
(select size from sysfiles where name = @logicalfilename) 
      and (@originalsize * 8 /1024) > @newsize 
  begin -- outer loop.
    select @counter = 0
    while  ((@counter < @originalsize / 16) and (@counter < 50000))
      begin -- update
        insert dummytrans values ('fill log') 
        delete dummytrans
        select @counter = @counter + 1
      end  
    exec (@trunclog) 
  end  
select 'final size of ' + db_name() + ' log is ' +
        convert(varchar(30),size) + ' 8k pages or ' +
        convert(varchar(30),(size*8/1024)) + 'mb'
  from sysfiles
  where name = @logicalfilename
drop table dummytrans
set nocount off

转载于:https://blog.51cto.com/aizzw/425347

SQL Server数据库收缩日志的方法相关推荐

  1. SQL Server 数据库清除日志的方法

    方法一: 1.打开查询分析器,输入命令  BACKUP LOG database_name WITH NO_LOG  2.再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件- ...

  2. asp教程连接sql server数据库教程二种方法

    asp教程连接sql server数据库教程二种方法  ,sql server ole db连接方法:,本人链接sql2012已经成功,想可以帮助大家 本教程主要是讲了asp与mssql server ...

  3. 正文内容 SQL Server 数据库清除日志

    SQLSERVER的数据库日志占用很大的空间,下面提供三种方法用于清除无用的数据库日志文件 方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_L ...

  4. SQL Server数据库六种数据移动方法

    1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...

  5. 编写SQL Server数据库对象脚本的方法

    In this article, we will explore various ways for scripting SQL Server database objects. 在本文中,我们将探索编 ...

  6. sql server数据库导入导出bcp方法

    微软的官方文档: http://msdn.microsoft.com/zh-cn/library/ms162802.aspx 以下示例均在sql server 2005上测试过,完全ok可用的. 1. ...

  7. SQL Server 2008 收缩日志 清空删除大日志文件

    SQL2008 的收缩日志  由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消: (SQL2005) BackupLog DNName ...

  8. sql server数据库事务日志已满请参阅log_reuse_wait_desc怎么解决?

    数据库使用时,莫名其妙出现关于事务日志已满的报错.具体报错如下: 数据库中的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc ...

  9. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

最新文章

  1. iOS项目预处理器环境变量设置
  2. 如何给腾讯云域名申请免费的SSL证书
  3. Java的HashCode,Equal和==
  4. python绘制余弦曲线散点图_python中如何用matlibplot画正弦曲线?
  5. 安装详细步骤win7_windows安装器怎么安装原版win7【详细教程】
  6. python wx包_python的wxpython包
  7. 《JavaScript权威指南》读书笔记一
  8. 科技部再公布网络安全等10项国家重点研发计划
  9. javawebJSP餐厅点餐系统源码JSP点餐系统JSP网上订餐系统JSP在线订餐系统JSP外卖系统
  10. 非常好的Struts2教程
  11. 小米8使用usb连接计算机,小米怎么连接电脑usb(小米8连接电脑看不到文件)
  12. ROS:TF,机器人坐标管理神器
  13. android tv 下载地址,Android TV获取所有的应用apk
  14. 打不开磁盘*或它所依赖的某个快照磁盘
  15. c/c++ 二分法拓展,解决函数零点问题。
  16. 数据如何变成知识,第 2 部分 数据湖和数据沼泽
  17. #小何不断努力# Day1
  18. java多态app_【Java基础】Java中的多态
  19. html圆圈里边有个c,三个c标志可以扯掉-图标含义?一个圆圈里面有三个C代表什么含义 – 手机爱问...
  20. Siri创始人正式展示Viv助手 比想象中要强大

热门文章

  1. python websocket异步高并发_Python3.5异步和多个websocket服务器
  2. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式
  3. axios get请求_Axios使用指南
  4. Linux磁盘挂载和docker安装
  5. 7/15 我的第一篇博客-写给自己
  6. HDU3970(Dijstra算法)
  7. 【学习笔记】超简单的多项式除法(含完整证明)
  8. UVA10003 切木棍 Cutting Sticks(区间DP、细节)
  9. C语言入门练习 - 第三期 数组(题解)
  10. python requests 重定向_认识Python最最最常用语重要的库Requests