数据库

 首页 > 数据库 > SqlServer > SQL Server日志清除的两种方法教程简介

SQL Server日志清除的两种方法教程简介

分享到:
【字体:
导读:
         摘要: 方法一 一般情况下,SQL数据库的压缩并不能很大程度上减小数据库大小,其重要作用是压缩日志大小,应当定期进行此把持以免数据库日志过大 1、设置数据库模式为简略模式:打开...

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



SQL Server日志清除的两种方法教程简介
分享到:
SQL Server 2008:表值参数的创立和应用
SQL Server 2008:表值参数的创立和应用 表值参数(Table-valued parameter)是SQL Server 2008的一个新特征,在以前的版本中,没有措施把表变量当作一个参数传递给存储过程。微软在SQL Server2008中引进了表值参数的特征,可以实现这项功效。   表值参数有两大长处:一是它不需要为初始的数据加锁,二是它不会导致语句重新...
防备sql注进式攻击js版本
防备sql注进式攻击js版本 SQL注进式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方法的攻击 。 动态天生Sql命令时没有对用户输进的数据进行验证是Sql注进攻击得逞的重要原因。 比如: 假如你的查询语句是select * from admin where username=&#039;&#039;"&user&"&#039;&#039; and password=&#...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……