主页 PC知识 网管技术 黑客帝国 安全技术 开放系统 程序设计 搜索 技术论坛

 

相关联接
 
RHU本级分类

病毒防治
漏洞公告
基础入门
Windows 系统安全
Linux 系统安全
防火墙
IDS/IPS
数据库及Web安全

 
RHU阅读排行
·安全无止境:Oracle推出Database10g V2
·数据库系统 防止黑客入侵之技术综述
·实例讲解网站被入侵后需做的检测
·手把手教程:怎样防范WEB SHELL
·保护(IIS)web服务器的15个技巧
·cle数据库产品中发现6个未打补丁漏洞
·对称、非对称和HASH加密的应用
·数据库防入侵探究
·专家谈补丁管理 不是毁掉而是拯救数据库
·十大绝招保护SQL Server数据库安全

 
 
RHU最新文章
·SQL Server数据库查询速度慢原因及优化方法
·微软发布SQL Server 2005 SP3数据库正式版
·数据库服务器安全的权限控制策略
·调整重心 了解从IIS到SQL Server数据库安全
·几种oracle数据库恢复的练习示例
·_disable_logging如何禁止日志的生成
·SQL Server数据库日志清除的两个方法
·最好的虚拟主机安全配置方案
·防御DDoS攻击的实时监测模型
·教你轻松掌握如何保护MySQL中的重要数据

 
 
RHU相关搜索









 
 
RHU广而告之

 
 
>您的位置:首页 -> 安全技术-> 数据库及Web安全
SQL Server数据库日志清除的两个方法

作者:RHU-TAC编辑员 来自:RHU网络采集 时间:2007-12-30 双击滚屏 收藏本页 字体:


点击 查看RHU2004全年文章


 

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


OVER

[1] 页 RedHyphone.Union 投稿邮箱
[特别声明]:
本站文章大多搜索转载自网络中,如果侵犯了您的权利,请告之我们。本站将立即删除。
本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
查看评论】【向上滚屏】【关闭窗口】【 打印
-相关文章
  • Linux系统病毒介绍 做好操作系统防护工程
  • SQL Server数据库查询速度慢原因及优化方法
  • 微软发布SQL Server 2005 SP3数据库正式版
  • 跳板攻击入侵技术实例解析
  • IE7 0DAY漏洞所用shellcode的分析
  • -文章评论 (关闭)
    ·还没有相关的评论!

    网上大名:
    红旋风网络技术联盟 RHUTech.Union
     
    Copyright © 2000-2007 RedHyphone.Union All Rights Reserved. 红旋风联盟版权所有.皖ICP备05011033号
    中国红旋风网络技术联盟 | www.RedHyphone.net
    Mailto:Redhyphone@gamil.com