DBCC CHECKDB SQL Server Veritabanı Bozulma sorununu giderme

摘要: DBCC CHECKDB, DBCC, Veritabanı onarımı, veritabanı, bozuk veritabanı

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Sorun: MS SQL Server veritabanı bozuktur ve kararlılığı ve tutarlılığı korumak için onarın.

原因

MS SQL Server veritabanı, günlükler ve uygulama dosyalarında yazılım bozulması.

解决方案

DBCC, Microsoft SQL Server Veritabanlarını kontrol etmek ve onarmak için tasarlanmış yerel bir Microsoft SQL Server aracıdır.  Bu makalede DBCC CHECKDB komutu ve veritabanı mantıksal ve fiziksel bütünlüğünü kontrol etme seçenekleri açıklanmaktadır.

DBCC CHECKDB bilgileri

DBCC CHECKDB (Transact-SQL):

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15Bu köprü bağlantı sizi Dell Technologies dışındaki bir web sitesine yönlendirir.

DBCC CHECKDB'yi çalıştırma adımları:

  1. SQL Server Studio Management'ı açın
  2. Bir sorgu penceresi açın
  3. "DBCC CHECKDB (Veritabanı Adı)" yazın

DBCC CHECKDB çalıştırma sonuçları
 

        4. Ayırma ve tutarlılık hatalarını görmek için sorgu sonuçlarının alt kısmına yakın bir yerde kontrol edin. 
        5.  Sonuçlarda ayırma ve tutarlılık hataları görüntülenirse veritabanı yedekten geri yüklenecek veya DBCC CHECKDB kullanılarak veritabanı onarımı gerçekleştirmelidir.          

DBCC Onarım Seçenekleri

  1. REPAIR_REBUILD: Aşağıdaki komut, veritabanını onarıma izin veren bir moda girer.
USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
GO
ALTER DATABASE TSQL2012
SET MULTI_USER;
GO

Aşağıdaki komutu kopyalayın ve doğru veritabanı adını kullanarak sorgu oturumuna yapıştırın:

--Command below performs a Database repair not allowing Data loss

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012,REPAIR_REBUILD)
GO
ALTER DATABASE TSQL2012
SET MULTI_USER;
GO

       2. REPAIR_ALLOW_DATA_LOSS: Aşağıdaki komut veritabanı onarımı gerçekleştirir ve onarım işleminin tamamlanması için veri kaybına neden olabilir.

--Command below performs a database repair that may result in data loss,
 --replace TSQL2012 with the database name of database being repaired
USE Master
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
GO
DBCC CHECKDB (TSQL2012, REPAIR_ALLOW_DATA_LOSS)
GO
ALTERDATABASE TSQL2012
SET MULTI_USER
GO

Aşağıdaki komutu kopyalayın ve doğru veritabanı adını kullanarak sorgu oturumuna yapıştırın:

Veritabanı fiziksel disk alanı azaldısa aşağıdaki komutlar kullanışlıdır.

--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job
USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH ESTIMATEONLY;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

Aşağıdaki komutu kopyalayın ve doğru veritabanı adını kullanarak sorgu oturumuna yapıştırın:

--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH ESTIMATEONLY;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

 

--Command below will run DBCC CHECKDB without using TEMDB and creating a DB 
--snapshot. When not using TEMPDB with a DB snapshot all data will be checked in
-- the live database not not a database snapshot.

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH TABLOCK;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

Aşağıdaki komutu kopyalayın ve sorgu oturumuna yapıştırın ve doğru veritabanı adını girin:

--Command below will run DBCC CHECKDB without using TEMPDB and creating a DB 
--snapshot. When not using TEMPDB with a DB snapshot all data will be checked in ---the live database not a database snapshot.

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH TABLOCK;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

DBCC CHECKDB'nin ne zaman kullanımıyla ilgili bilgiler

受影响的产品

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
文章属性
文章编号: 000134529
文章类型: Solution
上次修改时间: 18 3月 2025
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。