数据日志文件过大,我直接detach该库,然后把日志文件删除还原数据库吧...

解决方案 »

  1.   

    压缩数据库日志
    --1.清空日志
    exec('DUMP TRANSACTION ['+@dbname+'] WITH  NO_LOG') 
    --2.截断事务日志:
    exec('BACKUP LOG ['+@dbname+'] WITH NO_LOG')
    --3.收缩数据库文件(如果不压缩,数据库的文件不会减小
    exec('DBCC SHRINKDATABASE(['+@dbname+'])')  4、减小日志的方法:
    一、用如下步做了:
    1、DUMP TRANSACTION 庫名 WITH no_log
    2、dbcc shrinkfile(logfilename)
    3、收縮數據庫
    4、設定自動收縮。
      二、分离数据库,删除日志文件,再附加,OK!右击数据库--所有任务--分离or 附加
      三、1、backup log 庫名 WITH no_log,2、dbcc shrinkfile(logfilename),3、收縮數據庫
      

  2.   

    重新建一个名称一样的数据库把log文件拷贝过来,一起附加就是不行的话,转个贴给你,也许有帮助库置疑的处理办法 
    在MS SQLSERVER中一直有这样的问题,SQLSERVER的状态"置疑",我们先来分析一下SQLSERVER数据库"置疑"的原因: 
    1.错误的删除日志; 
    2.硬件(HD)损坏,造成日志和数据文件写错误; 
    3.硬盘的空间不够,比如日志文件过大; 
    解决办法: 
    这是最简单的办法是有数据库的全备份,然后恢复即可. 
    步骤: 
    1. 删除原始的数据库: 
    USE MASTER 
    GO 
    DROP DATABASE DB_SUEPECT 
    2.建立同名的数据库: 
    USE master 
    GO 
    CREATE DATABASE DB_SUSPECT 
    ON 
    ( NAME = DBNAME_DAT, 
    FILENAME = 'C:', 
    SIZE = 10, 
    FILEGROWTH = 5 ) 
    LOG ON 
    ( NAME = 'DBNAME_LOG', 
    FILENAME = 'g:', 
    SIZE = 5MB, 
    FILEGROWTH = 5MB ) 
    GO 
    3.恢复数据库: 
    RESTORE DATABASE DB_SUSPECT 
    FROM DBNAME_BACKUP.DAT 
    4.数据库完整性检测: 
    DBCC CHECKDB('DB_SUSPECT') 
    5.重新启动MSSQLSERVER服务. 
    如果没有全备份,那就要用一些特殊的方法: 
    1.设置数据库为紧急模式 
    Use Master 
    GO 
    sp_configure 'allow updates', 1 
    reconfigure with override 
    GO 
    UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT' 
    GO 
    2.停掉SQL Server服务: 
    NET STOP MSSQLSERVER 
    3.把原始数据库的数据文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走: 
    4.启动SQL Server服务: 
    NET START MSSQLSERVER 
    5.重新建立一个同名的数据库DB_SUSPECT; 
    USE master 
    GO 
    CREATE DATABASE DB_SUSPECT 
    ON 
    ( NAME = DBNAME_DAT, 
    FILENAME = 'C:', 
    SIZE = 10, 
    FILEGROWTH = 5 ) 
    LOG ON 
    ( NAME = 'DBNAME_LOG', 
    FILENAME = 'g:', 
    SIZE = 5MB, 
    FILEGROWTH = 5MB ) 
    GO 
    6.设置数据库运行在单用户的模式: 
    USE MASTER 
    GO 
    ALTER DATABASE DB_SUSPECT SET SINGLE_USER 
    GO 
    7.停掉SQL服务: 
    NET STOP MSSQLSERVER 
    8.把原来的数据文件再覆盖回来: 
    9.启动SQL Server服务: 
    NET START MSSQLSERVER 
    10.重新设置SQLSERVER的状态: 
    USE MASTER 
    GO 
    EXEC sp_resetstatus "DB_SUSPECT" 
    11.数据库完整性检测: 
    DBCC CHECKDB('DB_SUSPECT') 
    12.恢复数据库为多用户模式: 
    USE MASTER 
    GO 
    ALTER DATABASE DB_SUSPECT SET MULTI_USER 
    GO 
    13.恢复SQLSERVER原始的配置: 
    USE MATER 
    GO 
    UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT' 
    GO 
    14.配置SQLSERVER不允许更新系统表: 
    USE MASTER 
    GO 
    sp_configure 'allow updates', 0 
    reconfigure with override 
    GO 
    15.重新启动MSSQLSERVER服务: 
    最好重新启动操作系统 
    16.备份数据库: 
    可以通过SQLSERVER企业管理器或T-SQL.需要备份MASTER和DB_SUSPECT 
    补充一点,如果用DOMAIN\USER时,要注意对.MDF.LDF的所在目录的权限
      

  3.   

    感谢大家的支持
    现已经把数据导入新库里面了希望大家以我为戒,不要图方便随便删log记录档
    结贴