公司的易飛SQL SERVER數據庫,其.log文件在2個月時間內可以達到100多G,
請問該如何查看日志?或者如何使日志文件不這麼大?
謝謝

解决方案 »

  1.   

    SQL日志文件增的太快处理 收藏 
    方法1、
    --在查询分析器,选中所要清理日志的数据库,执行如下SQL
    backup log 数据库名 with no_log
    DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)
            
    在当前数据库下
    select fileid,groupid,name from sysfiles where groupid=0
    /*
    ----------------------------------------
    得到以下结果
    fileid     groupid          name  
    2          0                test_log 
    */--以上结果,fileid为日志文件ID,name为test_log你可以
    backup log test with no_log
    dbcc shrinkfile (2,2)
    or
    backup log test with no_log
    dbcc shrinkfile ('test_log',2)
    --***********************************************************************************************
    如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复  模型 选择 简单模型就可以了!
    或用SQL语句
    alter database 数据库名 set recovery simple
    --============================================================================================================
    如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全。
    --************************************************************************************************方法2、企业管理器—>右键数据库—>所有任务—>收缩数据库—>文件按钮—>选中日志文件—>设置收缩操作选项—>确定。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/04/25/4106517.aspx
      

  2.   

    参考高手的
    SQL Server:收缩 SQL Server Tempdb 大小 
    系统管理员报告说,SQL Server Tempdb 数据库文件占用了大量的磁盘空间。让解决下。 查看 MS-SQL Tempdb 所占空间大小。 
    exec sp_helpdb tempdb 
    发现 Tempdb 数据文件大小有 10G,Tempdb 日志文件大小有 2G。 收缩 MS-SQL Tempdb 大小。 
    收缩 MS-SQL Tempdb 大小,我一般采用 dbcc shrinkfile() 命令。它作用在数据库文件上,可以最大限度的收缩 Tempdb 数据库。 use tempdb 
    go dbcc shrinkfile(tempdev, 1024) 
    想把 Tempdb 数据文件(逻辑文件名为 tempdev)收缩到 1024MB。结果只能缩小到 6556 MB。 use tempdb 
    go dbcc shrinkfile(templog, 512) 
    很顺利就把 Tempdb 日志文件大小(逻辑文件名为 tempdev)缩小到 512M 左右。 如果条件允许的话,你也可以重启 SQL Server,这样 Tempdb 就恢复到创建数据库时的初始大小了。
      

  3.   

    --定時清理日誌,記得備份
    --1
    backup log dbname with no_log
    --2
    go
    dbcc shrinkfile(dbname_log)
      

  4.   

    --备份数据库
    BACKUP DATABASE testdb TO DISK='d:\data\testdb20070906.bak'
    --清空日志
    DUMP TRANSACTION testdb WITH NO_LOG        
    --截断事务日志   
    BACKUP LOG testdb WITH NO_LOG      
    --收缩数据库   
    DBCC SHRINKDATABASE(testdb)   
    --设置自动收缩
    EXEC SP_DBOPTION testdb,AUTOSHRINK,TRUE用这种方法
      

  5.   

    --最好备份日志,以后可通过日志恢复数据
    以下为日志处理方法
    一般不建议做第4,6两步
    第4步不安全,有可能损坏数据库或丢失数据
    第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
    --*/--下面的所有库名都指你要处理的数据库的库名1.清空日志
    DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:
    BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小
    企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    --选择日志文件--在收缩方式里选择收缩至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.如果想以后不让它日志增长得太大
    企业管理器--服务器--右键数据库--属性--事务日志
    --将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:
    alter database 库名 modify file(name=逻辑文件名,maxsize=20)