DBCC修复数据库

合集下载

DBCC CHECKDB 数据库或表修复

DBCC CHECKDB 数据库或表修复

DBCC CHECKDB 数据库或表修复MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。

1. DBCC CHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。

use masterdeclare @databasename varchar(255)set @databasename='需要修复的数据库实体的名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。

注意:修复后可能会造成部分数据的丢失。

2. DBCC CHECKTABLE如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。

use 需要修复的数据库实体的名称declare @dbname varchar(255)set @dbname='需要修复的数据库实体的名称'exec sp_dboption @dbname,'single user','true'dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称exec sp_dboption @dbname,'single user','false'3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。

DBCC-CHECKDB用法-手工修复数据库

DBCC-CHECKDB用法-手工修复数据库

DBCC CHECKDB用法手工修复数据库快速修复DBCC CHECKDB ('数据库名', REPAIR_FAST)重建索引并修复DBCC CHECKDB ('数据库名', REPAIR_REBUILD)如果必要允许丢失数据修复DBCC CHECKDB ('数据库名'', REPAIR_ALLOW_DATA_LOSS)如果出现错误:未处理修复语句。

数据库需处于单用户模式下。

可以先启用单用户模式,方法如下执行存储过程:Use mastergosp_dboption 数据库名, single, true--更改成单用户alter database ams2 set single_user with rollback immedi ate--还原数据库为多用户模式alter database ams2 set multi_user with rollback immediate############################################################ ############################################################手工修复数据库试例操作步骤:----------------------------------------------------------------------------------------------进入SQL查询分析器,执行语句:--检查数据库完整性dbcc checkdb('ams1')执行结果:---------------------------------------------------------------CHECKDB 发现了0 个分配错误和11 个一致性错误(在数据库'ams1' 中)。

修复数据库可疑模式

修复数据库可疑模式
1、修改数据库为紧急模式
ALTER DATABASE jd13dafa SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE jd13dafa SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (jd13dafa , REPAIR_ALLOW_DATA_LOSS) Biblioteka 4、使数据库变回为多用户模式
ALTER DATABASE jd13dafa SET MULTI_USER
5、开始->运行->输入cmd->打开DOS命令窗口,输入以下命令重启数据库服务(此处可以直接到服务列表里,重新启动数据库服务,为了方便我直接用DOS命令了)
Net stop mssqlserver --停止服务
Net start mssqlserver --启动服务

dbcc语句

dbcc语句

```
这个结果表明`mydatabase`数据库存在10个错误,需要进一步分析并修复。
dbcc命令的错误处理
默认情况下,dbcc命令在执行过程中遇到错误会停止执行并显示错误信息。
可以使用try...catch语句捕获dbcc命令执行过程中发生的错误,并执行相应的错误处理逻辑。
try...catch语句允许用户在捕获到错误后,根据需要选择性地处理错误,而不是简单地停止执行。
验证数据库完整性
修复数据库错误
检查事务日志
执行快速检查
如果DBCC CHECKDB语句检测到数据库中存在错误或损坏的数据,它将尝试修复这些错误。如果无法修复错误,则可能需要恢复数据库。
使用DBCC CHECKDB语句可以验证数据库的完整性,检查数据库中是否存在错误或损坏的数据。
DBCC CHECKDB语句可以执行快速检查,只检查特定的表或文件组,而不是整个数据库。
DBCC SHOWFILESTATS
03
用于缩小数据库文件的大小,以回收未使用的空间。
DBCC SHRINKFILE
感谢您的观看
THANKS
DBCC CHECKTABLE语句还可以检查约束的完整性,确保表中的数据满足约束条件。
DBCC CHECKTABLE语句还可以检查触发器的状态,以确保它们在正确的状态下运行。
检查文件组中的文件状态
DBCC CHECKFILEGROUP语句还可以检查文件组中的文件状态,以确保它们在正确的状态下运行。
DBCC CHECKDB语句还会检查事务日志,以确保它们与数据库文件保持一致。
01
02
03
04
检查表的完整性
检查索引完整性
检查触发器状态

DBCC CHECKDB 物理一致性SQL修复

DBCC CHECKDB 物理一致性SQL修复

寒山sql数据库修复中心/由于种种原因,我们如果当时仅仅备份了mdf 文件,那么恢复起来就是一件很麻烦的事情了。

如果您的mdf 文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db 或者sp_attach_single_file_db 可以恢复数据库,但是会出现类似下面的提示信息设备激活错误。

物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。

已创建名为'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。

但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。

你也许会得到类似下面的错误信息服务器: 消息1813,级别16,状态2,行 1 未能打开新数据库'test'。

CREATE DATABASE 将终止。

设备激活错误。

物理文件名'd:\test_log.LDF' 可能有误。

怎么办呢?别着急,下面我们举例说明恢复办法。

A.我们使用默认方式建立一个供恢复使用的数据库(如test)。

可以在SQL Server Enterprise Manager 里面建立。

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件test_log.ldf 删除,用要恢复的数据库mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。

D.启动数据库服务器。

此时会看到数据库test 的状态为“置疑”。

这时候不能对此数据库进行任何操作。

E.设置数据库允许直接操作系统表。

此操作可以在SQL Server Enterprise Manager 里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。

DBCC_CHECKDB用法_手工修复数据库

DBCC_CHECKDB用法_手工修复数据库

DBCC CHECKDB用法手工修复数据库快速修复DBCC CHECKDB ('数据库名', REPAIR_FAST)重建索引并修复DBCC CHECKDB ('数据库名', REPAIR_REBUILD)如果必要允许丢失数据修复DBCC CHECKDB ('数据库名'', REPAIR_ALLOW_DATA_LOSS)如果出现错误:未处理修复语句。

数据库需处于单用户模式下。

可以先启用单用户模式,方法如下执行存储过程:Use mastergosp_dboption 数据库名, single, trueexec sp_dboption Database 'single user','fales'--多用户模式--更改成单用户alter database ams2 set single_user with rollback immedi ate--还原数据库为多用户模式alter database ams2 set multi_user with rollback immediate############################################################ ############################################################手工修复数据库试例操作步骤:----------------------------------------------------------------------------------------------进入SQL查询分析器,执行语句:--检查数据库完整性dbcc checkdb('ams1')执行结果:---------------------------------------------------------------CHECKDB 发现了0 个分配错误和11 个一致性错误(在数据库'ams1' 中)。

SQL SERVER DBCC语句查询手册

SQL SERVER DBCC语句查询手册
DBCC PROCCACHE :以表格格式显示有关过程缓存的信息
DBCC SHOWCONTIG :显示指定的表的数据和索引的碎片信息
DBCC SHOW_STATISTICS :显示指定表上的指定目标的当前分发统计信息
DBCC SQLPERF :提供有关如何在所有数据库中使用事务日志空间的统计信息
SQL SERVER DBCC语句查询手册
Transact-SQL 编程语言提供 DBCC 语句作为 Microsoft® SQL Server™ 2000 的数据库控制台命令。这些语句对数据库的物理和逻辑一致性进行检查。许多 DBCC 语句能够对检测到的问题进行修复。
数据库控制台命令语句被分为以下类别。
状态语句
DBCC OPENTRAN :如果在指定数据库内存在最早的活动事务和最早的分布式和非分布式复制事务,则显示与之有关的信息。仅当存在活动事务或数据库包含复制信息时,才显示结果。如果没有活动事务,就显示信息性消息
DBCC OUTPUTBUFFER :以十六进制和 ASCII 格式返回指定 session_id 的当前输出缓冲区
使用 DBCC 结果集输出
许多 DBCC 命令可以产生表格格式的输出(使用 WITH TABLERESULTS 选项)。该信息可装载到表中以便将来使用。以下显示一个示例脚本:
-- Create the table to accept the results
CREATE TABLE #tracestatus (
DBCC CHECKTABLE :检查组成表或索引视图的所有页和结构的完整性
DBCC NEWALLOC :检查数据库的扩展结构内的每个表的数据和索引页的分配 DBCC NEWALLOC 等同于 DBCC CHECKALLOC,包含在 Microsoft® SQL Server™ 2000 中只是为了向后兼容。建议使用 DBCC CHECKALLOC 对指定数据库中所有页的分配与使用进行检查。在 Microsoft SQL Server 的将来版本中,可能不支持 DBCC NEWALLOC。(SQL Server 2005 中不支持 SQL Server 早期版本的这些数据库引擎 功能)

MSSQL数据库损坏的修复命令DBCC简介

MSSQL数据库损坏的修复命令DBCC简介

MSSQL数据库损坏的修复命令DBCC简介MSSQL数据库损坏的修复命令DBCC简介DBCC命令能对数据库进行维护,重点介绍内容:一、CHECKALLOC 磁盘空间一致性二、CHECKCATALOG 系统表一致性三、CHECKCONSTRAINTS约束完整性四、CHECKDB 结构完整性五、CHECKTABLE 页的完整性六、DBREINDEX 索引七、INDEXDEFRAG 整理索引碎片八、SHRINKDATABASE 释放空间九、SHRINKFILE 释放文件空间十、HELP 语句的语法信息一、DBCC CHECKALLOC检查指定数据库的磁盘空间分配结构一致性<单用户模式>。

语法DBCC CHECKALLOC(‘database_name’[ , NOINDEX<指定不检查非系统表的非聚集索引>| {REPAIR_ALLOW_DATA_LOSS<同REPAIR_REBUILD但删除已损坏的内容,数据会丢失>|REPAIR_FAST<进行简单的修复操作,数据不会丢失>|REPAIR_REBUILD<进行复杂的修复,数据不会丢失>} ])[WITH{[ALL_ERRORMSGS<显示全部错误信息>|NO_INFOMSGS<不显示错误信息>|][,[TABLOCK<获取共享表锁> ] ][, [ESTIMATEONLY<显示需要的临时空间tempdb]]}<此四个参数不重要> ]例:use ufdata_999_2001goALTER DATABASE ufdata_999_2001 SET SINGLE_USER--SQL7.0下同(sp_dboption 'ufdata_999_2001','single_user', 'true')goDBCC CHECKALLOC('ufdata_999_2001 ', REPAIR_REBUILD) withNO_INFOMSGSgoALTER DATABASE ufdata_999_2001 SET MULTI_USER--SQL7.0(sp_dboption 'ufdata_999_2001','single_user', 'false')二、DBCC CHECKCATALOG检查指定数据库中的系统表内及系统表间的一致性。

DBC 数据库控制台命令C

DBC  数据库控制台命令C

DBCCTransact-SQL编程语言提供DBCC语句作为Microsoft&reg;SQLServer2000的数据库控制台命令。

这些语句对数据库的物理和逻辑一致性进行检查。

许多DBCC语句能够对检测到的问题进行修复。

数据库控制台命令语句被分为以下类别。

语句分类执行维护语句对数据库、索引或文件组进行维护的任务。

杂项语句诸如启用行级锁定或从内存中删除动态链接库(DLL)等杂项任务。

状态语句状态检查。

验证语句对数据库、表、索引、目录、文件组、系统表或数据库页的分配进行的验证操作。

SQLServer2000的DBCC语句使用输入参数和返回值。

所有DBCC语句参数都可以接受Unicode和DBCS 字面值。

使用DBCC结果集输出许多DBCC命令可以产生表格格式的输出(使用WITHTABLERESULTS选项)。

该信息可装载到表中以便将来使用。

以下显示一个示例脚本:--Create the table to accept the resultsCREATE TABLE#tracestatus(TraceFlag INT,Status INT)--Execute the command,putting the results in the tableINSERT INTO#tracestatusEXEC('DBCC TRACESTATUS(-1)WITH NO_INFOMSGS')--Display the resultsSELECT*FROM#tracestatusGO维护语句DBCC DBREINDEXDBCC DBREPAIRDBCC INDEXDEFRAGDBCC SHRINKDATABASEDBCC SHRINKFILEDBCC UPDATEUSAGE杂项语句DBCC dllname(FREE)DBCC HELPDBCC PINTABLEDBCC ROWLOCKDBCC TRACEOFFDBCC TRACEONDBCC UNPINTABLE状态语句DBCC PINTABLEDBCC OPENTRANDBCC OUTPUTBUFFERDBCC PROCCACHEDBCC SHOWCONTIGDBCC SHOW_STATISTICSDBCC SQLPERFDBCC TRACESTATUSDBCC USEROPTIONS验证语句DBCC CHECKALLOCDBCC CHECKCATALOGDBCC CHECKCONSTRAINTSDBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKIDENTDBCC CHECKTABLEDBCC NEWALLOCDUMP TRANSACTION IQC WITH NO_LOGDBCC SHRINKDATABASE(IQC)Transact-SQL参考DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小语法DBCC SHRINKDATABASE(database_name[,target_percent][,{NOTRUNCATE|TRUNCATEONLY}])参数database_name是要收缩的数据库名称。

sqlserver数据库修复语句

sqlserver数据库修复语句

sqlserver数据库修复语句
嘿,朋友们!咱今天就来讲讲 SQL Server 数据库修复语句那些事儿。

你知道吗,这数据库就好比是一个大宝藏,有时候可能会出点小毛病,这时候就得靠修复语句来拯救啦!比如说,当数据库出现一些奇怪的
错误提示,就好像一个人突然生病了一样,得赶紧想办法治好呀!
“DBCC CHECKDB”,这可是个厉害的家伙呢!就像医生手里的听
诊器,能帮我们找出数据库的问题所在。

比如说,“DBCC CHECKDB (your_database_name)”,这就像是在对数据库进行一次全面的体检。

还有“ALTER DATABASE SET SINGLE_USER”,这就像是给数据
库这个大房间上了一把锁,让其他人暂时不能进来,我们好专心地给
它疗伤呀!然后再进行修复操作。

哎呀呀,这修复语句可真是太重要啦!想象一下,如果没有这些语句,那我们的数据库出了问题可咋办呀?就像人病了没有药一样难受呢!我们得好好掌握这些语句,就像战士握紧手中的武器一样,随时
准备应对数据库的各种状况。

总之,SQL Server 数据库修复语句就是我们的得力助手,能让我们
的数据库一直健康地运行下去。

所以呀,一定要认真学习和运用这些
语句哦!。

sql数据库不断自动产生错误的日志修复办法

sql数据库不断自动产生错误的日志修复办法

问题描述:1、数据库的C盘路径下的数据库LOG文件夹里不断自动产生错误的日志文件(errorlog),在十分钟时间内就可以把C盘20G刷满,导致C盘空间不足,数据库服务无法正常访问;处理办法:1、在数据库中用dbcc checkdb命令检查数据库可以发现数据库有xxx个表报一致性错误,如图:截取部分输出如下:mamdb34的DBCC 结果。

Service Broker 消息9675,状态1: 已分析的消息类型: 14。

Service Broker 消息9676,状态1: 已分析的服务约定: 6。

Service Broker 消息9667,状态1: 已分析的服务: 3。

Service Broker 消息9668,状态1: 已分析的服务队列: 3。

Service Broker 消息9669,状态1: 已分析的会话端点: 0。

Service Broker 消息9674,状态1: 已分析的会话组: 0。

Service Broker 消息9670,状态1: 已分析的远程服务绑定: 0。

sys.sysobjvalues的DBCC 结果。

消息8929,级别16,状态1,第1 行对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 281474980642816 (类型为In-row data): 在ID 为1786249216 的行外数据中发现错误,该数据由RID = (1:2754:0) 标识的data 记录所有消息8961,级别16,状态2,第1 行表错误: 对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data)。

位于页(1:47613),槽0,文本ID 1786249216 的行外数据节点与它在页(1:2754),槽0 的引用不匹配。

消息8965,级别16,状态1,第1 行表错误: 对象ID 60,索引ID 1,分区ID 281474980642816,分配单元ID 71776119065149440 (类型为LOB data)。

数据库修复的命令

数据库修复的命令

当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。

1. DBCC CHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。

use masterdeclare @databasename varchar(255)set @databasename='需要修复的数据库实体的名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。

注意:修复后可能会造成部分数据的丢失。

2. DBCC CHECKTABLE如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。

use 需要修复的数据库实体的名称declare @dbname varchar(255)set @dbname='需要修复的数据库实体的名称'exec sp_dboption @dbname,'single user','true'dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)------把’需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称exec sp_dboption @dbname,'single user','false'3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。

数据库修复

数据库修复
dbcc rebuild_log ('yszt','c:\Program Files\Microsoft SQL Server\MSSQL\backup\yszt_log.ldf')
--恢复数据库的紧急模式
update sysdatabases set status=0 where name='yszt'
3.将数据库置为多用户模式,
sp_dboption 'fdshop','single user','false'
1.如果用户库无法启动,则打开sql server分析查询器,执行以下命令
sp_configure 'allow updates','1'
go
reconfigure with override
exec sp_configure 'allow update',1 reconfigure with override
go
--将数据库设置成紧急模式
update sysdatabases set status=-32768 where dbid=DB_ID('yszt')
--创建日志文件
这是不允许的。如果你必须使用这个SQL Server 2000的数据备份,那么请您首先把这个备份倒入SQL Server 2000,最后用DTS把数据库从SQL Server 2000上transfer到SQL Server 7.0上。
?
?
--允许进行系统表的操作
use master
GO
--Run the following script

sql数据库中dbcc的使用方法大全

sql数据库中dbcc的使用方法大全

DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下:一、DBCC 帮助类命令* DBCC HELP('?')查询所有的DBCC命令* DBCC HELP('命令')查询指定的DBCC命令的语法说明* DBCC USEROPTIONS返回当前连接的活动(设置)的SET选项二、DBCC 检查验证类命令* DBCC CHECKALLOG ('数据库名称')检查指定数据库的磁盘空间分配结构的一致性* DBCC CHECKCATALOG ('数据库名称')检查指定数据库的系统表内和系统表间的一致性* DBCC CHECKCONSTAINTS ('tablename')检查指定表上的指定约束或所有约束的完整性* DBCC CHECKDB检查数据库中的所有对象的分配和结构完整性* DBCC CHECKFILEGROUP检查指定文件组中所有表在当前数据库中的分配和结构完整性* DBCC CHECKTABLE检查指定表或索引视图的数据、索引及test、ntest和image页的完整性* DBCC CHECKIDENT检查指定的当前标识值* DBCC SQLPERF(UMSSTATS) undocumented in BOL可以用来检查是否CPU使用达到瓶颈最关键的一个参考数据num runnable,表明当前有多少个线程再等待运行如果大于等于2,考虑CPU达到瓶颈三、DBCC 维护类命令* DBCC CLEANTABLE ('db_name','table_name')回收Alter table drop column语句删除可变长度列或text* DBCC DBREINDEX重建指定数据库的一个或多个索引* DBCC INDEXDEFRAG对表或视图上的索引和非聚集索引进行碎片整理* DBCC PINTABLE (db_id,object_id)将表数据驻留在内存中查看哪些表驻留在内存的方法是:select objectproperty(object_id('tablename'),‘tableispinned') * DBCC UNPINTABLE (db_id,object_id)撤消驻留在内存中的表* DBCC SHRINKDATABASE(db_id,int)收缩指定数据库的数据文件和日志文件大小* DBCC SHRINKFILE(file_name,int)收缩相关数据库的指定数据文件和日志文件大小四、DBCC 性能调节命令* DBCC dllname(FREE)sp_helpextendedproc 查看加载的扩展PROC在内存中卸载指定的扩展过程动态链接库(dll)* DBCC DROPCLEANBUFFERS从缓冲池中删除所有缓冲区* DBCC FREEPROCCACHE从过程缓冲区删除所有元素* DBCC INPUTBUFFER显示从客户机发送到服务器的最后一个语句* DBCC OPENTRAN (db_name)查询某个数据库执行时间最久的事务,由哪个程序拥有* DBCC SHOW_STATISTICS显示指定表上的指定目标的当前分布统计信息* DBCC SHOWCONTIG显示指定表的数据和索引的碎片信息* DBCC SQLPERF(logspace) 查看各个DB的日志情况(iostats) 查看IO情况(threads) 查看线程消耗情况返回多种有用的统计信息* DBCC CACHESTATS显示SQL Server 2000内存的统计信息* DBCC CURSORSTATS显示SQL Server 2000游标的统计信息* DBCC MEMORYSTATS显示SQL Server 2000内存是如何细分的* DBCC SQLMGRSTATS显示缓冲中先读和预读准备的SQL语句五、DBCC 未公开的命令* DBCC ERRLOG初始化SQL Server 2000的错误日志文件* DBCC FLUSHPROCINDB (db_id)清除SQL Server 2000服务器内存中的某个数据库的存储过程缓存内容* DBCC BUFFER (db_name,object_name,int(缓冲区个数))显示缓冲区的头部信息和页面信息* DBCC DBINFO (db_name)显示数据库的结构信息* DBCC DBTABLE显示管理数据的表(数据字典)信息* DBCC IND (db_name,table_name,index_id)查看某个索引使用的页面信息* DBCC REBUILDLOG重建SQL Server 2000事务日志文件* DBCC LOG (db_name,3) (-1--4)查看某个数据库使用的事物日志信息* DBCC PAGE查看某个数据库数据页面信息* DBCC PROCBUF显示过程缓冲池中的缓冲区头和存储过程头* DBCC PRTIPAGE查看某个索引页面的每行指向的页面号* DBCC PSS (user,spid,1)显示当前连接到SQL Server 2000服务器的进程信息* DBCC RESOURCE显示服务器当前使用的资源情况* DBCC TAB (db_id,object_id)显示数据页面的结构六、DBCC跟踪标记跟踪标记用于临时设置服务器的特定特征或关闭特定行为,常用于诊断性能问题或调试存储过程或复杂的计算机系统* DBCC TRACEON (3604)打开跟踪标记* DBCC TRACEOFF关闭跟踪标记* DBCC TRACESTATS查看跟踪标记状态七、使用DBCC 结果集输出许多DBCC 命令可以产生表格格式的输出(使用WITH TABLERESULTS 选项)。

数据库质疑DBCC修复方法

数据库质疑DBCC修复方法

1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录一个mjhis60_log.ldf(也有可能非此命名),
同时查看磁盘
2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为空间是否有足够的空间; 原来数据库的名字。
3.停止SQL Server
Go
--如果还有错误未修复,则该数据无法修复
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'mjhis60', 'single user','FALSE'
go
注:都要把 mjhis60 替换成真实的数据库名字。
--在这里,请输入你的数据库的路径
Go
7.停止SQL然后重新启动SQL Server服务,然后运行:
use master
go
update sysdatabases set status = 8 where name = 'mjhis60'
go
sp_configure 'allow updates', 0
USE master
Go
--单用户模式
EXEC sp_dboption 'mjhis60', 'single user', 'TRUE'
go
--数据库检查
DBCC CHECKDB ('mjhis60')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
reconfigure with override

SQL2000数据修复大全

SQL2000数据修复大全

Sql2000r 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。

1. DBCC CHECKDB重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。

use masterdeclare @databasename varchar(255)set @databasename='需要修复的数据库实体的名称'exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(@databasename,REPAIR_REBUILD)exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。

注意:修复后可能会造成部分数据的丢失。

2. DBCC CHECKTABLE如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。

use 需要修复的数据库实体的名称declare @dbname varchar(255)set @dbname='需要修复的数据库实体的名称'exec sp_dboption @dbname,'single user','true'dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称exec sp_dboption @dbname,'single user','false'3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。

DBCC DBREINDEX Sql数据库表修复

DBCC DBREINDEX Sql数据库表修复

寒山sql数据库修复中心/MS Sql Server 数据库或表修复数据库或表修复(DBCC CHECKDB)MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令。

1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL 查询分析器中执行以下SQL 进行数据库的修复,修复数据库存在的一致性错误与分配错误。

use master declare @databasename varchar(255) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态然后执行DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。

注意:修复后可能会造成部分数据的丢失。

2. DBCC CHECKTABLE 如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE 来修复。

use 需要修复的数据库实体的名称declare @dbname varchar(255) set @dbname='需要修复的数据库的名称' exec sp_dboption @dbname,'single user','true' dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DA TA_LOSS) dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD) ------把’需要修复的数据表的名称’更改为执行DBCC CHECKDB 时报错的数据表的名称exec sp_dboption @dbname,'single user','false' 3. 其他的一些常用的修复命令DBCC DBREINDEX 重建指定数据库中表的一个或多个索引用法:DBCC DBREINDEX (表名,’’) 修复此表所有的索引。

SQL 2000 数据库置疑修复语句

SQL 2000 数据库置疑修复语句

数据库置疑及修复➢数据库置疑处理提要:在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称。

数据库置疑修复处理完成后,需执行第二步骤,使用DBCC语句对数据库进行检测并修复错误。

对于损坏的数据库,可参照数据库修复处理方法进行处理。

步骤1:停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。

步骤2:停止SQL Server 服务管理器步骤3:用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把LDF文件删除。

步骤4:重新启动SQL Server服务,然后运行如下命令:Use MasterGosp_configure 'allow updates',1reconfigure with overrideGobegin tranupdate sysdatabases set status = 32768 where name = ’issfoodv6_branch’-—Verify one row is updated before committingcommit tran步骤5:停止SQL然后重新启动SQL Server服务,然后运行如下命令:DBCC TRACEON(3604)DBCC REBUILD_LOG(’issfoodv6_branch',’C:\ProgramFiles\Microsoft SQLServer\MSSQL\Data\issfoodv6_branch_log。

ldf')Go-—注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的issfoodv6_branch步骤6:停止SQL然后重新启动SQL Server服务,然后运行:use masterupdate sysdatabases set status = 8 where name = ’issfoodv6_branch'Gosp_configure ’allow updates’, 0reconfigure with overrideGo步骤7:运行dbcc checkdb(issfoodv6_branch) 检查数据库的完整性➢数据库修复/******************************************************************本语句可以多次执行,一直到没有红色文字出现,则修复成功* 这类故障是一般是由于磁盘读写问题造成的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
go
--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线
USE master
Go
--单用户模式
EXEC sp_dboption 'hbposv5', 'single user', 'TRUE'
go
--数据库检查
DBCC CHECKDB ('hbposv5')
Go
Go
--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
--如果还有错误未修复,
--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'hbposv5', 'single user','FALSE'
* 超市之星系统直接执行
* 快捷通、进销存系列,请将'hbposv5'改为'isd2001v3',如果是分部,改为'isd2001v3_branch'
* 商务通系列,请将'hbposv5'改为'isd2001v4',如果是分部,改为'isd2001v4_branch'
******************************************************************/
/*****************************************************************
* 本语句可以多次执行,一直到没有红色文字出现,则修复成功
* 这类故障是一般是由于磁盘读写问题造成的。
* 'hbposv5'代表要修复的数据库
* 下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将 'hbposv5' 改为 'hbposv5_branch'
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
DBCC CHECKDB ('hbposv5',repair_rebuild) --该语句需要多次执行
Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
DBCC CHECKDB ('hbposv5')
相关文档
最新文档