我有一个数据库,我们遇到了问题。不知怎的,日志变成了400Gb,数据库变得没用了。我想删除所有现有的连接到数据库,然后分离数据库。在MS Sql Server 2000中删除数据库连接
基本上我要做的是摆脱巨大的日志文件,并创建一个新的和重新附加,如果它的工作。如果不是,我们将从备份中恢复。
我有一个数据库,我们遇到了问题。不知怎的,日志变成了400Gb,数据库变得没用了。我想删除所有现有的连接到数据库,然后分离数据库。在MS Sql Server 2000中删除数据库连接
基本上我要做的是摆脱巨大的日志文件,并创建一个新的和重新附加,如果它的工作。如果不是,我们将从备份中恢复。
那么基本上没有命令会执行数据库的攻击。我们最终做的是关闭服务并创建mdf和ldf文件的空副本并替换sql server使用的那些文件。之后,我们从最后一次备份中恢复数据库,然后再次运行(主要是)。
如果日志无用,您可以使用这些命令,但请在生产服务器上应用之前自行记录它们。 WITH NO_LOG
BACKUP LOG的disgard从日志页面,
的sp_helpdb为寻找分贝
DBCC SHRINKFILE的文件名( '你的日志文件名',0) - 用于集群的物理文件大小指定。
如果您确定没有打开的事务,则可以将数据库置于单用户模式。
ALTER DATABASE [YourDB] WITH NO_WAIT
SET SINGLE_USER当您完成将它放回多用户模式 ALTER DATABASE [YourDB] SET MULTI_USER与NO_WAIT
是否
备份日志yourdb使用truncate_only,那么dbcc shrinkdatabase(yourdb)不会为您收缩日志文件?
ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER
dbcc shrinkfile无法找到日志文件,即使我知道我在输入正确的名称。尝试使用命令只是连续运行。 – DForck42 2009-05-04 14:19:27