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

转载于:https://www.cnblogs.com/miralce/p/5102001.html

SQL Server 2008无日志文件附加数据库相关推荐

  1. SQL Server 2005无日志文件附加数据库

    公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件).结果造成数据库怎么都附加不上.出现错误. ...

  2. SQL Server 2008 Analysis Services 多维数据库一步一步从入门到精通

    SQL Server 2008 Analysis Services 多维数据库一步一步从入门到精通(一) 创建 Analysis Services 项目(图) 在开始之前,我的电脑上已经完整的安装了S ...

  3. SQL Server 2008故障转移集群+数据库镜像配置实例之三

    前两篇文章已经建立了SQL 2008 的故障转移集群,由于故障转移集群存在一个单点故障,既是当网络存储设备不可用时,整个集群就不可用了.所以为了获得更好的高可用特性和容灾机制,我们可以将集群中的某一特 ...

  4. SQL Server 2008 收缩日志 清空删除大日志文件

    SQL2008 的收缩日志  由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消: (SQL2005) BackupLog DNName ...

  5. sql server 2008学习2 文件和文件组

    数据库文件 每个 SQL Server 数据库至少具有两个操作系统文件:一个数据文件和一个日志文件.数据文件包含数据和对象,例如表.索引.存储过程和视图.日志文件包含恢复数据库中的所有事务所需的信息. ...

  6. SQL Server 2008 R2 里迁移系统数据库的方法

    针对不同的场景,采用不同的步骤. 对非master以及resource系统数据库而言,分两种情况. 1.非master以及resource系统数据库正常. 这里以迁移msdb为例,将msdb从D:\S ...

  7. SQL Server 2008 数据恢复——日志备份

    下面我来讲解用SQL SERVER2008日志备份的方法来恢复数据. 前期准备: 1.以test数据库为例,查询数据库恢复模式,及是否作过全库完整性备份 SELECT recovery_model,r ...

  8. SQL SERVER 2008清理日志

    2019独角兽企业重金招聘Python工程师标准>>> ALTERDATABASE DNName SET RECOVERY SIMPLE   --简单模式 GO 右键-任务-收缩-文 ...

  9. SQL Server 2008下日志清理方法

    1.将数据库设置成 简单 模式 选择要收缩的数据库,点右键 属性->选项,选择 简单模式 2.选择任务->收缩->文件 3.选择日志 或者用如下语句 USE [master] GO ...

  10. sqlserver中无ldf文件附加数据库

    CREATE DATABASE 数据库名 ON (FILENAME = '数据库文件')  FOR ATTACH_REBUILD_LOG ; GO 搞定

最新文章

  1. js中BOM和DOM的区别
  2. java内存区域_JVM学习之—Java内存区域
  3. note.. redis五大数据类型
  4. 怎么在eclipse中安装properties插件使其显示中文
  5. 如何在 Quagga BGP 路由器中设置 IPv6 的 BGP 对等体和过滤
  6. C语言实现巴特沃斯IIR滤波器
  7. 智课雅思词汇---二十四、名词性后缀ary(也是形容词后缀)
  8. Python:利用Entrez库筛选下载PubMed文献摘要
  9. QQ空间删除的照片怎么找回,你知道回收站吗?
  10. 使用java + selenium + OpenCV破解腾讯防水墙滑动验证码
  11. 上班,老实人和精明人的区别是什么?
  12. ASM、AAM算法介绍
  13. r计算百分位数_R中产生的分位数和百分位数之间的差异
  14. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.5 从深度图像到骨骼图...
  15. mysql慢日志查询的阈值_mysql慢日志查询
  16. 计算机网络实验2--简单企业网络搭建
  17. 卷积神经网络基本概念
  18. 鸿蒙、OpenHarmony、HarmonyOS傻傻的分不清楚。。。看这篇就够了
  19. 挖潜无极限—数据挖掘技术与应用热点扫描
  20. UE4中Enum类型元素如何在蓝图中直接转成string

热门文章

  1. 少样本学习系列(三)【Optimization-Based Methods】
  2. CentOS英文环境下使用ibus输入法
  3. [mstsc]解决win8 win10 平板无法被mstsc连接的问题
  4. ubuntu16.04安装PHP5.6和7.0
  5. C# 各种常用集合类型的线程安全版本
  6. Linux 100个常用指令
  7. CephOpenstack结合说明操作
  8. 基于Web的MIS系统环境配置和相关含义(拷贝版)
  9. XCode使用自带SVN,SVN命令
  10. 01knockout应用开发之遍历简单数据$Index、$data