MS SQL 数据库出现损坏(可疑)的修复方法

article/2025/8/21 21:36:17

当数据库出现这种情况的时候,说明数据库已经出现损坏,需要对数据库进行修复处理;

1、打开数据库管理器SQL server Management Studio,将当前数据库实例服务停止;

然后找到需要修复的数据库的存放目录,并将.mdf和.ldf文件拷贝到其他盘进行备份(很重要)。如果不备份,后续的操作将会导致数据丢失无法修复;

2、删除原来的数据库,并新建一个同名数据库,并且文件路径同样与之前路径保持一致;

3、停止SQL 服务,删除新建数据库.ldf文件,将要之前备份的数据库.mdf文件覆盖刚新建的.mdf文件,然后重启服务;

这时数据库DATA目录下只有一个.mdf文件,启动SQL server Management Studio

4、新建查询窗口,顺序执行以下语句;

下面执行语句中出现的“dbname” 全部替换为待修复的数据库名称。

执行语句:

use master

go

alter database dbname set emergency

go

--置数据库为单用户模式

alter database dbname set single_user with rollback immediate

go

--重建数据库日志文件,filename后面表示新建的日志文件路径,需要替换为当前数据库的日志文件路径;

alter database dbname Rebuild Log on (name=log_name,filename='d:\DataBase\log_name.ldf')

go

--最后设置数据库为多用户模式。

alter database dbname set multi_user

go

-------------------以上为新建日志文件的操作------------

5、通过以上方法修复数据库后,可以dbcc checkdb一下数据库,如果发现页级错误,可以通过以下命令修复。

以下修复命令要在单用户的情况下使用:

--置数据库为单用户模式

exec sp_dboption dbname, single, true //SQL200-SQL2005

alter database dbname set Single_user //SQL2005-SQL2016

go

--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复

DBCC CHECKDB (dbname)

go

--快速修复  

DBCC CHECKDB (dbname, REPAIR_FAST)  

go   

--重建索引并修复

DBCC CHECKDB (dbname, REPAIR_REBUILD)

go

--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;

DBCC CHECKDB (dbname)

Go

--否则意味着还需要更高级别的修复:如果必要允许丢失数据修复

DBCC CHECKDB (dbname, REPAIR_ALLOW_DATA_LOSS)

--之后再次检查数据库。

DBCC CHECKDB (dbname)

Go

--最后--退出前请一定要执行以下语句再设置数据库为多用户模式

alter database dbname set multi_user

go

---SQL执行操作实例:

