博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL数据库管理—DBCC数据库修复
阅读量:4172 次
发布时间:2019-05-26

本文共 1685 字,大约阅读时间需要 5 分钟。

SQL数据库管理—DBCC数据库修复

 

概述

Transact-SQL 编程语言提供 DBCC语句作为 Microsoft SQL Server的数据库控制台命令。这些语句对数据库的物理和逻辑一致性进行检查。许多 DBCC 语句能够对检测到的问题进行修复。

一 基本步骤

1.1数据库简单检测

检测出问题点,在具体修复

 dbcc checkdb (RMS_APP_NLH)

WITH ROLLBACK IMMEDIATE 是做设置单用户总是不成功的时候,加入WITH ROLLBACK IMMEDIATE 选项可以快速回滚事务,变成单用户模式。

 

 

use RMS_APP_NLH

go

alter database RMS_APP_NLHset single_user  WITH ROLLBACK IMMEDIATE;

go

dbcc checktable('R_Traffic_Record',REPAIR_ALLOW_DATA_LOSS)

go

dbcc checktable('R_Traffic_Record',REPAIR_REBUILD)

go

dbcc checktable('S_103_Quarter',REPAIR_ALLOW_DATA_LOSS)

go

dbcc checktable('S_103_Quarter',REPAIR_REBUILD)

alter database RMS_APP_NLHset multi_user

go

 

 

二 出现复杂情况

2.1 DBCC 检测的时候出现

DBCC检测的时候不能定位表或者对象。

2.2 使用语句定位表

-----------------------游标循环 check table------------------

 

DECLARE NYCURSOR CURSOR

 

--声明游标

FOR

    SELECT  name

    FROM    sys.tables

    WHERE   is_ms_shipped = 0; 

 

 

OPEN NYCURSOR;

 

DECLARE @TAB_NAME VARCHAR(1000);

 

FETCH NEXT FROM NYCURSOR INTO @TAB_NAME;

 

WHILE @@FETCH_STATUS = 0

    BEGIN 

 

        SELECT  @TAB_NAME = 'THIS4.dbo.' + @TAB_NAME;

 

        DBCC CHECKTABLE (@TAB_NAME);

 

--DBCC CHECKTABLE运行

 

        FETCH NEXT FROM NYCURSOR INTO @TAB_NAME;

 

    END;

 

CLOSE NYCURSOR;

 

DEALLOCATE NYCURSOR;

 

2.3 修复表

 

use RMS_APP_NLH

go

alter database RMS_APP_NLHset single_user

go

dbcc checktable('R_Traffic_Record',REPAIR_ALLOW_DATA_LOSS)

go

dbcc checktable('R_Traffic_Record',REPAIR_REBUILD)

go

dbcc checktable('S_103_Quarter',REPAIR_ALLOW_DATA_LOSS)

go

dbcc checktable('S_103_Quarter',REPAIR_REBUILD)

alter database RMS_APP_NLHset multi_user

go

 

 

三 无日志还原数据库

alter database t_branch set emergency

alter database t_branch set single_user

 

dbcc checkdb ('t_branch',repair_allow_data_loss)

dbcc checkdb ('t_branch',repair_rebuild)

 

alter database t_branch set multi_user

转载地址:http://mxbai.baihongyu.com/

你可能感兴趣的文章
商务智能-系统概述-数据图形方式
查看>>
软件项目管理系统-项目管理-模块定义-开发内容
查看>>
工作流审批平台-审批功能
查看>>
商务智能-基本方法-特征与角度
查看>>
软件项目管理系统-项目管理-模块定义-开发笔记
查看>>
工作流审批平台-业务申请-申请书一览
查看>>
商务智能-基本方法-数据钻取
查看>>
C++程序员技术需求规划(发展方向)
查看>>
聊聊我当年在培训学校做开发的经历
查看>>
用Docker搭建Redis主从复制的集群
查看>>
盘点这些年我出的书,以及由此得到的收获
查看>>
用Python的Pandas和Matplotlib绘制股票KDJ指标线
查看>>
面试必问:对java多线程里Synchronized的思考
查看>>
最近接了本分布式组件面试书的选题,请大家一起来提意见
查看>>
Redis整合MySQL和MyCAT分库组件(来源是我的新书)
查看>>
Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)
查看>>
程序员高效出书避坑和实践指南
查看>>
计算机方面毕业生怎样写简历
查看>>
从软件公司的异同点讲起,聊聊未来的程序员该如何选公司和谋规划
查看>>
我不想安于当前的限度,以达到所谓的幸福,回顾下2020年的我
查看>>