SQL SERVER 数据日志太大,磁盘没有空间,直接删除数据库日志后,显示 恢复挂起。

问题简述:

sharepoint的某个站点对应的数据库日志太大了,想把日志瘦身。于是我把整个数据库分离,然后附加数据库来重新生成日志文件。谁知道在附加的时候,居然报错"附加数据库报错:由于数据库没有完全关闭,无法重新生成日志"

问题原因:原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误。

处理办法:

一、把分离之前的日志文件也复制过来一齐附加嘛
从错误提示看, 应该是你的日志文件中还包括有用的数据, 这些数据还没有正确写回数据文件, 导致附加失败.

二、这种情况最好能找回之前的日志文件, 如果找不到, 应急的方法是新建一个数据库, 将数据库设置为 offline, 然后用附加失败的数据文件替换掉新建库的数据文件, 然后将数据库设置为应急恢复模式, 这样一般就能读数据了
ALTER DATABASE DB_name SET EMERGENCY

数据库可以读之后, 你可以尝试再将其设置为 ONLINE 模式, 如果能成功, 那再 DBCC CHECKDB 一次, 确认没有问题
如果无法ONLINE, 那么你大概就只好新建库, 然后把应急模式的库的数据导到新建的库了

特别说明:应该使用压缩(shrinking)的办法来处理。

时间: 2024-08-14 11:21:30

SQL SERVER 数据日志太大,磁盘没有空间,直接删除数据库日志后,显示 恢复挂起。的相关文章

分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

原文:分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前有一段经历 在月初的时候这个数据库曾经置疑过,启动不起来 Could not redo log record (163041:116859:5), for transaction ID (0:-1175226963), on

sql server数据同步方案-日志传送

1 功能描述 本方案采用日志传送模式,把核心数据库(主数据库)定期同步到灾备数据库(辅助服务器)及备份库(辅助服务器,便于其他系统使用,减轻主数据压力),期间,如果发生异常导致无法同步,将以电子邮件.短信方式通知管理人员. 2 系统环境 2.1硬件 主数据库: SQLHA 灾备库服务器:DisaterDBSVRA 备份库服务器:BackupDataSVR 2.2软件 主数据库: Win2008 x64 SQL2005 SP4 x64 灾备库: Win2008 x64 SQL2005 SP4 x6

SQL Server数据归档的解决方案

SQL Server数据归档的解决方案 最近新接到的一项工作是把SQL Server中保存了四五年的陈年数据(合同,付款,报销等等单据)进行归档,原因是每天的数据增量很大,而历史数据又不经常使用,影响生产环境的数据查询等操作.要求是: 1 归档的数据与生产环境数据分开保存,以便提高查询效率和服务器性能. 2 前端用户能够查询已归档的数据,即系统提供的功能不能发生改变 看起来要求不是很高,我自然会联想到两种方法,第一种新建一个与生产环境一样的数据库,把归档数据保存到这个数据库中:第二种在生产环境为

SQL Server 数据导入Mysql详细教程

SQL Server 数据导入Mysql详细教程 SQL Server数据库和Mysql 数据库都是关系型数据库,虽然很多数据库都对SQL语句进行了再开发和扩展,使得在不同的数据库中执行的方法或用法不一,但是 SQL Server,Mysql ,Access等都采用了SQL语言标准,不同的数据库中的数据是可以导入的.对于大数据的导入是有相当大的意义. 今天,我和大家一起分享一下,我用的便捷的"sql server 数据导入mysql 中的方法",希望能给大家的项目开发中"sq

MongoDB 日志太大怎么办?

MongoDB的日志增长的很快,/var所在的空间马上就占满了,即便换到另一个磁盘分区保存日志,日志还是增长的很快,磁盘眼看要告磬. 有一个好办法,就是使用旋转日志. MongoDB的旋转日志有点怪,Linux下mongd服务接受一个kill -SGIUSR1命令后就立刻将当前日志文件重命名为带日期的文件,然后创建新的日志文件. 不想一般的旋转日志,可以配置旋转策略.不过没关系,经过测试,发送该命令时不会影响到MongoDB的服务. 下面是一个例子,先查找进程id, 然后发送命令. [email

SQL Server 复制 - 发布订阅(SQL Server 数据同步)

原文:SQL Server 复制 - 发布订阅(SQL Server 数据同步) SQL Server的同步是通过SQL Server自带的复制工具来实现的,分发布和订阅2大步. A,复制-发布 发布之前,需要设置好几个前置条件,发布属性和快照位置.发布主要是设置发布数据库,如未设置,所有的发布,订阅可正常进行,也可通过快照同步,但是却无法在后面的修改中实时同步. 其次,设置快照位置.快照位置设置是在“分发服务器属性”中的发布服务器设置.如果设置的位置不能被订阅机访问,订阅是最好采用发布机推送订

SQL Server 数据自动化运维

SQL Server 数据自动化运维说到当前的数据库类型,当前主要流行Mysql.Sql Server.Oracle等三种,区别相信大家都已经非常熟悉了,所以在此就不多介绍了,今天我们主要介绍一下我近期工作中遇到的问题,我们的门禁数据库数据存放的数据量过大,导致从页面上操作及查询非常缓慢影响日常操作效率,由于领导要求数据需要保留,方便日后查询,所以我们一般通过日期判断指定日期以外的数据删除这个不可以实现了,当然换个思路想将指定的日期以外的数据插入到备份数据库中,然后再根据指定日期外的数据删除,其

资料:MVC框架+SQL Server 数据集成引擎

ylbtech-资料:MVC框架+SQL Server 数据集成引擎 1.返回顶部 1. 功能特点: MVC框架耦合性低视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可.因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则.模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则.如果把数据库从MySQL移植到Oracle.SQLServer,或者改变基于

详解SQL Server数据修复命令DBCC的使用

严重级别为 21 表示可能存在数据损坏. 可能的原因包括损坏的页链.损坏的 IAM 或该对象的 sys.objects目录视图中存在无效条目. 这些错误通常由硬件或磁盘设备驱动程序故障而引起. MS Sql Server 提供了很多关于数据库修复的命令,当MS Sql Server 数据库遭到质疑或者是有的无法完成读取时可以尝试这些修复命令. 1. DBCC CHECKDB 重启服务器 use master declare @databasename varchar(255) set @data

数据库数据流量太大-问题诊断

问题: 运维报告某一台数据库,数据流量太大,具体数值不清楚.超过其他正常数据库的流量. 问题分析: 数据流量过大,猜测是一是数据库访问量增加(可能性不大,基本排除),二是某些项目的sql查询了单表的大量数据.有可能是查询条件筛选访问过大. 公司项目: dotnet4.5.entityframe work 6.1.3.sqlServer 处理方法: 1,sqlServer  统计查询返回的数据量 https://docs.microsoft.com/zh-cn/sql/relational-dat