SQL Server 2008无日志文件附加数据库
1、新建一个同名数据库。
2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)
3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:
alter database 无日志文件的数据库名称 set emergency
设置为紧急状态。
4、再运行:
alter database 无日志文件的数据库名称 set single_user
或者:
Sp_dboption '无日志文件的数据库名称', 'single user', 'true'
设置为单用户模式。
5、检查并重建日志文件,运行:
dbcc checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)
这个时间比较长。耐心等待!如果有错误提示,再运行:
dbcc checkdb('无日志文件的数据库名称',REPAIR_REBUILD)
进行修复。如果没有错误,可以跳过。
6、恢复成多用户模式
alter database 无日志文件的数据库名称 set multi_user
或者:
Sp_dboption '无日志文件的数据库名称', 'single user', 'false'
刷新数据库,你就可以看到已经修复好的数据库了。
缩小 SQL Server 数据库日志文件
2010-12-20 07:05
-- 缩小SQL Server数据库日志文件
-- 修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小)
Set NoCount On
Declare @LogicalFileName sysname
Declare @MaxMinutes Int
Declare @NewSize Int
Use mm -- 要操作的数据库名
Select @LogicalFileName = 'mm_log' -- 日志文件名
Select @MaxMinutes = 10 -- Limit On Time allowed To Wrap Log.
Select @NewSize = 8 -- 你想设定的日志文件的大小(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 2008无日志文件附加数据库的更多相关文章
- SQL Server 2005无日志文件附加数据库
公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件).结果造成数据库怎么都附加不上.出现错误. ...
- SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明
原文:SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明 DBCC SHRINKFILE 收缩相关数据库的指定数据文件或日志文件大小. 语法 DBCC SHRINKF ...
- SQL Server 无日志文件附加数据库
CREATE DATABASE DBname ON (FILENAME = 'D:\SalesData\DBname_data.mdf') FOR ATTACH_REBUILD_LOG ; GO 简单 ...
- Sql Server 2008 清理日志文件
Use LingZhong Select NAME,size From sys.database_files ALTER DATABASE LingZhong SET RECOVERY SIMPLE ...
- SQL Server 2008 收缩日志 清空删除大日志文件 转载
SQL Server 2008 收缩日志 清空删除大日志文件 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)Ba ...
- SQL Server 2008下日志清理方法 2
SQL Server 2008下日志清理方法 (2011-07-14 10:30:45) 转自 http://blog.sina.com.cn/s/blog_4bdd3d0b0100wfvq.html ...
- SQL Server无法收缩日志文件 2 因为逻辑日志文件的总数不能少于 2问题
SQL Server无法收缩日志文件 2 因为逻辑日志文件的总数不能少于 2问题 最近服务器执行收缩日志文件大小的job老是报错 我所用的一个批量收缩日志脚本 USE [master] GO /*** ...
- SQL Server 2008 2005删除或压缩数据库日志的方法
由于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间.由于主要是做OLAP,所以数据库本身不会有大变动,所以日志也就 ...
- SQL Server 2008 R2 下如何清理数据库日志文件
废话不多说,直接上代码,清理后日志文件为1M USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALT ...
随机推荐
- cf 702B
You are given n integers a1, a2, ..., an. Find the number of pairs of indexes i, j (i < j) that a ...
- tl;drLegal ——开源软件license的搜索引擎
TLDRLegal - Open Source Licenses Explained in Plain English可以很方便查询各个开源license的总结(能做什么,不能做什么),还能比较不同的 ...
- 另5个你不知道的HTML5接口API
原文地址: 5 More HTML5 APIs You Didn’t Know Existed 演示地址: 全屏API Demo 原文日期: 2012年11月08日 翻译日期: 2013年08月13日 ...
- delphi tidhttp 超时的解决方案
现在delphi都发布到xe10.1了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTime ...
- oracle中 sql%rowcount 使用方法
sql%rowcount用于记录改动的条数,必须放在一个更新或者删除等改动类语句后面运行,select语句用于查询的话无法使用, 当你运行多条改动语句时,依照sql%rowcount 之前运行的最后一 ...
- [RxJS] Transformation operator: buffer, bufferCount, bufferTime
This lesson will teach you about another horizontal combination operator: buffer and its variants. B ...
- android 53 ContentProvider内容提供者
ContentProvider内容提供者:像是一个中间件一样,一个媒介一样,可以以标准的增删改差操作对手机的文件.数据库进行增删改差.通过ContentProvider查找sd卡的音频文件,可以提供标 ...
- Qt 学习之路:QML 基本元素
QML 基本元素可以分为可视元素和不可视元素两类.可视元素(例如前面提到过的Rectangle)具有几何坐标,会在屏幕上占据一块显示区域.不可视元素(例如Timer)通常提供一种功能,这些功能可以作用 ...
- 初步掌握HDFS的架构及原理
目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如何存储数据 HDFS 如何读取文件 HDFS 如何写入文件 HDFS 副本存放策略 Hadoop2.x新特性 ...
- 禁止鼠标多次点击选中div中的文字
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Fire ...