use master
goalter database GasMeterMDKW set emergency
go----置数据库为单用户模式alter database GasMeterMDKW set single_user with rollback immediate--方法1:exec sp_dboption dbname, single, true //适用于SQL200-SQL2005
--方法2:alter database dbname set Single_user //适用于SQL2005-SQL2016
go----重建数据库日志文件,filename后面表示新建的日志文件路径,需要替换alter database GasMeterMDKW Rebuild Log on (name=GasMeterMDKW,filename='d:\DataBase\GasMeterMDKW.ldf')go----置数据库为多用户模式
alter database GasMeterMDKW set multi_user----重启SQL服务
Use master
go----置为单用户alter database GasMeterMDKW set Single_user  ----开始checkdb修复
dbcc checkdb(GasMeterMDKW,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(GasMeterMDKW,REPAIR_REBUILD)----改回多用户模式
alter database dbname set multi_usergo


http://chatgpt.dhexx.cn/article/Uy7VK654.shtml

相关文章

SQLServer数据库可疑的解决方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言方法 前言 介绍数据库可疑后的解决方法,原理是通过数据库deckdb语句进行检测和修复,亲测有效,操作前建议先拷出数据库实体文…

Sql Server 数据库出现“可疑”的解决办法

第一步: ALTER DATABASE DB_NAME SET EMERGENCY 第二步: ALTER DATABASE DB_NAME SET SINGLE_USER(用时可能较久) (ALTER DATABASE DB_NAME SET SINGLE_USER WITH ROLLBACK IMMEDIATE) 第三步: DBCC CheckDB (DB_N…

记一则SQL 数据库状态(可疑)(紧急)解决方案

错误信息如下: 可以看到数据库CStation状态为可疑,导致原因为服务器意外停电,第一次遇到这种情况,折腾了很久终于解决,记下解决方案: 1,将SQL数据库停止,不能停止就强制结束进程 2…

手机上的软件APP,安全吗?

点击上方蓝字关注我们 背景介绍 APP安全合规的监管机构:APP违法违规收集使用个人信息治理工作组(APP治理小组)、工业和信息化部信息通讯管理局(工信部)、国家移动互联网应用安全管理中心(病毒中心)、地方通信局、地方网安。 具体执行APP合规检测和产出报告的是和网安…

几个好玩的区块链app推荐

不得不承认,各种区块链App相继出现,活跃在微信群、电报群等,貌似很多用户都在或多或少地参与着。经别人推荐试用了几个,感觉还可以,这几个App自带“挖矿”功能,每天都会产生一些数字token可供领取&#xff…

(六)区块的生成、验证及挖矿

转载,作者:Alphabet_666 1. 交易的传播和验证 交易包含两部分:n个输入个m个输出,其中n>0,m>0 输入要花费的UTXO解锁脚本 输出UTXO(币的数量锁定脚本) 钱包生成交易,并向邻近…

如何使用API接口

API其实就是一类服务的封装。我们可以使用不同的编程语言编写API,开发习惯和编程语言的不同导致API风格也存在差异。常见的API有以下几种形式: 1、HTTP类型接口 基于HTTP协议提供的API,这类API常常以“网址”形式提供的,像现在主…

微信小程序:调用API接口

首先去果创云之类的API调用的网站找到你想调用的API 以大学查询接口为例 复制API的接口,然后要现在第一个?前面加上appkey,然后name可以换成变量,最后的10是显示的条数,也可以改。 最后效果是可以查询你想要查询的学校…

api接口如何有效对接

一、背景 在平时工作中,经常会遇到的一种场景是:A公司要对接B公司的API方法,这时,A公司就要阅读B公司的接口文档,从接口文档中找到自己需要对接的API,并根据接口文档的要求,完成编码工作&#…

API接口怎么使用(教你使用api接口获取数据)

API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现数据传输的安全&#xff0c…

request调用API接口

通过requests请求api接口,返回的数据为一串字典,可使用字典的方式进行操作 import requests url https://api.github.com/search/repositories?qlanguage:python&sortstars r requests.get(url) print(status code:,r.status_code,verifyFalse) p…

调用api接口

我们平常是怎么调用接口的呢?在Vue中我们平常通过axios这个库来调用就接口,但是在uniapp进行开发,那么就要借用uniapp的库来进行开发,接下来我们一起来探究下。 一.uni.request(OBJECT) 作用:发送网络请求 OBJECT参数说明&#…

api 接口简单调用

互联网的资源是很丰富了&#xff0c;我又发现了个网站&#xff0c;提供api ,供我们联系用 https://www.showapi.com/ 我注册好之后 注册完之后&#xff0c;提供了 appid和 key <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

调用第三方API(接口)

1&#xff1a;选用一个提供API的第三方&#xff08;这里推荐极速数据&#xff09; 2&#xff1a;使用 using Newtonsoft.Json; 如果没有需要先安装 3&#xff1a;定义API方法具体代码如下&#xff1a; public static string API(string url) { HttpWebRequest re W…

如何调用API接口获取数据

下面以调用丁香园的API接口获取新冠疫情数据为例。 丁香园提供的API接口及说明如下&#xff1a; 调用该API接口获取数据的代码如下&#xff1a; import requests import json import pandas as pd #以requests.get方式调用API接口&#xff0c;获取JSON格式的数据 datarequest…

如何调用api接口获取其中的数据

part1.API接口可以运用到的场景&#xff0c;主要包括以下几个方面&#xff1a; 1. 应用程序集成&#xff1a;API可以使不同的应用程序相互之间进行集成&#xff0c;比如将某个应用程序的数据传递给另一个应用程序&#xff0c;或者调用另一个应用程序的功能。 2. 数据共享&#…

API接口是什么?API接口怎么调用?

part1.API接口是什么&#xff1f; API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是软件系统之间互相访问和交换信息的一种方式。它定义了在一个应用程序中调用另一个应用程序的方式&#xff08;或服务&#xff09;。API接口可以…

API接口调用演示

本文以深圳市政府数据开放平台为素材对象&#xff0c;演示如何调用其开放的API接口&#xff0c;主要目的在于以直观的视角&#xff0c;熟悉API接口的格式及调用方式。 在首页数据菜单中有数据目录、数据集、数据接口和数据地图4个菜单。 选择数据集&#xff0c;选择教育局&…

API接口的调用方式

API接口的调用方式分为以下几种&#xff1a; 1.RESTful API 这是一种基于HTTP协议的API调用方式&#xff0c;通常使用HTTP协议的POST、GET、DELETE、PUT等方法进行调用。使用RESTful API的优点是简单易懂、易于扩展和利于缓存。常见的RESTful API有Twitter API、Facebook API…

api接口的获取调用方式是什么?

API接口的获取调用方式&#xff0c;通常分为以下几个步骤&#xff1a; 1.注册账号并申请API Key&#xff1a;在API服务提供商的官方网站上注册账号&#xff0c;并申请API Key&#xff08;包括通行证ID和密钥&#xff09;&#xff0c;以便后面的API调用验证。 2.查看API接口文档…