DBCC CHECKDB bu SQL Serverning asosiy ma'lumotlar bazasi yaxlitligi vositasi. Uni misollar bilan ishlatish, buzilishlarni tuzatish va ishlashni optimallashtirishni o'rganing.
1. ning ahamiyati SQL Server Ma'lumotlar bazasi salomatligi
1.1 Qaysi ma'lumotlar bazasi korruptsiyasi Costs Korxonalar
Bugun, most korxonalar o'zlarining muhim ma'lumotlarini ma'lumotlar bazalarida saqlaydilar. Ma'lumotlar bazasining buzilishi sodir bo'lganda, oqibatlar halokatli bo'ladi:
- Moliyaviy yo'qotishlar Ma'lumotlar yo'qolishi tufayli har yili o'rtacha 2.3 million dollar, apparatdagi nosozlik va korruptsiya asosiy sababdir (EMC Corporation)
- Biznesni yopish stavkalari apparatdagi nosozliklar tufayli ma’lumotlar yo‘qolgan kichik korxonalarning 50 foizi ikki yil ichida faoliyatini to‘xtatib qo‘yishini, ma’lumotlar halokatiga uchragan korxonalarning 94 foizi esa umuman omon qolmasligini ko‘rsatadi.
- Ma'lumotlarning buzilishi chastotasi har yili muhim ilovalarning 20 foiziga ta'sir qiladi, bu esa biznesning uzluksizligini buzishga olib keladi (Gartner tadqiqoti)
- Uskuna bilan bog'liq korruptsiya Qattiq diskning ishdan chiqishi va tizimdagi nosozliklar natijasida ma'lumotlar yo'qolishining 67% ni tashkil qiladi, ma'lumotlar yo'qolishining 40% apparatdagi nosozliklar bilan bevosita bog'liq.
- Dasturiy ta'minotning buzilishi costs jiddiyligi va ko'lamiga qarab minglab dollardan millionlab dollargacha o'zgarib turadi, korruptsiya asosiy sabab bo'lgan korxonalarning 82 foizi rejalashtirilmagan uzilishlarni boshdan kechirmoqda.
1.2 Nima uchun muntazam tibbiy tekshiruvlar juda muhim?
Mumkin bo'lgan kasalliklarni erta aniqlash uchun odamlar muntazam ravishda tibbiy ko'rikdan o'tishlari kerak. Xuddi shunday, ma'lumotlar bazalari ham muntazam ravishda sog'liqni tekshirishni talab qiladi:
- Potentsial korruptsiyani erta aniqlash va uni tezda bartaraf etish, biznes uchun halokatli oqibatlarga olib kelishi mumkin bo'lgan muammolarning jiddiy va keng tarqalishining oldini olish.
- Ma'lumotlar bazasi optimal ishlashda ishlashiga ishonch hosil qiling.
- Cost proaktiv ma'lumotlar bazasi sog'lig'ini tekshirish ma'lumotlar bazasi halokati sodir bo'lganidan keyin reaktiv ma'lumotlarni tiklashga qaraganda ancha past.
1.3 Ma'lumotlar bazasi yaxlitligi buyruqlari bilan tanishish
SQL Server bilan ma'lumotlar bazasi sog'lig'ini saqlash uchun bir nechta o'rnatilgan buyruqlar beradi DBCC CHECKDB m bo'lib xizmat qiladiost yaxlitlikni tekshirish uchun keng qamrovli vosita mavjud. Ushbu buyruqlar ma'lumotlar bazasi tuzilmasining turli jihatlarini tekshirish uchun birgalikda ishlaydi, alohida jadvallardan tortib butun ma'lumotlar bazasi izchilligigacha, ma'lumotlaringizni xavfsiz va foydalanish mumkin bo'lgan to'liq texnik xizmat ko'rsatish strategiyasini shakllantiradi.
2. DBCC CHECKDB nima
DBCC CHECKDB is SQL Serverma'lumotlar bazasi yaxlitligini tekshirish va korruptsiya bilan bog'liq muammolarni aniqlash uchun asosiy vosita.
- Bu GUI vositasi emas, balki T-SQL bayonotidir.
- Siz uni umumiy usullar bilan bajarishingiz mumkin, masalan SQL Server Management Studio (SSMS), SQL Server Agent, SQLCMD va boshqalar.
2.1 CHECKDB aslida sizning ma'lumotlar bazangizda nimani tekshiradi
DBCC CHECKDB-ni ishga tushirganingizda, buyruq ma'lumotlar bazasi tuzilmasi bo'ylab bir nechta tasdiqlash qatlamlarini amalga oshiradi:
- Sahifa nazorat summalarini tekshirish jismoniy buzilish va apparat bilan bog'liq muammolarni aniqlash
- Indeksning muvofiqligini tekshirish to'g'ri ma'lumotlarni olish va so'rovlar ishlashini ta'minlash
- Ajratish tuzilishini tekshirish aniq joydan foydalanish va sahifa taqsimotini tasdiqlash uchun
- Yo'naltiruvchi yaxlitlik tekshiruvi tegishli jadvallar va xorijiy kalit munosabatlari o'rtasida
- Tizim jadvalining muvofiqligini tekshirish ta'minlash uchun SQL Serverning ichki metama'lumotlari ishonchliligicha qolmoqda
- Ma'lumotlar sahifasi ulanishini tekshirish to'g'ri sahifa zanjiri yaxlitligini tasdiqlash uchun
- Ma'lumotlar bazasi sxemasining muvofiqligi ob'ekt ta'riflari va bog'liqliklarini tasdiqlash uchun
Ushbu keng qamrovli tekshiruvlar foydalanuvchi ma'lumotlarini va tizim tuzilmalarini qamrab oladi va ma'lumotlar bazasining sog'lig'i holatini to'liq ko'rish imkonini beradi.
3. DBCC CHECKDB dasturini ishga tushirish: bosqichma-bosqich
3.1 Old shartlar
Quyida har qanday DBCC CHECKDB operatsiyasini bajarishdan oldin nazorat ro'yxati keltirilgan:
- Ma'lumotlar bazasini to'liq zaxiralash – Agar korruptsiya aniqlansa yoki ta'mirlash operatsiyalari zarur bo'lsa, xavfsizlik tarmog'ingiz sifatida yaxlitlik tekshiruvlarini o'tkazishdan oldin to'liq zaxira nusxasini yarating.
- Tegishli ruxsatnomalar – DBCC CHECKDB buyruqlarini bajarish uchun sizga sysadmin yoki db_owner ruxsatlari kerak
- Etarli tizim resurslari:
- Xotira: ma'lumotlar bazasi hajmining 25%
- Tempdb maydoni: ma'lumotlar bazasi hajmining 10-15%
- CPU: texnik xizmat ko'rsatish vaqtida 50-70% mavjudligi
- I/O: Og'ir o'qish operatsiyalarini kuting
- Ma'lumotlar bazasiga kirish imkoniyati - Ma'lumotlar bazasiga kirish mumkin va cheklangan holatda emasligini tekshiring, chunki CHECKDB barcha ma'lumotlar bazasi sahifalarini o'qishga kirishni talab qiladi.
3.2 Asosiy buyruq
Most DBCC CHECKDB asosiy buyrug'i uchta umumiy o'zgarishlarni o'z ichiga oladi:
(1) Joriy ma'lumotlar bazasini tekshiring (parametrlar yo'q):
DBCC CHECKDB
(2) Ma'lumotlar bazasini nomi bo'yicha tekshiring:
DBCC CHECKDB ('YourDatabaseName')
(3) Ma'lumotlar bazasini ID bo'yicha tekshiring:
DBCC CHECKDB(5) -- Replace 5 with your database ID
Ushbu asosiy buyruq belgilangan ma'lumotlar bazasining to'liq yaxlitligini tekshirishni amalga oshiradi, barcha jadvallar, indekslar va tizim tuzilmalarini tekshiradi. Bo'sh joy bo'lmagan standart nomlari bo'lgan ma'lumotlar bazalari uchun siz tirnoqlarni qoldirishingiz mumkin. Buyruq yakunlanmaguncha ishlaydi, jarayon haqida xabarlar va yakuniy natijalar ko'rsatiladi. Ushbu asosiy sintaksis kichikroq ma'lumotlar bazalari uchun yoki sizda etarlicha texnik vaqt mavjud bo'lganda mukammal ishlaydi.
Quyida DBCC CHECKDB-ni ishga tushirishning skrinshoti keltirilgan SQL Server Management Studio (SSMS):
3.3 To‘liq variantlar
Quyida DBCC CHECKDB uchun toʻliq variantlar mavjud:
| kategoriya | Option | Tavsif | DBCC CHECKDB misoli |
|---|---|---|---|
| Ta'mirlash imkoniyatlari | REPAIR_REBUILD |
Ma'lumotlarni yo'qotmasdan ta'mirlash (masalan, indeksni qayta tiklash) | DBCC CHECKDB ('MyDB', REPAIR_REBUILD) |
REPAIR_FAST |
Ta'mirlash yo'q. Faqat orqaga qarab muvofiqlik | DBCC CHECKDB ('MyDB', REPAIR_FAST) |
|
REPAIR_ALLOW_DATA_LOSS |
Barcha xatolarni tuzatadi (ma'lumotlar yo'qolishiga olib kelishi mumkin) | DBCC CHECKDB ('CorruptDB', REPAIR_ALLOW_DATA_LOSS) |
|
| Qo'llash doirasini nazorat qilish | NOINDEX |
Klastersiz indeks tekshiruvlarini o'tkazib yuboradi | DBCC CHECKDB ('LargeDB', NOINDEX) |
PHYSICAL_ONLY |
Faqat jismoniy xotira yaxlitligini tekshiradi (sahifalar/yozuvlar) | DBCC CHECKDB ('ProdDB', PHYSICAL_ONLY) |
|
DATA_PURITY |
Mantiqiy ustun-qiymat xatolarini tekshiradi (masalan, noto'g'ri sanalar) | DBCC CHECKDB ('OldDB', DATA_PURITY) |
|
EXTENDED_LOGICAL_CHECKS |
Chuqur mantiqiy tekshiruvlar (indekslangan ko'rinishlar, XML/fazoviy indekslar) | DBCC CHECKDB ('ComplexDB', EXTENDED_LOGICAL_CHECKS) |
|
| Chiqishni boshqarish | ALL_ERRORMSGS |
Barcha xatolarni ko'rsatadi (standart: har bir ob'ekt uchun 200) | DBCC CHECKDB ('MyDB', ALL_ERRORMSGS) |
NO_INFOMSGS |
Axborot xabarlarini yashiradi | DBCC CHECKDB ('MyDB', NO_INFOMSGS) |
|
| bajarish | TABLOCK |
Jadval qulflaridan foydalanadi (TempDB foydalanishni kamaytiradi, lekin yozishni bloklaydi) | DBCC CHECKDB ('BigDB', TABLOCK) |
MAXDOP = number |
Parallellik sozlamalarini bekor qiladi | DBCC CHECKDB ('MyDB', MAXDOP = 2) |
|
| Qulaylik | ESTIMATEONLY |
Kerakli TempDB maydonini hisoblaydi. (haqiqiy tekshiruv yo'q) | DBCC CHECKDB ('MyDB', ESTIMATEONLY) |
4. Natijalaringizni tushunish
DBCC CHECKDB uning bajarilishi muvaffaqiyatli yakunlangan yoki bajarilmaganiga qarab turli natijalar beradi. Keling, ularni batafsil tushuntirib beraylik.
4.1 CHECKDB ijrosi muvaffaqiyatli yakunlandi
Agar DBCC CHECKDB bajarilishi muvaffaqiyatli yakunlansa, u ma'lumotlar bazasining sog'lig'i holatiga qarab turli turdagi natijalar haqida xabar beradi.
4.1.1 Hech qanday muammo topilmadi
Agar DBCC CHECKDB hech qanday muammo topmasa, quyidagiga o'xshash natijani ko'rasiz:
CHECKDB found 0 allocation errors and 0 consistency errors in database 'YourDatabase'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Ushbu natija ma'lumotlar bazasi barcha tekshirilgan tuzilmalar bo'ylab mukammal yaxlitlikni saqlab turishini ko'rsatadi.
4.1.2 Korruptsiya xatolari aniqlandi
DBCC CHECKDB har doim buzilish xatosini aniqlasa, u quyidagi tuzilishga ega xato xabari haqida xabar beradi:
Jiddiylik darajasi bo'yicha qo'llanma:
- 16-19 daraja: Foydalanuvchi tomonidan tuzatiladigan xatolar, ko'pincha kichik buzilishlar
- 20-24 daraja: Tizim xatolari, zudlik bilan e'tibor talab qiladigan jiddiy buzilish
- 25-bosqich: Fatal xatolar, ma'lumotlar bazasiga kirish imkoni bo'lmasligi mumkin
Umumiy xatolarga quyidagilar kiradi:
- Sahifa nazorat summasi xatosi (824-xabar)
- Ajratish xatolari (8928-xabar)
- Indeksning izchilligi bilan bog'liq muammolar (8964-xabar)
Xabar tuzilishini tushunish javob harakatlariga ustuvor ahamiyat berish va tegishli tiklash strategiyalarini aniqlashga yordam beradi.
4.1.3 Umumiy axborot va ogohlantirish xabarlari
Barcha DBCC CHECKDB chiqishi jiddiy muammolarni ko'rsatmaydi. Shuningdek, u ba'zi ma'lumot va ogohlantirish xabarlarini chiqarishi mumkin, jumladan:
- Ta'mirlash bayonotlari – Kichik muammolarni hal qilish uchun tuzatish buyruqlarini taklif qiluvchi xabarlar
- Ajratish haqida ogohlantirishlar - Ma'lumotlarga kirishga ta'sir qilmaydigan joy ajratish haqida ogohlantirishlar
- Ishlash bo'yicha tavsiyalar – Indekslarni saqlash va optimallashtirish bo‘yicha takliflar
- Axborot xabarnomalari – Darhol harakat talab qilmaydigan umumiy holat xabarlari
Ushbu xabarlar zudlik bilan chora ko'rishni talab qiluvchi jiddiy korruptsiya va muntazam ta'mirlash oynalarida hal qilinishi mumkin bo'lgan kichik muammolar o'rtasidagi farqni ko'rsatadigan qimmatli texnik ko'rsatmalar beradi.
Ogohlantirish xabariga misol:
DBCC results for 'InventoryDatabase'.
Msg 2570, Level 16, State 3, Line 1
Page (2:8452), slot 17 in object ID 485577333, index ID 0, partition ID 72057594038845456,
alloc unit ID 72057594042515968 (type "In-row data").
Column "ProductPrice" value is out of range for data type "decimal". Update column to a legal value.
There are 45892 rows in 1247 pages for object "Products".
CHECKDB found 0 allocation errors and 1 consistency errors in table 'Products' (object ID 485577333).
CHECKDB found 0 allocation errors and 1 consistency errors in database 'InventoryDatabase'.
4.2 CHECKDB ijrosini bekor qilish
Agar CHECKDB turli sabablarga ko'ra o'z ishini to'xtatsa, u xato xabari haqida xabar beradi va quyidagi davlat kodi bilan xato jurnalini qo'shadi:
| Davlat | Tavsif |
|---|---|
0 |
Xato raqami 8930 ko'tarildi. Bu DBCC buyrug'ini tugatgan metama'lumotlarning buzilishini ko'rsatadi. |
1 |
Xato raqami 8967 ko'tarildi. Ichki DBCC xatosi yuz berdi. |
2 |
Favqulodda rejimda ma'lumotlar bazasini ta'mirlashda xatolik yuz berdi. |
3 |
Bu DBCC buyrug'ini tugatgan metama'lumotlarning buzilishini ko'rsatadi. |
4 |
Tasdiqlash yoki kirish huquqi buzilishi aniqlandi. |
5 |
DBCC buyrug'ini to'xtatgan noma'lum xatolik yuz berdi. |
Misol xato xabari:
Failed:(-1073548784) Executing the query "DBCC CHECKDB('InventoryDB') WITH NO_INFOMSGS" failed with the following error: "There is insufficient system memory to run this query.Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
or
2024-11-18 09:52:41.38 spid35 I/O error (bad page ID) detected during read at offset 0x00000024886000 in file 'C:\Data\MSSQL\DATA\SalesDatabase.mdf'.
Xato jurnaliga misol:
11/15/2024 09:23:17,spid52,Unknown,DBCC CHECKDB (SalesDatabase) WITH all_errormsgs no_infomsgs executed by CORP\dbadmin terminated abnormally due to error state 3. Elapsed time: 1 hours 32 minutes 18 seconds.
Bunday holatda siz muqobil ilg'or variantlarni sinab ko'rishingiz mumkin, masalan DataNumen SQL Recovery ma'lumotlar bazasidagi buzilishlarni tuzatish uchun.
5. Korruptsiya xatolarini tuzatish
5.1 Zaxiralash va tiklash: eng xavfsiz tuzatish
DBCC CHECKDB korruptsiya xatolarini aniqlaganda, toza zaxiradan tiklash eng xavfsiz va m.ost ishonchli yechim. Ushbu yondashuv ma'lumotlarning yaxlitligini kafolatlaydi va korruptsiyaning asosiy sabablarini yo'q qiladi. Qayta tiklashdan oldin, yordamida zahiraning yaxlitligini tekshiring FAQAT TASHLATISHNI QAYTA QILISH buyruqlar va ma'lumotlar yo'qotilishini minimallashtirish uchun vaqtni tiklash variantlarini ko'rib chiqing. Asl sabablarni tahlil qilish uchun buzilish tafsilotlarini hujjatlang, chunki apparat muammolari yoki dasturiy ta'minotdagi xatolar takrorlanishning oldini olish uchun qo'shimcha e'tibor talab qilishi mumkin.
5.2 Sahifa darajasidagi korruptsiya yechimlari
Kichik ma'lumotlar qismlariga ta'sir qiladigan alohida sahifa buzilishi uchun, SQL Server Enterprise Edition ma'lumotlar bazasini to'liq tiklamasdan ma'lum zararlangan sahifalarni tiklaydigan sahifalarni tiklash imkoniyatlarini taklif etadi. Ushbu ilg'or texnika to'liq tiklash modeli va joriy jurnalning zaxira nusxalarini talab qiladi.
Sahifani bosqichma-bosqich tiklash jarayoni:
- Buzilgan sahifani aniqlang CHECKDB xato xabaridan (masalan, 1:256-bet)
- Joriy jurnalning zaxira nusxasini oling oxirgi tranzaktsiyalarni qo'lga kiritish uchun:
BACKUP LOG YourDatabase TO DISK = 'C:\Backups\YourDB_Log.trn'
- Buzilgan sahifani tiklang m danost oxirgi to'liq zaxira:
RESTORE DATABASE YourDatabase PAGE = '1:256'
FROM DISK = 'C:\Backups\YourDB_Full.bak'
- Differensial zaxira nusxasini qo'llang (agar mavjud bo'lsa):
RESTORE DATABASE YourDatabase PAGE = '1:256'
FROM DISK = 'C:\Backups\YourDB_Diff.bak'
- Barcha jurnallarning zaxira nusxalarini qo'llang ketma-ketlikda, shu jumladan hozirgina yaratilgan:
RESTORE LOG YourDatabase FROM DISK = 'C:\Backups\YourDB_Log1.trn'
RESTORE LOG YourDatabase FROM DISK = 'C:\Backups\YourDB_Log2.trn'
-- Continue for all log backups in order
RESTORE LOG YourDatabase FROM DISK = 'C:\Backups\YourDB_Log.trn'
- Yakuniy jurnalning zaxira nusxasini oling va tiklang sahifani joriy qilish uchun:
BACKUP LOG YourDatabase TO DISK = 'C:\Backups\YourDB_Final.trn'
RESTORE LOG YourDatabase FROM DISK = 'C:\Backups\YourDB_Final.trn'
Muhim bo'lmagan ma'lumotlar uchun alternativ: Agar buzilish muhim bo'lmagan ma'lumotlarga ta'sir qilsa, buzilgan tuzilmalarni tiklashdan oldin ta'sirlanmagan qatorlarni yangi jadvallarga eksport qilishingiz mumkin:
-- Export good data to a new table
SELECT * INTO YourTable_Backup
FROM YourTable
WHERE NOT EXISTS (SELECT 1 FROM corrupt_page_list WHERE page_id = target_page)
-- Drop and recreate the corrupted table
DROP TABLE YourTable
-- Recreate table structure and reload clean data
5.3 Indeksdagi korruptsiyani tezkor tuzatishlar
Indeksning buzilishi ko'pincha jadval ma'lumotlariga ta'sir qilmasdan indeks tuzilmalarini qayta yaratadigan qayta qurish operatsiyalariga yaxshi javob beradi:
ALTER INDEX ALL ON YourTable REBUILD
Ushbu yondashuv, ayniqsa, klasterli bo'lmagan indeks buzilishlari uchun yaxshi ishlaydi, chunki qayta qurish manba jadvali ma'lumotlaridan indeks sahifalarini qayta tiklaydi va barcha asl ma'lumotlarni saqlagan holda korruptsiyani samarali ravishda yo'q qiladi.
6. REPAIR_REBUILD va REPAIR_ALLOW_DATA_LOSS dan foydalaning
Agar oldingi usullarning barchasi muvaffaqiyatsiz bo'lsa yoki amalga oshirilmasa, ma'lumotlar bazasini tuzatish uchun REPAIR_REBUILD va REPAIR_ALLOW_DATA_LOSS opsiyalaridan foydalanishingiz mumkin.
6.1 REPAIR_REBUILD (Xavfsiz variant):
- uchun foydalaning: Indeksning buzilishi va kichik taqsimlash xatolari
- Ma'lumotlar xavfsizligi: Ma'lumotlarni o'chirmasdan buzilishlarni tuzatishga urinish
- Xavf darajasi: Kam – maʼlumotlar yoʻqolishi kutilmaydi
- Oddiy stsenariylar: Klasterli bo'lmagan indeks buzilishi, kichik metadata muammolari
- Buyruq misoli:
DBCC CHECKDB('YourDB', REPAIR_REBUILD)
6.2 REPAIR_ALLOW_DATA_LOSS (oxirgi chora):
- uchun foydalaning: Zaxira nusxalari mavjud bo'lmaganda jiddiy buzilish
- Ma'lumotlar xavfsizligi: Ma'lumotlar bazasi funksiyasini tiklash uchun buzilgan ma'lumotlarni o'chirib tashlashi mumkin
- Xavf darajasi: Yuqori - doimiy ma'lumotlar yo'qolishi mumkin
- Oddiy stsenariylar: Sahifaning buzilishi, tizim jadvalining shikastlanishi, ajratish zanjiri xatolari
- Buyruq misoli:
DBCC CHECKDB('YourDB', REPAIR_ALLOW_DATA_LOSS)
6.3 Ushbu variantlar uchun eng yaxshi amaliyotlar:
- Har doim sinovdan o'tkazing iloji bo'lsa, ma'lumotlar bazasi nusxalarida tuzatish operatsiyalari
- Har doim zaxiralang ushbu variantlarni ishga tushirishdan oldin
- Barcha o'zgarishlarni hujjatlashtiring muvofiqlik va muammolarni bartaraf etish uchun
- Ma'lumotlar bazasini bitta foydalanuvchi rejimiga o'rnating ta'mirlash ishlarini bajarishdan oldin
Odatda, biz harakat qilishimiz kerak REPAIR_REBUILD birinchi variant. Agar u muvaffaqiyatsiz bo'lsa, harakat qilib ko'ring REPAIR_ALLOW_DATA_LOSS variant.
6.4 REPAIR_ALLOW_DATA_LOSS natijalari
6.4.1 Ma'lumotlar yo'qolishi bilan ta'mirlash muvaffaqiyatli bo'ladi
Ba'zan REPAIR_ALLOW_DATA_LOSS variant muvaffaqiyatli bo'ladi, lekin ba'zi ma'lumotlar lost ta'mirdan keyin.
Quyida ba'zi namunali xabarlar keltirilgan:
CHECKDB found 0 allocation errors and 103 consistency errors in database ‘SalesDatabase’.
CHECKDB fixed 0 allocation errors and 103 consistency errors in database ‘SalesDatabase’.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Msg 8909, Level 16, State 1, Line 8
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 45035996309880832 (type Unknown), page ID (1:553) contains an incorrect page ID in its page header. The PageId in the page header = (0:0).
The error has been repaired.
Msg 8939, Level 16, State 98, Line 8
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 111464090777419776 (type Unknown), page (0:0). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 2057 and -1.
Could not repair this error.
Buning sababi shundaki, DBCC CHECKDB ba'zi shikastlangan yozuvlardan voz kechish orqali ma'lumotlar bazasini tuzatadi, lekin aslida, most orqali ularni qayta tiklash mumkin DataNumen SQL Recovery.
Namuna fayllar:
| SQL Server versiya | MDF fayli buzilgan | MDF fayli tomonidan tuzatildi DataNumen SQL Recovery |
| SQL Server 2014 | Xato10_1.mdf (8909 xabar, keyin 8939 xabar) (600 ta yozuv lost REPAIR_ALLOW_DATA_LOSS bilan) | Xato10_1_fixed.mdf (Yozuv yo'q lost) |
| SQL Server 2014 | Xato10_2.mdf (8909 xabar, keyin 8939 xabar) (6000 ta yozuv (50%) lost REPAIR_ALLOW_DATA_LOSS bilan) | Xato10_2_fixed.mdf (Faqat 100 ta yozuv lost) |
| SQL Server 2014 | Xato7.mdf (100 ta yozuv lost REPAIR_ALLOW_DATA_LOSS bilan) | Error7_fixed.mdf (Faqat bitta rekord lost) |
6.4.2 Ta'mirlashda muvaffaqiyatsizliklar - Professional yechimni ko'rib chiqing
If REPAIR_ALLOW_DATA_LOSS bajarilmasa, u bir yoki bir nechta xato xabarlarini chiqaradi.
Quyida ba'zi misollar keltirilgan:
DBCC results for ‘MyDatabase’.
CHECKDB found 0 allocation errors and 0 consistency errors in database ‘MyDatabase’.
Msg 824, Level 24, State 2, Line 8
SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0xea8a9a2f; actual: 0x37adbff8). It occurred during a read of page (1:28) in database ID 39 at offset 0x00000000038000 in file ‘MyDatabase.mdf’. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Msg 7909, Level 20, State 1, Line 8
The emergency-mode repair failed.You must restore from backup.
Msg 8992, Level 16, State 1, Line 8
Check Catalog Msg 3852, State 1: Row (object_id=69) in sys.objects (type=S ) does not have a matching row (object_id=69,column_id=1) in sys.columns.
Msg 8945, Level 16, State 1, Line 8
Table error: Object ID 41, index ID 1 will be rebuilt.
Could not repair this error.
Msg 2510, Level 16, State 17, Line 8
DBCC checkdb error: This system table index cannot be recreated.
Repair: The Nonclustered index successfully rebuilt for the object “sysidxstats” in database “MyDatabase”.
Msg 8921, Level 16, State 1, Line 8
Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
Msg 8998, Level 16, State 2, Line 8
Page errors on the GAM, SGAM, or PFS pages prevent allocation integrity checks in database ID 39 pages from (1:0) to (1:8087). See other errors for cause.
CHECKDB found 1 allocation errors and 0 consistency errors not associated with any single object.
Msg 2575, Level 16, State 1, Line 8
The Index Allocation Map (IAM) page (1:157) is pointed to by the next pointer of IAM page (0:0) in object ID 3, index ID 1, partition ID 196608, alloc unit ID 196608 (type In-row data), but it was not detected in the scan.
Could not repair this error.
CHECKDB found 1 allocation errors and 0 consistency errors in table ‘sys.sysrscols’ (object ID 3).
Msg 8948, Level 16, State 3, Line 8
Database error: Page (1:295) is marked with the wrong type in PFS page (1:1). PFS status 0x70 expected 0x60.
The error has been repaired.
Msg 8905, Level 16, State 1, Line 8
Extent (1:296) in database ID 39 is marked allocated in the GAM, but no SGAM or IAM has allocated it.
The error has been repaired.
Msg 5028, Level 16, State 4, Line 4
The system could not activate enough of the database to rebuild the log.
Msg 5125, Level 24, State 2, Line 2
File ‘C:Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATASalesDatabase.mdf’ appears to have been truncated by the operating system. Expected size is 5120 KB but actual size is 5112 KB.
Msg 3414, Level 21, State 1, Line 2
An error occurred during recovery, preventing the database ‘SalesDatabase’ (39:0) from restarting. Diagnose the recovery errors and fix them, or restore from a known good backup. If errors are not corrected or expected, contact Technical Support.
Msg 3313, Level 21, State 1, Line 2
During redoing of a logged operation in database ‘SalesDatabase’, an error occurred at log record ID (135:752:2). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
Bunday stsenariylarda siz kabi professional echimdan foydalanishingiz kerak DataNumen SQL Recovery ma'lumotlar bazasini tuzatish uchun.
Namuna fayllar
| SQL Server versiya | MDF fayli buzilgan | MDF fayli tomonidan tuzatildi DataNumen SQL Recovery |
| SQL Server 2014 | Xato1_3.mdf (Yagona xabar 824) | Xato1_3_fixed.mdf |
| SQL Server 2014 | Xato1_1.mdf (Doimiy xabar 824 xatolari) | Xato 1_1_fixed.mdf |
| SQL Server 2014 | Xato1_2.mdf ((824 xabar, keyin 7909 xabar) | Xato1_2_fixed.mdf |
| SQL Server 2014 | Xato4_1.mdf (8992 xabar, keyin 3852 xabar) | Xato4_1_fixed.mdf |
| SQL Server 2014 | Xato4_2.mdf (8992 xabar, keyin 3852 xabar) | Xato4_2_fixed.mdf |
| SQL Server 2014 | Error5.mdf (8945 xabar) | Error5_fixed.mdf |
| SQL Server 2014 | Error6.mdf (2510 xabar) | Error6_fixed.mdf |
| SQL Server 2014 | Error2.mdf (2575 xabar) | Error2_fixed.mdf |
| SQL Server 2014 | Error11.mdf (8905 xabar) | Error11_fixed.mdf |
| SQL Server 2014 | Error3.mdf (5028 xabar) | Error3_fixed.mdf |
| SQL Server 2014 | Xato8.mdf (5125 xabar) | Xato8_fixed.mdf |
| SQL Server 2014 | Error9.mdf (3313 xabar) | Error9_fixed.mdf |
7. Eng yaxshi amaliyotlar
7.1 Muntazam CHECKDB operatsiyalarini rejalashtirish
Muhim ishlab chiqarish ma'lumotlar bazalari uchun haftalik DBCC CHECKDB bajarilishini, yuqori tranzaksiya tizimlari uchun kunlik tekshiruvlarni amalga oshiring. Ishlash samaradorligini minimallashtirish uchun kam foydalanish davrlaridagi operatsiyalarni rejalashtiring va maʼlumotlar bazasi oʻlchami va texnik xizmat koʻrsatish oynalari asosida toʻliq tekshirishlar va FIZIKAL_FAQAT opsiyalari oʻrtasida aylanishni koʻrib chiqing. orqali avtomatlashtirilgan rejalashtirish SQL Server Agent markazlashtirilgan monitoring va ogohlantirish imkoniyatlarini ta'minlab, izchil bajarilishini ta'minlaydi.
7.2 Ishlash ta'sirini boshqarish
DBCC CHECKDB operatsiyalari muhim tizim resurslarini iste'mol qiladi, bu esa bir vaqtning o'zida foydalanuvchi faoliyatiga ta'sir qilishi mumkin. Ishga ta'sir qilish naqshlarini tushunish uchun tekshiruvlar davomida protsessordan foydalanish, xotira sarfini va disk kiritish-chiqarishni kuzatib boring. Muntazam tekshiruvlar uchun NOINDEX opsiyalaridan foydalanishni o'ylab ko'ring, oylik texnik xizmat ko'rsatish oynalari uchun to'liq tekshirishni zaxiralang. Butunlikni tekshirish davrlarida kutishlarni boshqarish uchun so'rovlar uchun kutish vaqtini uzaytirish va foydalanuvchi bilan aloqa strategiyalarini amalga oshiring.
7.3 Xizmat oynasini rejalashtirish
DBCC CHECKDB rejalashtirishni zaxira operatsiyalari, indekslarni qayta tiklash va statistik yangilanishlar kabi boshqa texnik xizmatlar bilan muvofiqlashtiring. Ishlashning pasayishi yoki vaqt tugashi bilan bog'liq muammolarga olib kelishi mumkin bo'lgan resurslarni ko'p talab qiladigan operatsiyalardan saqlaning. Ma'lumotlar hajmining oshishi bilan to'liq yaxlitlikni tekshirish uchun etarli vaqtni ta'minlab, ma'lumotlar bazasi hajmining o'sishi prognozlariga asoslanib, texnik xizmat ko'rsatish oynalarini rejalashtiring.
7.4 Avtomatlashtirilgan monitoring va ogohlantirish
moslashName SQL Server DBCC CHECKDB korruptsiyani aniqlaganida, agent ma'murlarni darhol xabardor qilish uchun ogohlantiradi. Yaxlitlikni tekshirish natijalarini ajratib oladigan va toifalarga ajratadigan jurnalni tahlil qilish yechimlarini joriy qiling, bu tendentsiyalarni tahlil qilish va muammolarni proaktiv aniqlash imkonini beradi. Korruptsiyaning turli darajadagi zo'ravonliklari uchun javob berish muddatlari va mas'ul xodimlarni belgilaydigan eskalatsiya tartib-qoidalarini yarating.
8. DBCC CHECKTABLE: Engil vaznli alternativ
8.1 CHECKDB o‘rniga CHECKTABLE dan qachon foydalanish kerak
DBCC CHECKTABLE alohida jadvallar uchun yaxlitlikni tekshirishni ta'minlaydi, bu esa uni ideal qiladi tarmuayyan ma'lumotlar bazasi ob'ektlarining nosozliklarini bartaraf etish va texnik xizmat ko'rsatishni oldi. Muayyan jadvallar bilan ishlash muammolarini tekshirishda, maʼlumotlar bazasini toʻliq tekshirish oʻrtasida muhim biznes jadvallarini tekshirishda yoki vaqt cheklovlari maʼlumotlar bazasini toʻliq tekshirishga toʻsqinlik qilganda CHECKTABLE-dan foydalaning. Ushbu yondashuv, ayniqsa, to'liq CHECKDB operatsiyalari mavjud texnik xizmat ko'rsatish oynalaridan oshib ketadigan katta ma'lumotlar bazalarida qimmatlidir.
8.2 DBCC CHECKTABLE sintaksisi va misollar
Asosiy CHECKTABLE buyrug'i tarmaxsus jadvallarni oladi:
DBCC CHECKTABLE('YourTable')
CHECKDB singari, CHECKTABLE ham turli xil variantlarni, jumladan, ishlashni optimallashtirish uchun NOINDEX va korruptsiyani hal qilish uchun tuzatish parametrlarini qo'llab-quvvatlaydi. Jadvalni aniq aniqlash uchun sxema nomlarini ham belgilashingiz mumkin:
DBCC CHECKTABLE('SchemaName.TableName', NOINDEX)
bu tarGeted yondashuv ish soatlarida tizimning ishlashini saqlab turganda, yaxlitlikni tekshirish imkonini beradi.
8.3 Katta ma'lumotlar bazalari uchun ishlashning afzalliklari
CHECKTABLE operatsiyalari ma'lumotlar bazasini to'liq tekshirishga qaraganda ancha tezroq yakunlanadi, bu esa muhim jadvallarning yaxlitligini tez-tez tekshirish imkonini beradi. Ushbu yondashuv haftalik yoki oylik jadvallar uchun keng qamrovli CHECKDB operatsiyalarini zaxiralashda muhim biznes jadvallarini kundalik tekshirish imkonini beradi. Resurs iste'molining kamayishi CHECKTABLE-ni minimal foydalanuvchi ta'siri bilan ishlab chiqarish muhitini bajarish uchun mos qiladi.
9. CHECKDB ishlamay qolganda
DBCC CHECKDB turli stsenariylarda muvaffaqiyatsiz bo'ladi, jumladan:
- DBCC CHECKDB bajarilishi anormal tarzda tugaydi
- DBCC CHECKDB bajarilishi muvaffaqiyatli yakunlandi, lekin ta'mirlash imkoniyatlari ma'lumotlar bazasini tuzatmaslik.
Bunday stsenariylarda bizga ma'lumotlar bazasidagi buzilishlarni tuzatishga yordam beradigan professionalroq vosita kerak.
9.1 Kirish DataNumen SQL Recovery
DataNumen SQL Recovery yanada rivojlangan imkoniyatlarni taqdim etadi:
- Eng yaxshi tiklanish darajasi sanoatda.
- Jiddiy buzilgan ma'lumotlar bazasi fayllarini tiklang.
- Jadvallar, indekslar, ko'rinishlar, triggerlar, qoidalar va standart sozlamalarni o'z ichiga olgan barcha ma'lumotlar bazasi ob'ektlarini tiklang.
- Saqlangan protseduralarni, skalyar funktsiyalarni, satrga kiritilgan jadval qiymatli funktsiyalarni va ko'p holatli jadval qiymatli funktsiyalarni tiklash.
- Doimiy o'chirilgan yozuvlarni tiklang.
- Shifrlangan ob'ektlarning shifrini ochish SQL Server ma'lumotlar bazalari.
- MDF fayllarini ommaviy ravishda ta'mirlash.
- Kompleks ta'mirlash imkoniyatlari.
- Kengaytirilgan ro'yxatga olish va hisobot.
- Hamma uchun qo'llab-quvvatlash SQL Server versiyalari.
- Texnik yordamning mavjudligi
- Doimiy yangilanishlar va yaxshilanishlar
9.2 Muvaffaqiyat darajasini taqqoslash
Qayta tiklash muvaffaqiyat darajasi sezilarli darajada farq qiladi:
- DBCC CHECKDB & CHECKTABLE: 1.27% o'rtacha tiklanish darajasi
- DataNumen: 92.6% tiklanish darajasi
Quyida to'liq raqobatdosh taqqoslash mavjud:
9.3 Jiddiy korruptsiyadan tiklanish
Og'ir holatlar uchun ilg'or imkoniyatlar:
- Jismoniy shikastlangan saqlashdan tiklash
- Formatlangan drayvlar yoki buzilgan tizimlardan tiklash
- Diskdagi tasvirlardan, zaxira fayllardan, virtual mashina disk fayllaridan, tempdan tiklashrary fayllar va boshqalar.
9.4 Professional echimlarni qachon ko'rib chiqish kerak
- Yaqinda zaxira nusxasi mavjud emas
- DBCC CHECKDB muvaffaqiyatsiz tugadi
- Og'ir korruptsiya stsenariylari
- Muhim biznes ma'lumotlari bilan ishlash
- Vaqt muhim bo'lganda
- Maksimal tiklanish zarur bo'lganda
10. Savol-javoblar
10.1 Asosiy foydalanish savollari
Savol: DBCC CHECKDB ni qanchalik tez-tez ishga tushirishim kerak?
A: Muhim ishlab chiqarish ma'lumotlar bazalari uchun CHECKDB ni har hafta ishga tushiring. Yuqori tranzaksiya tizimlari uchun PHYSICAL_ONLY opsiyasidan foydalanib, har hafta toʻliq tekshiruvlar bilan kunlik tekshiruvlarni koʻrib chiqing. Rivojlanish ma'lumotlar bazalari har oyda tekshirilishi mumkin.
Savol: DBCC CHECKDB ni jonli ishlab chiqarish ma'lumotlar bazasida ishga tushira olamanmi?
A: Ha, DBCC CHECKDB foydalanuvchilarni bloklamasdan onlayn ma'lumotlar bazalarida ishlashi mumkin. Biroq, u sezilarli resurslarni sarflaydi, shuning uchun uni past faollik davrlarida rejalashtiring va tizim ish faoliyatini kuzatib boring.
Savol: CHECKDB va CHECKTABLE o'rtasidagi farq nima?
A: CHECKDB butun ma'lumotlar bazasini tekshiradi, CHECKTABLE esa alohida jadvallarga e'tibor beradi. CHECKTABLE dan foydalaning tarmuammolarni bartaraf qilish yoki ma'lumotlar bazasini skanerlamasdan muayyan jadvallarni tekshirish kerak bo'lganda.
10.2 Ishlash va resurslarga oid savollar
Savol: Nima uchun DBCC CHECKDB mening katta ma'lumotlar bazasida shunchalik uzoq vaqt oladi?
A: CHECKDB muddati ma'lumotlar bazasi hajmi, apparat ishlashi va foydalanilgan variantlarga bog'liq. Tezroq tekshirish uchun PHYSICAL_ONLY yoki klasterli bo'lmagan indekslarni o'tkazib yuborish uchun NOINDEX dan foydalaning. Maxsus resurslar bilan parvarishlash oynalarida ishlashni ko'rib chiqing.
Savol: CHECKDB uchun qancha tempdb maydoni kerak?
A: Odatda, CHECKDB operatsiyalari davomida tempdb uchun ma'lumotlar bazasi hajmining 10-15% ajrating. Aniq taxminlarni olish uchun ESTIMATEONLY opsiyasidan foydalaning: DBCC CHECKDB('YourDB') WITH ESTIMATEONLY
Savol: Ishlayotgan CHECKDB operatsiyasini bekor qila olamanmi?
A: Ha, seans identifikatoridagi KILL buyrug'i yordamida CHECKDB-ni bekor qilishingiz mumkin. Biroq, bekor qilish ma'lumotlar bazasi yaxlitligi haqida hech qanday ma'lumot bermaydi va uni keyinroq qayta ishga tushirishingiz kerak bo'ladi.
10.3 Xatolarni ko'rib chiqish savollari
Savol: CHECKDB xatolarni topdi - vahima qilishim kerakmi?
A: Vahima qo'ymang, lekin tezda harakat qiling. Birinchidan, CHECKDB muvaffaqiyatli yakunlanganmi, lekin buzilish aniqlanganmi yoki CHECKDB o'zi ishlamaganligini aniqlang. Xatolar faqat klasterli bo'lmagan indekslarga (kamroq muhim) yoki jadval ma'lumotlariga (jiddiyroq) ta'sir qilishini tekshiring.
Savol: REPAIR_ALLOW_DATA_LOSS dan qachon foydalanishim kerak?
A: Ma'lumotlar bazasini to'liq yo'qotish bilan solishtirganda, sizda foydalanish mumkin bo'lgan zaxira nusxalari bo'lmaganda va ma'lumotlarni yo'qotish mutlaq oxirgi chora sifatida qabul qilinadi. Har doim avval zaxiradan tiklashga harakat qiling, chunki ta'mirlash operatsiyalari ma'lumotlarning doimiy yo'qolishiga olib kelishi mumkin.
Savol: "Ma'lumotlar bazasidagi izchillik xatolari" va "ajratish xatolar" nimani anglatadi?
A: Ajratish xatolar qanday ta'sir qiladi SQL Server disk maydonidan foydalanishni kuzatadi, izchillik xatolari ma'lumotlar yoki indeks tuzilmalari bilan bog'liq muammolarni ko'rsatadi. Ikkalasi ham e'tibor talab qiladi, ammo izchillikdagi xatolar odatda ma'lumotlarga kirishga bevosita ta'sir qiladi.
10.4 Zaxira va tiklash bo'yicha savollar
Savol: Zaxira nusxalarida CHECKDB ni ishga tushirishim kerakmi?
A: Mutlaqo! Sinov serverlariga zaxira nusxalarini tiklagandan so'ng CHECKDB dasturini ishga tushiring. Bu zaxiraning yaxlitligini tasdiqlaydi va korruptsiyadan xalos bo'lishingizni ta'minlaydi. Iloji bo'lsa, bu jarayonni avtomatlashtiring.
Savol: Mening zahira nusxam ham buzilgan - endi nima bo'ladi?
A: Toza nusxani topmaguningizcha eski zaxira nusxalarini sinab ko'ring. Hech qanday toza zaxira mavjud bo'lmasa, professional tiklash echimlarini ko'rib chiqing DataNumen SQL Recovery. Kelajakda sodir bo'lishining oldini olish uchun korruptsiya vaqt jadvalini hujjatlashtiring.
Savol: Ma'lumotlar bazasini to'liq tiklamasdan sahifani tiklash mumkinmi?
A: Ha, lekin faqat ichida SQL Server To'liq tiklash modeli va joriy jurnalning zaxira nusxalari bilan Enterprise Edition. Sahifani tiklash alohida sahifaning buzilishi uchun ishlaydi, lekin tegishli tartib-qoidalarga rioya qilgan holda ehtiyotkorlik bilan bajarilishini talab qiladi.
10.5 Nosozliklarni bartaraf etish bo'yicha savollar
Savol: CHECKDB "bo'sh joy yo'q" xatolari bilan ishlamayapti - nima qilishim mumkin?
A: Tempdb-da joy bo'shating, tempdb-ni tezroq saqlashga o'tkazing yoki tempdb-dan foydalanishni kamaytirish uchun TABLOCK opsiyasidan foydalaning. Resurs talablarini kamaytirish uchun CHECKDB ni NOINDEX yoki PHYSICAL_ONLY bilan ishga tushiring.
Savol: CHECKDB chiqishidan qaysi jadvalda buzilish borligini qanday aniqlash mumkin?
A: Xato xabarlarida "ob'ekt identifikatori" raqamlarini qidiring, so'ngra foydalaning: SELECT OBJECT_NAME(object_id) jadval nomlarini topish uchun. Xato xabarlari, shuningdek, joylashuvni aniq identifikatsiyalash uchun sahifa va slot raqamlarini ham o'z ichiga oladi.
Savol: Uskuna bilan bog'liq muammolar CHECKDB noto'g'ri pozitivlar haqida xabar berishiga olib kelishi mumkinmi?
A: Ha, ishlamay qolgan apparat (ayniqsa, saqlash) CHECKDB ishga tushirilishi o'rtasida paydo bo'ladigan va yo'qolib ketadigan oraliq buzilishlarga olib kelishi mumkin. Agar xatolar bir-biriga mos kelmasa, kiritish-chiqarish quyi tizimingizni tekshirib ko'ring va naqshlarni tasdiqlash uchun bir nechta tekshiruvlarni o'tkazing.
10.6 Kengaytirilgan konfiguratsiya savollari
Savol: Qaysi kuzatuv bayroqlari CHECKDB ish faoliyatini yaxshilashi mumkin?
A: Trace bayrog'i 2562 CHECKDB ni bitta to'plam sifatida ishga tushirish orqali ish faoliyatini yaxshilashi mumkin. Trace bayrog'i 2549 ma'lumotlar bazasi fayllari alohida disklarda bo'lganda yordam beradi. Bulardan ehtiyotkorlik bilan foydalaning va avval ishlab chiqarishdan tashqarida sinab ko'ring.
Savol: CHECKDB monitoringi va ogohlantirishini qanday avtomatlashtiraman?
A: foydalanish SQL Server 8930, 8939 va boshqalar xato raqamlari uchun agent ogohlantirishlari. CHECKDB natijalarini chiqarish uchun jurnalni tahlil qilishni amalga oshiring va har qanday korruptsiya kashfiyoti uchun bildirishnomalar yarating. Ola Hallengren skriptlari kabi parvarishlash echimlaridan foydalanishni o'ylab ko'ring.
Savol: EXTENDED_LOGICAL_CHECKS variantidan foydalanishim kerakmi?
A: Faqat murakkab mantiqiy buzilishdan shubhalansangiz va etarli ishlashga ega bo'lsangiz. Ushbu parametr indekslangan ko'rinishlar, XML indekslari va fazoviy indekslar bo'yicha qo'shimcha tekshiruvlarni amalga oshiradi, lekin bajarish vaqtini sezilarli darajada oshiradi.
11. Xulosa
11.1 Asosiy fikrlarning qisqacha mazmuni
11.1.1 Muhim DBCC CHECKDB buyruqlari
Maʼlumotlar bazasini har tomonlama tekshirish uchun asosiy DBCC CHECKDB sintaksisini oʻzlashtiring, unumdorlikni optimallashtirish uchun NOINDEX va PHYSICAL_ONLY opsiyalaridan foydalaning va CHECKTABLE ni tushuning. tarjadval tekshiruvi olindi. Ushbu asosiy buyruqlar korruptsiyani erta aniqlash va yaxlitlikni tizimli monitoring qilish imkonini beruvchi proaktiv ma'lumotlar bazasini saqlash asosini tashkil qiladi.
11.1.2 Muhim eng yaxshi amaliyotlar haqida eslatma
Butunlikni tekshirishdan oldin har doim joriy zaxira nusxalarini saqlang, ma'lumotlar bazasining muhimligi asosida muntazam CHECKDB operatsiyalarini rejalashtiring va korruptsiya haqida darhol ogohlantirishlar uchun avtomatlashtirilgan monitoringni amalga oshiring. Esda tutingki, muntazam monitoring orqali oldini olish reaktiv yondashuvlardan ustundir va standart vositalar etarli bo'lmaganda professional tiklash echimlari qimmatli zaxira variantlarini taqdim etadi.
11.2 DBCC CHECKDB va Advanced Solutions qachon foydalanish kerak
Muntazam yaxlitlik monitoringi va kichik korruptsiyani hal qilish uchun DBCC CHECKDB dan foydalaning, shu bilan birga o'rnatilgan tuzatish imkoniyatlaridan tashqari jiddiy korruptsiya stsenariylari uchun professional tiklash vositalarini zaxiralang. Qaror qabul qilish tizimi zaxira nusxalarining mavjudligi, ma'lumotlarning muhimligi, vaqt cheklovlari va korruptsiyaning jiddiyligini hisobga olishi kerak. Muvaffaqiyatli ma'lumotlar bazasi ma'murlari muntazam CHECKDB monitoringini keng qamrovli zaxira strategiyalari va standart yondashuvlar etarli bo'lmaganda qayta tiklashning ilg'or variantlari haqida xabardorlik bilan birlashtiradi.
11.3 DBA uchun tezkor kundalik sog'liqni tekshirish ro'yxati
DBCC CHECKDB-ni ishga tushirishdan tashqari, ushbu muhim kundalik amaliyotlar yordamida ma'lumotlar bazasining optimal holatini saqlang:
1. Zaxira yaxlitligini tekshiring
- Rejalashtirilgan zaxira nusxalari muvaffaqiyatli bajarilganligini tasdiqlang
- Zaxira nusxaning o‘qilishi mumkinligini tekshirish uchun RESTORE VERIFYONLY dan foydalaning
- Saytdan tashqari nusxalar sinxronlangan va ulardan foydalanish mumkinligiga ishonch hosil qiling
dan qo'shimcha ma'lumot olishingiz mumkin bizning keng qamrovli qo'llanmamiz SQL Server zaxira.
2. Muvofiqlik holatini ko'rib chiqing
- Bir kecha-kunduzda avtomatik DBCC CHECKDB natijalarini tekshiring
- monitor SQL Server buzilish haqida ogohlantirishlar uchun xato jurnallari
- Har qanday yaxlitlikdagi nosozliklarni darhol tekshirib ko'ring
3. Server salomatligini kuzatib boring
- CPU, xotira va disk kiritish-chiqarish ko'rsatkichlarini tekshiring
- Tempdb maydoni mavjudligini tekshiring
- Bloklangan jarayonlarni va uzoq davom etadigan so'rovlarni aniqlang
4. Tugallanish faoliyatini kuzatish
- Tizimning sog'lig'i bilan bog'liq hodisalardan o'lik grafiklarni ko'rib chiqing
- Muammoli so'rovlarni aniqlang va ishlab chiqish guruhlari bilan optimallashtiring
- Tugallangan qurbonlar soni va biznesga ta'sirini kuzatib boring
Muhim eslatmalar
- Ma'lumotlar bazasini tez-tez qisqartirishdan saqlaning - bu parchalanishni oshiradi va ish faoliyatini pasaytiradi. Haqiqiy zarurat tug'ilganda, faqat katta ma'lumotlarni o'chirib tashlaganidan keyin kichraytiring.
- Monitoring vazifalarini avtomatlashtirish foydalanish SQL Server Muhim muammolar uchun ogohlantirishlar bilan agent ishlari yoki texnik xizmat ko'rsatish rejalari.
- Favqulodda vaziyatlarni tiklash jarayonlarini sinab ko'ring har hafta zaxira nusxalarini tiklash va tiklash maqsadlariga erishish mumkin bo'lishini ta'minlash.
Ushbu kundalik nazorat ro'yxatini muntazam DBCC CHECKDB operatsiyalari bilan birlashtirib, siz proaktiv monitoring va muammoga tezkor javob berish orqali ma'lumotlar bazasi muhiti uchun keng qamrovli himoya yaratasiz.
12. Adabiyotlar
- Microsoft Learn. "DBCC CHECKDB (Transact-SQL)." SQL Server hujjatlar. Microsoft korporatsiyasi.
https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver17 - Microsoft Learn. "DBCC CHECKDB tomonidan bildirilgan ma'lumotlar bazasining izchilligi xatolarini bartaraf etish." SQL Server hujjatlar. Microsoft korporatsiyasi.
https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/database-file-operations/troubleshoot-dbcc-checkdb-errors



