zaxira SQL Server to'liq 2025 qo'llanmamiz bilan ma'lumotlar bazasi. Barcha mahorat darajalari uchun bosqichma-bosqich ko'rsatmalar va eng yaxshi amaliyotlar.
1. Kirish SQL Server zaxira
1.1 nima SQL Server Zaxira?
SQL Server zaxira nusxasi ma'lumotlar yo'qolishidan himoya qilish uchun ma'lumotlar bazasi fayllari nusxalarini yaratish jarayonidir. Zaxira ma'lumotlar bazasi holatini ma'lum bir vaqtning o'zida yozib oladi, bu sizga apparatdagi nosozliklar, inson xatolari yoki falokatlar sodir bo'lganda ma'lumotlarni qayta tiklashga imkon beradi.
SQL Server zahira nusxalarini sukut bo'yicha .bak fayllarida saqlaydi, ular jadvallar, saqlangan protseduralar, ko'rinishlar, indekslar va tranzaksiya jurnallarini o'z ichiga olgan barcha ma'lumotlar bazasi ob'ektlarini o'z ichiga oladi.
1.2 Nega SQL Server Zaxiralash juda muhim
Ma'lumotlar bazasi zahira nusxalari ma'lumotlar yo'qolishiga qarshi oxirgi himoya chizig'i bo'lib xizmat qiladi. Tegishli zaxiralarsiz tashkilotingiz quyidagi xavflarga duch keladi:
- Doimiy ma'lumotlar yo'qolishi apparatdagi nosozliklar yoki buzilishlardan
- Uzatilgan ishlamay qolish vaqti tiklash urinishlari paytida
- Biznesning buzilishi va daromadning yo'qolishi
- Muvofiqlik buzilishi agar ma'lumotlarni qayta tiklash mumkin bo'lmasa
- Obro'ga zarar etkazish xizmatdagi uzilishlardan
Muntazam SQL Server zaxira nusxalari biznesning uzluksizligini ta'minlaydi va ma'lumotlarni himoya qilish bo'yicha me'yoriy talablarga javob beradi.
1.3 Ma'lumotlarni yo'qotishning umumiy stsenariylari
Ma'lumotlar yo'qolishi qachon sodir bo'lishini tushunish samarali zaxira strategiyasini ishlab chiqishga yordam beradi:
- Uskunadagi nosozliklar: Diskning ishdan chiqishi, serverning noto'g'ri ishlashi yoki saqlash tizimidagi nosozliklar
- Insoniy xatolar: Tasodifiy o'chirishlar, noto'g'ri yangilanishlar yoki tushirilgan jadvallar
- Dasturiy ta'minot bilan bog'liq muammolar: Ilova xatolari, buzilgan yangilanishlar yoki tizimning ishdan chiqishi
- Xavfsizlik buzilishi: Ransomware hujumlari, zararli o'chirishlar yoki ruxsatsiz kirish
- Tabiiy ofatlar: Ma'lumot markazlariga ta'sir qiluvchi yong'inlar, suv toshqini yoki elektr uzilishlari
2. Tushunish SQL Server Zaxira turlari
SQL Server bir nechta zaxira turlarini qo'llab-quvvatlaydi, ularning har biri turli tiklash ehtiyojlari va saqlash talablariga javob beradi.
2.1 To'liq zaxira
To'liq zaxira nusxasi butun ma'lumotlar bazasining to'liq nusxasini yaratadi, shu jumladan barcha ma'lumotlar fayllari va qayta tiklash uchun zarur bo'lgan tranzaksiya jurnalining bir qismi.
2.1.1 To'liq zaxiradan qachon foydalanish kerak
To'liq zaxira nusxalari quyidagilar uchun idealdir:
- Boshqa zaxira turlari uchun bazani yaratish
- Zaxira vaqti maqbul bo'lgan kichik va o'rta ma'lumotlar bazalari
- Haftalik yoki oylik zaxira jadvallari
- Kamdan-kam o'zgarishlarga ega bo'lgan ma'lumotlar bazalari
2.1.2 To'liq zaxiralashning afzalliklari va cheklovlari
afzalliklari:
- Eng oddiy tiklash jarayoni - bitta fayl hamma narsani o'z ichiga oladi
- O'z-o'zidan va boshqa zaxiralardan mustaqil
- Ma'lumotlar bazasini to'liq tiklash uchun eng tez tiklanish vaqti
cheklashlar:
- Muhim saqlash joyini talab qiladi
- Katta ma'lumotlar bazalari uchun uzoqroq zaxira vaqti
- Zaxira operatsiyalari paytida yuqori resurslar sarfi
2.2 Differensial zaxira
Differensial zaxira faqat oxirgi to'liq zahiradan keyingi ma'lumotlar o'zgarishlarini yozib oladi, bu esa zaxiralash vaqtini va saqlash talablarini kamaytiradi.
2.2.1 Differensial zaxira qanday ishlaydi
Differentsial zaxiralar o'zgartirilgan kengaytmalar yordamida o'zgarishlarni kuzatib boradi. Qayta tiklaganingizda, SQL Server avval oxirgi to'liq zaxira nusxasini, keyin esa eng so'nggi differentsial zaxira nusxasini qo'llaydi.
2.2.2 To'liq va differensial zaxira
| Aspect | To'liq zaxira nusxasi | Differensial zaxira |
|---|---|---|
| O'lcham | To'liq ma'lumotlar bazasi | Faqat oxirgi toʻliq zahiradan keyin oʻzgarishlar |
| Zaxira vaqti | eng uzun | To'liqdan tezroq |
| Qayta tiklash jarayoni | Yagona faylni tiklash | To'liq + differentsial talab qiladi |
| Saqlash talab qilinadi | Eng ko'p joy | Dastlab kamroq joy, vaqt o'tishi bilan o'sib boradi |
2.3 Tranzaksiya jurnalining zaxira nusxasi
Tranzaksiya jurnalining zahira nusxalari oxirgi jurnal zahirasidan buyon barcha tranzaksiyalarni yozib oladi, bu esa o'z vaqtida tiklanish imkonini beradi.
2.3.1 Tranzaksiya jurnallarini tushunish
Tranzaksiya jurnali ma'lumotlar bazasidagi har bir o'zgartirishni qayd qiladi. Jurnalning zahira nusxalari jurnalning faol bo'lmagan qismini qisqartiradi, bu uning cheksiz o'sishiga va diskingizni to'ldirishiga yo'l qo'ymaydi.
2.3.2 Vaqt o'tishi bilan tiklash
Tranzaksiya jurnalining zahira nusxalari ma'lumotlar bazasini jurnalning zahira nusxasi ichida istalgan aniq daqiqaga tiklash imkonini beradi. Bu tasodifiy ma'lumotlarni o'zgartirish yoki o'chirishdan tiklash uchun juda muhimdir.
Vaqtinchalik tiklashni amalga oshirish uchun sizga kerak bo'ladi:
- Oxirgi to'liq zaxira
- Eng so'nggi differentsial zaxira nusxasi (ixtiyoriy)
- To'liq/differentsial zaxira nusxasidan maqsadli vaqtgacha bo'lgan barcha tranzaksiyalar jurnalining zaxira nusxalari
2.4 Tail-log zaxira nusxasi
Tail-log zahiralari hali zaxiralanmagan jurnal yozuvlarini yozib oladi, ma'lumotlar yo'qolishining oldini oladi va jurnallar zanjirini saqlab qoladi. Qayta tiklashdan oldin a SQL Server ma'lumotlar bazasini so'nggi vaqtga keltirish uchun siz uning tranzaksiya jurnalining dumini zaxiralashingiz kerak. Quyruq jurnalining zaxira nusxasi ma'lumotlar bazasini tiklash rejasiga qiziqishning oxirgi zaxira nusxasidir.

Eslatma: Barcha tiklash stsenariylari ham zaxira nusxasini talab qilmaydi. Agar tiklash nuqtasi avvalgi jurnal zaxira nusxasida mavjud bo'lsa, sizga kerak emas. Agar siz ma'lumotlar bazasini ko'chirsangiz yoki almashtirsangiz (ustiga yozsangiz) va uni eng so'nggi zaxira nusxasidan keyingi vaqtga tiklashingiz shart bo'lmasa, zaxira nusxasi ham keraksizdir.
2.4.1 Tail-Log zaxira nusxalari zarur bo'lganda
Quyidagi stsenariylar qachon tail-log zahirasini olish kerakligini tasvirlaydi:
Onlayn ma'lumotlar bazasini tiklash: Agar ma'lumotlar bazasi onlayn bo'lsa va siz ma'lumotlar bazasida tiklash operatsiyasini bajarishni rejalashtirmoqchi bo'lsangiz, jurnalning dumini zaxiralashdan boshlang. Onlayn ma'lumotlar bazasida xatolikka yo'l qo'ymaslik uchun siz zaxira nusxasini yaratishda BACKUP Transact-SQL bayonotining WITH NORECOVERY opsiyasidan foydalanishingiz kerak. SQL Server ma'lumotlar bazasi.
Oflayn ma'lumotlar bazasini tiklash: Agar ma'lumotlar bazasi oflayn bo'lsa va ishga tushmasa va siz ma'lumotlar bazasini tiklashingiz kerak bo'lsa, avval jurnalning oxirgi qismini zaxiralang. Hozirda hech qanday tranzaksiyalar amalga oshirilmasligi sababli, WITH NORECOVERY opsiyasidan foydalanish ixtiyoriydir. NORECOVERY bu stsenariyda faqat nusxa ko'chirish uchun tranzaksiya jurnalining zaxira nusxasi bilan bir xil.
Buzilgan ma'lumotlar bazasi zaxira nusxasi: Agar ma'lumotlar bazasi shikastlangan bo'lsa, BACKUP iborasining WITH CONTINUE_AFTER_ERROR opsiyasidan foydalanib, jurnalning zaxira nusxasini olishga harakat qiling. Shikastlangan ma'lumotlar bazasida jurnalning zaxira nusxasini faqat jurnal fayllari buzilmagan bo'lsa, ma'lumotlar bazasi tail-log zaxira nusxalarini qo'llab-quvvatlaydigan holatda bo'lsa va ma'lumotlar bazasida ommaviy qayd qilingan o'zgarishlar bo'lmasa, muvaffaqiyatli bo'lishi mumkin. Agar tail-log zaxira nusxasini yaratib bo'lmasa, har qanday tranzaksiya oxirgi MS dan keyin amalga oshiriladi SQL Server zaxira ma'lumotlar bazasi yo'qoladi.
2.4.2 Tail-log zaxira nusxalari uchun asosiy variantlar
NORECOVERY BILAN: Agar siz keyinchalik tiklashni rejalashtirgan onlayn ma'lumotlar bazasi jurnalining zaxira nusxasini yaratayotgan bo'lsangiz, WITH NORECOVERY dan foydalaning. NORECOVERY ma'lumotlar bazasini oflayn holga keltiradi. Siz ham zaxiralashingiz mumkin SQL Server oflayn ma'lumotlar bazasining quyruq jurnali. Agar siz ma'lumotlar bazasini oflayn rejimda qoldirmoqchi bo'lsangiz, WITH NORECOVERY dan foydalaning. E'tibor bering, agar siz COPY_ONLY yoki NO_TRUNCATE variantini belgilamaguningizcha jurnal kesiladi.
CONTINUE_AFTER_ERROR BILAN: CONTINUE_AFTER_ERROR dan faqat shikastlangan maʼlumotlar bazasining zaxira nusxasini yaratayotgan boʻlsangiz foydalaning. Zararlangan ma'lumotlar bazasida jurnalning zaxira nusxasini yaratganingizda, odatda jurnalning zahira nusxalarida olingan metama'lumotlarning ba'zilari mavjud bo'lmasligi mumkin.
2.5 Faqat nusxa ko'chirish uchun zaxira
Faqat nusxa ko'chirish uchun mo'ljallangan zaxira nusxalari oddiy zaxira ketma-ketligiga ta'sir qilmasdan mustaqil zaxira nusxasini yaratadi. Ular differentsial zaxira zanjirlarini yoki tranzaktsiyalar jurnalining uzluksizligini buzmaydi.
Faqat nusxa ko'chirish uchun zaxira nusxalaridan foydalaning:
- Sinov yoki ishlab chiqish ma'lumotlar bazasi nusxalarini yaratish
- Rejalashtirilgan zahiraga ta'sir qilmasdan vaqtinchalik zaxiralash
- Katta o'zgarishlar yoki sinovdan oldin zaxiralang
2.6 Fayl va fayllar guruhining zaxira nusxasi
Fayl va fayl guruhlarining zaxira nusxalari butun ma'lumotlar bazasiga emas, balki ma'lum ma'lumotlar bazasi fayllariga yoki fayl guruhlariga qaratilgan. Bu yondashuv hamma narsani zaxiralash juda uzoq vaqt talab qiladigan juda katta ma'lumotlar bazalari uchun yaxshi ishlaydi.
Foyda quyidagilarni o'z ichiga oladi:
- Katta ma'lumotlar bazalari uchun tezroq zaxira operatsiyalari
- Bir nechta fayl guruhlarini parallel zaxiralash
- Granulalarni tiklash imkoniyatlari
- Faqat o'qish uchun fayl guruhlari uchun optimallashtirilgan zaxira jadvallari
2.7 Qisman zaxiralash
Qisman zaxira nusxalari asosiy fayl guruhidagi barcha ma'lumotlarni va faqat o'qish uchun mo'ljallangan fayl guruhlari bundan mustasno, har qanday o'qish-yozish fayl guruhlarini o'z ichiga oladi. Bu faqat o'qish uchun mo'ljallangan fayl guruhlarida saqlanadigan statik tarixiy ma'lumotlarga ega ma'lumotlar bazalari uchun zaxira hajmi va vaqtini qisqartiradi.
3. SQL Server Qayta tiklash modellari
SQL Server Qayta tiklash modellari qanday zaxira turlari mavjudligini va tranzaksiya jurnallari qanday boshqarilishini aniqlaydi.
3.1 Qayta tiklashning oddiy modeli
3.1.1 Xarakteristikalar va foydalanish holatlari
Oddiy tiklash har bir nazorat punktidan keyin tranzaksiya jurnalini avtomatik ravishda qisqartiradi va jurnalning zaxira nusxalarini talab qilmasdan bo'sh joyni tiklaydi.
Eng yaxshi uchun:
- Ma'lumotlar bazalarini ishlab chiqish va sinovdan o'tkazish
- Zaxira nusxalari o'rtasida ma'lumotlar yo'qolishi mumkin bo'lgan ma'lumotlar bazalari
- Qayta ishga tushirilishi mumkin bo'lgan ETL jarayonlariga ega ma'lumotlar omborlari
- Faqat o'qish yoki hisobot ma'lumotlar bazalari
3.1.2 Zaxiralash imkoniyatlari mavjud
Oddiy tiklashni qo'llab-quvvatlaydi:
- To'liq zaxira nusxalari
- Differentsial zaxira nusxalari
- Fayllar va fayllar guruhining zaxira nusxalari
- Faqat nusxa ko'chirish uchun zaxiralar
Tranzaksiya jurnalining zaxira nusxalari mavjud emas oddiy tiklash modelida.
3.2 To'liq tiklash modeli
3.2.1 Xususiyatlari va afzalliklari
To'liq tiklash barcha tranzaktsiyalarni qayd qiladi va ularni zaxira nusxasini yaratmaguningizcha jurnal yozuvlarini saqlaydi. Bu tranzaktsiyalar jurnalining zaxira nusxasi doirasida istalgan vaqtda ma'lumotlarni to'liq tiklash imkonini beradi.
Asosiy afzalliklar:
- Minimal ma'lumotlarni yo'qotish ehtimoli
- Vaqtinchalik tiklash qobiliyati
- Jurnallarni jo'natish va ma'lumotlar bazasini aks ettirishni qo'llab-quvvatlaydi
- Qayta tiklashning maksimal moslashuvchanligi
3.2.2 Tranzaksiya jurnalini boshqarish
To'liq tiklanish davrida siz tranzaktsiyalar jurnalining muntazam zaxira nusxasini yaratishingiz kerak:
- Tranzaktsiyalar jurnali disk maydonini to'ldirishiga yo'l qo'ymaslik
- Uzluksiz zaxira zanjirini saqlang
- Vaqtinchalik tiklashni yoqing
- Jurnal faylining o'sishini nazorat qilish
Odatiy zaxiralash jadvali: har hafta to'liq zaxira nusxalari, har kuni differentsial zaxira nusxalari, har 15-30 daqiqada zaxiralash jurnali.
3.3 Ommaviy qayd qilingan tiklash modeli
3.3.1 Ommaviy ro'yxatga olingandan qachon foydalanish kerak
Ommaviy ro‘yxatga olingan tiklash BULK INSERT, SELECT INTO kabi ommaviy operatsiyalarni minimal tarzda qayd qiladi va oddiy tranzaktsiyalar uchun to‘liq jurnalni saqlagan holda indeksni qayta tiklash.
Quyidagi hollarda ommaviy qayd qilingan tiklashdan foydalaning:
- Katta hajmdagi import operatsiyalarini amalga oshirish
- Katta jadvallarda indekslarni qayta qurish
- Minimal ro'yxatga olishdan foyda keltiradigan operatsiyalarni bajarish
- Muayyan operatsiyalar davomida tranzaktsiyalar jurnali hajmini kamaytirish zarurati
3.3.2 Cheklovlar va mulohazalar
Muhim cheklovlar:
- Ommaviy operatsiyalar paytida bir vaqtning o'zida tiklash mavjud emas
- Ommaviy operatsiyalar sodir bo'lganda, jurnalning zaxira nusxalari kattaroq bo'ladi
- Zarur bo'lganda to'liq va ommaviy jurnallar o'rtasida o'tish kerak
3.4 To'g'ri tiklash modelini tanlash
Biznes talablari asosida tiklash modelingizni tanlang:
| Qayta tiklash modeli | Ma'lumotlarni yo'qotish xavfi | Vaqtinchalik tiklash | Eng yaxshi uchun |
|---|---|---|---|
| oddiy | Oxirgi zaxira nusxasidan keyin o'zgarishlar | Yo'q | Ishlab chiquvchi/sinov, qabul qilinadigan maʼlumotlar yoʻqolishi |
| to'liq | Minimal (odatda daqiqalar) | ha | Ishlab chiqarish ma'lumotlar bazalari, muhim ma'lumotlar |
| Ommaviy ro'yxatga olingan | Jurnalning oxirgi zaxira nusxasidan keyin o'zgarishlar | Ommaviy operatsiyalar paytida cheklangan | Ommaviy operatsiyalar paytida vaqtinchalik foydalanish |
4. zaxira SQL Server SSMS yordamida ma'lumotlar bazasi
4.1 Old shartlar va tayyorgarlik
Zaxiralashdan oldin SQL Server ma'lumotlar bazasi, quyidagilarni ta'minlash:
- Sizda tegishli ruxsatlar mavjud (db_owner yoki BACKUP DATABASE ruxsati)
- Zaxira fayli uchun disk maydoni yetarli
- SQL Server Management Studio (SSMS) o'rnatilgan
- Tarmoq manzillariga zaxiralangan holda tarmoq yo'llariga kirish mumkin
4.2 Bosqichma-bosqich: SSMS bilan to'liq zaxiralash
To'liq zaxira nusxasini yaratish uchun quyidagi amallarni bajaring SQL Server SSMS yordamida ma'lumotlar bazasi.
4.2.1 Ochilish SQL Server Boshqaruv studiyasi
- Ishga tushirish SQL Server Boshqaruv studiyasi
- Server nomini kiriting Server nomi Maydon
- Autentifikatsiya usulini tanlang
- bosing Ulanish
4.2.2 Ma'lumotlar bazasi va Zaxiralash opsiyalarini tanlash
- In Ob'ektni o'rganuvchi, kengaytirish Ma'lumotlar bazalarini Tugunni tanlang
- Zaxiralashni xohlagan ma'lumotlar bazasini o'ng tugmasini bosing
- tanlang vazifalar -> Orqaga qaytish
- In Ma'lumotlar bazasini zaxiralash oyna, ma'lumotlar bazasi nomini tekshiring
- tanlang to'liq sifatida Zaxira turi
4.2.3 Zaxiralash manzilini sozlash
- ostida Nishontugmasini bosing O'chiring standart yo'lni tozalash uchun (agar kerak bo'lsa)
- bosing qo'shish yangi zaxira joyini belgilash uchun
- Fayl yo'lini va nomini kiriting .Uloqcha kengaytirish
- bosing OK maqsadni tasdiqlash uchun
4.2.4 Advanced Backup Sozlamalar
- bosing Media opsiyalari chap panelda
- Zaxiralash imkoniyatlarini tanlang:
- Barcha mavjud zaxira to'plamlarini qayta yozing – Mavjud zaxira nusxalarini almashtiradi
- Mavjud zaxira to'plamiga qo'shing – Mavjud zahira fayliga qo'shiladi
- bosing Zahira parametrlari chap panelda
- Ixtiyoriy sozlamalarni sozlang:
- Zaxira nusxasini siqish – Zaxira fayl hajmini qisqartiradi
- Zaxira nusxasini shifrlash - Maxfiy ma'lumotlarni himoya qiladi
- Tugatgandan so'ng zaxiralashni tasdiqlang - Zaxira yaxlitligini tekshiradi
4.2.5 Zaxiralashni amalga oshirish
- dagi barcha sozlamalarni ko'rib chiqing Ma'lumotlar bazasini zaxiralash deraza
- bosing OK zaxiralash jarayonini boshlash uchun
- Zaxiralash tugashini kuting
- Zaxiralash tugagach, muvaffaqiyat haqida xabar paydo bo'ladi
- bosing OK tasdiqlash dialogini yopish uchun
4.3 SSMS yordamida differentsial zahirani yaratish
Differensial zahirani yaratish uchun to'liq zaxiralash bilan bir xil amallarni bajaring, lekin tanlang Differentsial 4.2.2-bosqichda zaxira turi sifatida. Esda tutingki, differentsial zaxira nusxalari asosiy sifatida oldindan to'liq zaxiralashni talab qiladi.
4.4 SSMS yordamida tranzaksiya jurnalining zaxira nusxasini yaratish
Tranzaksiya jurnalining zahira nusxalari faqat To'liq yoki Ommaviy jurnalga olingan tiklash modellaridan foydalangan holda ma'lumotlar bazalari uchun mavjud.
- Ma'lumotlar bazasini o'ng tugmasini bosing Ob'ektni o'rganuvchi
- tanlang vazifalar -> Orqaga qaytish
- tanlang Tranzaksiya jurnali zaxira turi sifatida
- Kerak bo'lganda maqsad va variantlarni sozlang
- bosing OK jurnalning zaxira nusxasini yaratish uchun
4.5 SSMS yordamida faqat nusxa ko'chirish uchun zaxira nusxasini yaratish
Faqat nusxa ko‘chirish uchun mo‘ljallangan zahira nusxalari sizning muntazam zaxiralash ketma-ketligiga xalaqit bermaydi.
- To'liq zaxira nusxasini yaratish uchun qadamlarni bajaring
- In Zahira parametrlari bet
- nazorat Faqat nusxa ko'chirish uchun zaxira variant
- Zaxiralash jarayonini odatdagidek yakunlang
5. zaxira SQL Server T-SQL yordamida ma'lumotlar bazasi
5.1 ZAXIRA MA'LUMOTLAR BAZAsining asosiy sintaksisi
T-SQL BACKUP DATABASE buyrug'i dasturiy boshqaruvni ta'minlaydi SQL Server zaxira nusxalari.
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
5.2 To'liq zaxira T-SQL buyruqlari
5.2.1 Oddiy to'liq zaxira skripti
Minimal variantlar bilan asosiy to'liq zaxira nusxasini yarating:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
5.2.2 Variantlar bilan to'liq zaxiralash
Ta'riflovchi ma'lumot va formatlash opsiyalarini qo'shing:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
INIT,
NAME = 'AdventureWorks-Full Database Backup',
DESCRIPTION = 'Full backup of AdventureWorks database',
STATS = 10
GO
Variantlar tushuntirildi:
- FORMAT - Yangi zaxira to'plamini yaratadi
- INIT – Mavjud zaxira faylning ustiga yozadi
- NAME – Zaxira to‘plami nomini belgilaydi
- TA'RIFI - Ta'riflovchi matnni qo'shadi
- STATS - Har 10% taraqqiyotni ko'rsatadi
5.3 Differensial zaxira T-SQL buyruqlari
Differensial zahira nusxalari DIFFERENTIAL variantidan foydalanadi:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
5.4 Tranzaksiya jurnalining T-SQL buyruqlarini zaxiralash
Tranzaksiya jurnalining zahira nusxalari uchun BACKUP LOG dan foydalaning:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
5.5 Kengaytirilgan T-SQL Zaxiralash imkoniyatlari
5.5.1 Bir nechta fayllarga zaxiralash
Tezroq ishlash uchun zaxira nusxasini bir nechta fayllarga tarqating:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
DISK = 'D:\Backups\AdventureWorks_2.bak',
DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO
5.5.2 Siqish bilan zaxiralash
Zaxira fayl hajmini va tarmoq tarmoqli kengligini kamaytiring:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
5.5.3 Shifrlash bilan zaxiralash
Maxfiy ma'lumotlarni shifrlash bilan himoya qiling:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
),
STATS = 10
GO
5.5.4 Parol bilan himoyalangan zaxira
Parol himoyasini qo'shing (eskirgan, o'rniga shifrlashdan foydalaning):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
5.5.5 Ko'zgu qilingan zahira nusxalari
Turli joylarga bir vaqtning o'zida nusxalarini yarating:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
5.6 T-SQL Zaxiralash misollari va skriptlar
Xatolarni qayta ishlash bilan to'liq zaxira skript:
DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);
SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';
BEGIN TRY
BACKUP DATABASE @DatabaseName
TO DISK = @BackupPath
WITH COMPRESSION,
INIT,
NAME = @DatabaseName + '-Full Backup',
STATS = 10;
PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO
6. zaxira SQL Server PowerShell yordamida ma'lumotlar bazasi
6.1 PowerShell Zaxira Cmdletlari
SQL Server PowerShell moduli zaxirani avtomatlashtirish uchun cmdletlarni taqdim etadi:
- Zaxiralash - SqlMa'lumotlar bazasi - Ma'lumotlar bazasining zaxira nusxalarini yaratadi
- Qayta tiklash - SqlMa'lumotlar bazasi - Ma'lumotlar bazasining zaxira nusxalarini tiklaydi
- Get-SqlMa'lumotlar bazasi - Ma'lumotlar bazasi ma'lumotlarini oladi
Import qiling SQL Server modul:
Import-Module SqlServer
6.2 PowerShell yordamida zaxira skriptlarni yaratish
Asosiy PowerShell zaxira buyrug'i:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
Differensial zaxiraga misol:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
Tranzaksiya jurnalining zaxira nusxasi:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
6.3 PowerShell yordamida zahira nusxalarini avtomatlashtirish
Bir nechta ma'lumotlar bazalari uchun avtomatlashtirilgan zaxira skriptini yarating:
# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
New-Item -ItemType Directory -Path $BackupPath
}
# Backup each database
foreach ($Database in $Databases) {
$BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
try {
Backup-SqlDatabase -ServerInstance $ServerInstance `
-Database $Database `
-BackupFile $BackupFile `
-BackupAction Database `
-CompressionOption On
Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
}
catch {
Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
}
}
7. zaxira SQL Server Buyruqlar qatoridan foydalangan holda ma'lumotlar bazasi
SQL Server zaxiralash imkonini beruvchi buyruq qatori yordam dasturlarini taqdim etadi SQL Server SSMS yoki grafik interfeyslardan foydalanmasdan ma'lumotlar bazasi. Ushbu vositalar avtomatlashtirish, skript yaratish va masofaviy boshqaruv stsenariylari uchun zarurdir.
7.1 SQLCMD Zaxira ma'lumotlar bazasidan foydalaning
SQLCMD - bu zamonaviy buyruq qatori yordam dasturi SQL Server OSQL o'rnini egalladi. U kengaytirilgan funksionallikni ta'minlaydi va buyruq satridan T-SQL buyruqlarini bajarish uchun tavsiya etilgan vositadir.
7.1.1 Asosiy SQLCMD sintaksisi
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: ni belgilaydi SQL Server misol nomi
- -d: Ma'lumotlar bazasi nomini belgilaydi
- -Q: So'rovni bajaradi va chiqadi
- -VA: Windows autentifikatsiyasidan foydalanadi
- -U: Belgilaydi SQL Server login foydalanuvchi nomi
- -P: uchun parolni belgilaydi SQL Server Kirish
7.1.2 SQLCMD yordamida zaxira nusxasini yaratish
Zaxiralash uchun SQL Server SQLCMD-dan foydalanib, quyidagi amallarni bajaring:
- ochiq Buyruqning xohishi or PowerShell
- Quyidagiga o'ting SQL Server asboblar katalogi (odatda o'rnatish vaqtida PATHga qo'shiladi)
- Tegishli parametrlar bilan SQLCMD zaxira ma'lumotlar bazasi buyrug'ini bajaring
- Zaxira fayli muvaffaqiyatli yaratilganligini tekshiring
Windows autentifikatsiyasidan foydalangan holda to'liq zaxiralash buyrug'iga misol:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
Foydalanishga misol SQL Server Autentifikatsiya:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
SQLCMD yordamida differentsial zaxira nusxasini yaratish
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
SQLCMD yordamida tranzaksiya jurnalining zaxira nusxasini yaratish
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
7.1.3 Nashriyotchi ma'lumotlar bazasini zaxiralash SQL Server replikatsiya
Nashriyotchi ma'lumotlar bazalarini zaxiralashda SQL Server Replikatsiya qilishda, replikatsiya metama'lumotlarini saqlash va tranzaksiyalarning izchilligini ta'minlash uchun WITH REPLICATION opsiyasidan foydalaning.
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
Qo'shimcha ma'lumot uchun SQL Server replikatsiya, bizning qarang keng qamrovli qo'llanma.
7.2 OSQL zaxira ma'lumotlar bazasidan foydalaning
OSQL - bu buyruq qatori uchun eski yordamchi dastur SQL Server. Microsoft o'rniga SQLCMD dan foydalanishni tavsiya qilsa-da, OSQL eski skriptlar va tizimlar bilan orqaga qarab muvofiqligi uchun mavjud bo'lib qoladi.
7.2.1 Asosiy OSQL sintaksisi
OSQL sintaksisi SQLCMD ga o'xshaydi:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -S: SQL Server misol nomi
- -d: Ma'lumotlar bazasi nomi
- -Q: So'rovni bajaradi va chiqadi
- -VA: Ishonchli ulanishdan foydalanadi (Windows autentifikatsiyasi)
- -U: Kirish foydalanuvchi nomi
- -P: Kirish paroli
7.2.2 OSQL yordamida zaxira nusxasini yaratish
OSQL ma'lumotlar bazasini zaxiralash operatsiyalarini bajarish uchun:
- ochiq Buyruqning xohishi
- Sizning tizimingizda OSQL mavjudligini tekshiring SQL Server O'rnatish
- OSQL zaxiralash buyrug'ini bajaring
To'liq zaxiraga misol:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
Differensial zaxiraga misol:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
8. Uchinchi tomon SQL Server Zaxiralash vositalari
paytda SQL Server mahalliy zaxira imkoniyatlarini o'z ichiga oladi, uchinchi tomon vositalari murakkab talablarga ega tashkilotlar uchun kengaytirilgan xususiyatlar, avtomatlashtirish va korporativ darajadagi boshqaruvni taklif qiladi. Bu yechimlar ilg'or siqish, markazlashtirilgan boshqaruv va zaxira nusxasini yaratish uchun soddalashtirilgan ish oqimlarini ta'minlaydi SQL Server bir nechta muhitdagi ma'lumotlar bazalari.
8.1 uchun Veeam Backup SQL Server
Veeam ma'lumotlarni zaxiralash uchun maxsus ishlab chiqilgan keng qamrovli himoya echimlarini taklif etadi SQL Server ishlab chiqarish tizimlariga minimal ta'sir ko'rsatadigan ma'lumotlar bazalari.
Key Xususiyatlar:
- uchun ilovadan xabardor ishlov berish SQL Server zaxira mustahkamligi
- Tranzaksiya jurnalini zaxiralash va boshqarish
- Donador tiklash imkoniyatlari bilan bir vaqtning o'zida tiklash
- Ma'lumotlarni yagona himoya qilish uchun Veeam Backup & Replication bilan integratsiya
- Avtomatik zaxira nusxasini tekshirish va tekshirish
- Har doim ochiq bo'lgan guruhlarni qo'llab-quvvatlash
- VM darajasi va dastur darajasi SQL Server zaxira variantlari
8.2 Barracuda uchun zaxira nusxasi SQL Server
Barracuda MS uchun soddalashtirilgan boshqaruv bilan bulutga integratsiyalangan zaxira echimlarini taqdim etadi SQL Server ma'lumotlar bazasi operatsiyalarini zaxiralash.
Key Xususiyatlar:
- Avtomatlashtirilgan SQL Server zaxira rejalashtirish
- Barracuda Cloud Storage-ga o'rnatilgan bulutli replikatsiya
- Global deuplikatsiya va siqish
- Bir zumda mahalliy tiklash imkoniyatlari
- Veb-ga asoslangan boshqaruv konsoli
- To'liq, differentsial va tranzaksiya jurnallarining zaxira nusxalarini qo'llab-quvvatlash
- O'zgarmas zaxira nusxalari bilan ransomware himoyasi
8.3 uchun Veritas NetBackup SQL Server
Veritas NetBackup - har tomonlama himoyani ta'minlovchi korporativ darajadagi zaxira platformasi SQL Server murakkab IT muhitlaridagi ma'lumotlar bazalari.
Key Xususiyatlar:
- Minglab kishilar uchun korporativ miqyosdagi zaxira boshqaruvi SQL Server misollar
- Kengaytirilgan deuplikatsiya va siqish algoritmlari
- Moslashuvchan zaxira siyosati va rejalashtirish
- Hamma uchun qo'llab-quvvatlash SQL Server tiklash modellari
- Lenta kutubxonalari va bulutli saqlash bilan integratsiya
- Ma'lumotlar bazalari, jadvallar va ob'ektlarni granulyar tiklash
- Ko'p platformali qo'llab-quvvatlash (Windows, Linux SQL Server)
- Avtomatlashtirilgan zaxira hayot aylanishini boshqarish
8.4 Commvault uchun to'liq zaxiralash va tiklash SQL Server
Commvault keng qamrovli zaxira nusxasi bilan aqlli ma'lumotlarni boshqarishni ta'minlaydi SQL Server qobiliyatlari va ilg'or avtomatlashtirish xususiyatlari.
Key Xususiyatlar:
- AI tomonidan boshqariladigan zaxira optimallashtirish va anomaliyalarni aniqlash
- Zaxiralash, tiklash va arxivlash uchun yagona platforma
- ilg'or SQL Server zaxira siqish (90% gacha qisqartirish)
- Avtomatlashtirilgan ofatlarni tiklash orkestratsiyasi
- Nolga yaqin RPO himoyasi uchun Live Sync
- Yordam SQL Server mahalliy, bulutli va gibrid joylashtirish
- Suratga asoslangan zaxira nusxalari uchun IntelliSnap
- Kompleks muvofiqlik va elektron kashfiyot imkoniyatlari
8.5 Cohesity DataProtect uchun SQL Server
Cohesity yangi avlod ma'lumotlarini boshqarishni zamonaviy uchun giperkonvergent infratuzilma bilan ta'minlaydi SQL Server zaxira operatsiyalari.
Key Xususiyatlar:
- Soddalashtirilgan boshqaruv uchun veb-miqyosdagi arxitektura
- uchun darhol ommaviy tiklash imkoniyatlari SQL Server Ma'lumotlar bazalari
- Ilovaga mos keladigan suratlar
- Barcha zahira nusxalari bo'yicha global deduplikatsiya
- Mahalliy bulutli integratsiya (AWS, Azure, Google Cloud)
- O'rnatilgan tahlil va monitoring panellari
- Ma'lumotlar bazasi imkoniyatlarini klonlash va sinab ko'rish
- O'zgarmas suratlar bilan ransomware himoyasi
8.6 Red Gate SQL Backup Pro
Red Gate SQL Backup Pro - bu faqat optimallashtirishga qaratilgan maxsus vosita SQL Server yuqori siqish va ishlash bilan operatsiyalarni zaxiralash va tiklash.
Key Xususiyatlar:
- Sanoatning etakchi siqish koeffitsientlari (95% gacha)
- Zaxiralash uchun tarmoq chidamliligi SQL Server ishonchsiz ulanishlar orqali
- 256 bitli AES bilan zahiraviy shifrlash
- Zaxira nusxasini tekshirish va yaxlitligini tekshirish
- Batafsil zaxira tarixi va hisobot
- Bilan integratsiya SQL Server Boshqaruv studiyasi
- Tarmoq manzillariga va bulutli saqlashga zaxiralashni qo'llab-quvvatlash
- Tezroq operatsiyalar uchun parallel zaxiralash va tiklash
9. Qayta tiklash SQL Server ma'lumotlar bazasi
9.1 Qayta tiklash jarayonini tushunish
Qayta tiklash a SQL Server ma'lumotlar bazasi ma'lumotlar bazasini zaxira fayllardan qayta yaratadi. Qayta tiklash jarayoni zaxira faylini o'qiydi va ma'lumotlar bazasini zaxiralangan holatiga qayta tiklaydi.
Muhim fikrlar:
- Qayta tiklash mavjud ma'lumotlar bazasini qayta yozadi
- Qayta tiklash vaqtida foydalanuvchilar uzilib qoladi
- Qayta tiklash zaxira ketma-ketligiga rioya qilishi kerak (to'liq, keyin differentsial, keyin jurnallar)
- Qayta tiklash jarayonida ma'lumotlar bazasi mavjud emas
9.2 SSMS yordamida to'liq zaxira nusxasini tiklash
To'liq ma'lumotlar bazasi zahirasini tiklash uchun quyidagi amallarni bajaring.
9.2.1 Bosqichma-bosqich tiklash jarayoni
- ochiq SQL Server Boshqaruv studiyasi va serveringizga ulaning
- In Ob'ektni o'rganuvchi, o'ng tugmasini bosing Ma'lumotlar bazalarini
- tanlang Ma'lumotlar bazasini tiklash
- In manba -ni tanlang Qurilma
- bosing ... Zaxira fayllarni ko'rib chiqish uchun tugma
- bosing qo'shish va .bak faylingizga o'ting
- Zaxira faylini tanlang va ustiga bosing OK
- In Nishon bo'limiga ma'lumotlar bazasi nomini kiriting
- Qayta tiklash uchun zaxira to'plamlarini ko'rib chiqing
- bosing OK tiklashni boshlash uchun
9.2.2 Tanlovlar va sozlamalarni tiklash
bosing Options sozlash uchun chap panelda:
- Mavjud ma'lumotlar bazasini qayta yozish (REPLACE BILAN) - Mavjud ma'lumotlar bazasini qayta tiklashga imkon beradi
- Replikatsiya holatlarini saqlang (WITH KEEP_REPLICATION) - saqlang SQL Server replikatsiya Davlat
- Qayta tiklangan ma'lumotlar bazasiga kirishni cheklash (WITH RESTRICTED_USER) – Qayta tiklashdan keyingi kirishni cheklaydi
- Qayta tiklash holati – Qayta tiklash yoki NORECOVERY BILAN RESTORE ni tanlang
9.3 Differensial zahirani tiklash
Differensial tiklash to'liq va differentsial zaxiralarni talab qiladi:
- Birinchidan, bilan to'liq zaxira nusxasini tiklang NORECOVERY variant
- Keyin bilan differentsial zaxirani tiklang RECOVERY variant
T-SQL misoli:
-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO
9.4 Tranzaksiya jurnalining zaxira nusxalari bilan tiklash
Vaqtinchalik tiklash uchun quyidagi ketma-ketlikda tiklang:
- NORECOVERY bilan toʻliq zaxira nusxasini tiklang
- NORECOVERY yordamida differentsial zaxira nusxasini tiklang (agar mavjud bo'lsa)
- NORECOVERY yordamida tranzaktsiyalar jurnalining zaxira nusxalarini tiklang
- RECOVERY yordamida jurnalning oxirgi zaxira nusxasini tiklang
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO
9.5 Vaqt nuqtasini tiklash
STOPAT opsiyasi yordamida ma'lumotlar bazasini ma'lum bir vaqtga tiklang:
-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO
9.6 Jadvalni tiklash
SQL Server zaxira fayllaridan to'g'ridan-to'g'ri jadval darajasida tiklashni qo'llab-quvvatlamaydi. Biroq, hali ham ba'zi yechimlar mavjud.
9.6.1 1-usul: Ma'lumotlar bazasining suratlari (profilaktika uchun eng yaxshisi)
Ma'lumotlar bazasining suratlari, agar muammo yuzaga kelishidan oldin yaratilgan bo'lsa, jadval ma'lumotlarini tiklashning eng tezkor usulini ta'minlaydi. Surat - bu ma'lum bir vaqtda ma'lumotlar bazasining faqat o'qish uchun mo'ljallangan, statik ko'rinishi.
Ma'lumotlar bazasining suratini yaratish:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
Snapshotdan jadval ma'lumotlarini tiklash:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
Versiya talablari: Ma'lumotlar bazasining suratlari quyidagi manzilda mavjud SQL Server Enterprise Edition (barcha versiyalar) va Standard Edition bilan boshlanadi SQL Server 2016 SP1.
9.6.2 2-usul: Vaqtinchalik ma'lumotlar bazasiga tiklash (eng keng tarqalgan)
Bu usul muammo yuzaga kelganidan va suratga olish imkoniyati bo'lmaganidan keyin jadval ma'lumotlarini tiklash kerak bo'lganda ishlaydi:
- Vaqtinchalik ma'lumotlar bazasiga zaxira nusxasini tiklash
- Vaqtinchalik ma'lumotlar bazasidan jadval ma'lumotlarini joriy ma'lumotlar bazasiga nusxalash
9.7 Sahifani tiklash
Sahifani tiklash butun ma'lumotlar bazasini tiklamasdan, alohida shikastlangan sahifalarni tiklaydi, faqat buzilgan sahifalarni nishonga olish orqali ishlamay qolish vaqtini minimallashtiradi. Bu xususiyat faqat to'liq yoki ommaviy jurnalga yozilgan tiklash modellarida mavjud va sahifa zaxira nusxasidan joriy jurnal fayli orqali tranzaksiyalar jurnalining uzluksiz zaxira nusxalarini talab qiladi.
Sahifani tiklashni amalga oshirish uchun avval shikastlangan sahifalarni aniqlang, oxirgi jurnalning zaxira nusxasini oling, aniq sahifalarni tiklang, so'ngra barcha tranzaksiya jurnallarini qo'llang:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
Eslatma: Sahifani tiklash oddiy tiklash modelida mavjud emas. Siz sahifalarni tizim jadvallaridan yoki asosiy fayl guruhi metama'lumotlaridan tiklay olmaysiz.
9.8 Bo'lakli tiklash
Bo'lak-bo'lak tiklash (qisman tiklash) ma'lumotlar bazasini fayl guruhi darajasida, asosiy fayl guruhidan boshlab bosqichma-bosqich tiklaydi. Bu muhim ma'lumotlarni darhol onlayn holatga keltiradi, kamroq muhim ma'lumotlar esa fonda tiklanadi. Oddiy tiklash modelida barcha o'qish-yozish fayl guruhlari asosiy fayl guruhi bilan birgalikda tiklanishi kerak; faqat o'qish uchun fayl guruhlari alohida tiklanishi mumkin. To'liq yoki ommaviy jurnalga yozilgan tiklash modellarida har bir fayl guruhi tranzaksiya jurnallarini qo'llaganidan so'ng mustaqil ravishda onlayn holatga keltirilishi mumkin.
| Qayta tiklash modeli | Bo'lak-bo'lak tiklash xatti-harakati |
|---|---|
| oddiy | Asosiy va barcha o'qish-yozish fayl guruhlari birgalikda tiklandi. Faqat o'qish uchun fayl guruhlari alohida tiklandi. |
| To'liq/Ommaviy jurnalga yozilgan | Har bir fayl guruhi fayl guruhi darajasida mustaqil ravishda tiklandi. |
To'liq tiklash modeliga misol – avval ma'lumotlar bazasini ishga tushirish uchun asosiy fayl guruhini tiklang, so'ngra ma'lumotlar bazasi ishlayotgan paytda ikkinchi darajali fayl guruhlarini tiklang:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
Oddiy tiklash modeliga misol:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
9.9 T-SQL buyruqlari yordamida tiklash
Qayta tiklash skriptini faylni ko'chirish bilan yakunlang:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
REPLACE,
STATS = 10;
GO
9.10 Qayta tiklashdan oldin zaxiraning yaxlitligini tekshirish
Qayta tiklamasdan zahiraning haqiqiyligini tekshiring:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
Ushbu buyruq zaxira to'plamining to'liqligini va ma'lumotlar bazasini qayta tiklamasdan o'qilishi mumkinligini tasdiqlaydi.
10. SQL Server Zaxiralashning eng yaxshi amaliyotlari
10.1 Zaxira strategiyasini ishlab chiqish
10.1.1 Biznes talablarini baholash
Zaxira nusxalarini amalga oshirishdan oldin quyidagilarni baholang:
- Ma'lumotlarning muhimligi: Ushbu ma'lumotlar operatsiyalar uchun qanchalik muhim?
- Chastotani o'zgartirish: Ma'lumotlar qanchalik tez-tez o'zgaradi?
- Ma'lumotlar bazasi hajmi: Ma'lumotlar bazasi qanchalik katta?
- Mavjud resurslar: Qanday saqlash va tarmoqli kengligi mavjud?
- Muvofiqlik talablari: Qanday qoidalarga amal qilishingiz kerak?
10.1.2 RTO va RPO ni aniqlash
Qayta tiklash vaqti maqsadi (RTO): Maksimal qabul qilinadigan ishlamay qolish vaqti. Operatsiyalarni qanchalik tez tiklashingiz kerakligini aniqlaydi.
Qayta tiklash nuqtasi maqsadi (RPO): Maksimal qabul qilinadigan ma'lumotlar yo'qolishi. Zaxira chastotasini aniqlaydi.
| RTO/RPO talabi | Tavsiya etilgan zaxiralash strategiyasi |
|---|---|
| RPO: soatlar, RTO: soatlar | Har 1-2 soatda kunlik to'liq + tranzaksiya jurnali |
| RPO: daqiqalar, RTO: soatlar | Har 15-30 daqiqada kunlik to'liq + jurnalning zaxira nusxalari |
| RPO: nolga yaqin, RTO: daqiqalar | Doim mavjud guruhlar + tez-tez jurnal zaxira nusxalarini yaratish |
| RPO: kunlar, RTO: kunlar | Haftalik to'liq + kunlik differentsial |
10.2 Zaxira jadvalini yaratish
10.2.1 Chastota bo'yicha tavsiyalar
Ishlab chiqarish ma'lumotlar bazalari uchun odatiy zaxira jadvali:
- To'liq zaxira nusxalari: Haftalik (past faollik paytida yakshanba kechasi)
- Differensial zaxira nusxalari: Har kuni (har kecha)
- Tranzaksiya jurnalining zaxira nusxalari: Ish vaqtida har 15-30 daqiqada
- Faqat nusxa ko'chirish uchun zaxira nusxalari: Sinov yoki ishlab chiqish uchun kerak bo'lganda
10.2.2 Ishlash va himoyani muvozanatlash
Rejalashtirishda quyidagi omillarni hisobga oling:
- Tepalikdan tashqari soatlar: Kam faollik davrida to'liq zaxira nusxalarini ishga tushiring
- Resurs ta'siri: Siqish kirish/chiqishni kamaytiradi, lekin protsessordan foydalanishni oshiradi
- Tarmoq o'tkazish qobiliyati: Trafik kam bo'lganda tarmoq zaxira nusxalarini rejalashtiring
- Zaxira oynalari: Zaxiralash ish soatlaridan oldin tugallanganligiga ishonch hosil qiling
10.3 Zaxira saqlashning eng yaxshi amaliyotlari
10.3.1 Saytda va Saytdan tashqarida saqlash
Saytdagi zaxira nusxalari:
- Tezroq zaxiralash va tiklash vaqtlari
- Yuqori chastotali kirish uchun arzonroq narx
- Mahalliy ofatlarga nisbatan zaif
- Tez tiklanish stsenariylari uchun eng yaxshisi
Saytdan tashqari zaxira nusxalari:
- Saytga xos ofatlardan himoya qilish
- Geografik ortiqcha talablarga muvofiqligi
- Qayta tiklash vaqtlari sekinroq
- Favqulodda vaziyatlarni tiklash uchun zarur
10.3.2 Bulutli zaxiralash imkoniyatlari
Bulutli saqlash afzalliklari:
- Azure Blob xotirasi: tug'ma SQL Server integratsiya, kamdan-kam kirish uchun tejamkor
- Amazon S3: Yuqori bardoshli, moslashuvchan saqlash qatlamlari
- Google bulutli xotirasi: Raqobatbardosh narxlar, global mavjudlik
10.3.3 Zaxira nusxasini saqlash qoidalari
Namunani saqlash siyosati:
- Kundalik zaxira nusxalarini 7 kun davomida saqlang
- Haftalik zaxira nusxalarini 4 hafta davomida saqlang
- Oylik zaxira nusxalarini 12 oy davomida saqlang
- Yillik zaxira nusxalarini 7 yil davomida saqlang (muvofiqlik)
10.4 Zaxira siqish va shifrlash
Siqishning afzalliklari:
- Zaxira fayl hajmini 50-70% ga qisqartiradi
- Zaxira vaqtini qisqartiradi
- Saqlash xarajatlarini kamaytiradi
- Masofaviy zaxiralash uchun tarmoq tarmoqli kengligini pasaytiradi
Eng yaxshi shifrlash amaliyotlari:
- Har doim maxfiy ma'lumotlarni o'z ichiga olgan zaxira nusxalarini shifrlang
- AES 256-bit shifrlashdan foydalaning
- Xavfsiz sertifikat yoki kalitlarni boshqarish
- Shifrlash kalitlarini hujjatlang va ularni alohida saqlang
10.5 Zaxira nusxalarini sinash va tekshirish
10.5.1 Muntazam qayta tiklash testi
Har chorakda yoki oyda sinovdan o'tkazishni tiklash protseduralari:
- Zaxira nusxalarini sinov muhitiga tiklang
- Ma'lumotlarning yaxlitligi va to'liqligini tekshiring
- Ilovaning funksionalligini tekshiring
- Hujjatni tiklash vaqti (RTOni tasdiqlash)
- Har qanday muammolarni aniqlang va hal qiling
10.5.2 RESTORE VERIFYONLY dan foydalanish
Zaxira nusxasini tekshirishni avtomatlashtirish:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Zaxira nusxasi tugagandan so'ng yoki rejalashtirilgan texnik xizmatning bir qismi sifatida tekshirishni darhol ishga tushiring.
10.6 Zaxirani avtomatlashtirish va monitoring qilish
10.6.1 SQL Server Agent Jobs
Avtomatlashtirilgan zaxira ishlarini yarating:
- kengaytirish SQL Server Agent
SSMS da
- O'ng tugmasini bosing Jobs va tanlash Yangi ish
- Ishga nom bering (masalan, “Kundalik toʻliq zaxira”)
- qo'shish qadam T-SQL zaxira buyruqlari bilan
- Yarating jadvali ijro vaqti uchun
- moslashName xabarnomalar muvaffaqiyat / muvaffaqiyatsizlik uchun
10.6.2 Ta'mirlash rejalari
SQL Server Ta'minot rejalari zaxira avtomatlashtirish uchun vizual interfeysni taqdim etadi:
- Navigatsiya qiling boshqaruv -> Ta'mirlash rejalari
- O'ng tugmasini bosing va tanlang Xizmat rejasi ustasi
- Avtomatlashtirish uchun zaxira vazifalarini tanlang
- Zaxiralash jadvali va imkoniyatlarini sozlang
- Hisobot va ro'yxatga olishni sozlang
10.6.3 Zaxiraviy ogohlantirishlar va bildirishnomalar
Elektron pochta xabarnomalarini sozlash:
- Ma'lumotlar bazasi pochtasini o'rnating SQL Server
- Zaxira nusxadagi nosozliklar haqida ogohlantirishlar yarating
- Zaxira ish tarixini kuzatib boring
- Xulosa hisobotlarini administratorlarga yuboring
10.7 Hujjatlar va tabiiy ofatlarni tiklashni rejalashtirish
To'liq hujjatlarni saqlang:
- Zaxira jadvali: Qachon va nima zaxiralanadi
- Saqlash qoidalari: Zaxira nusxalari qancha vaqt saqlanadi
- Saqlash joylari: Zaxira nusxalari qaerda saqlanadi
- Qayta tiklash jarayonlari: Qayta tiklash bo'yicha bosqichma-bosqich ko'rsatmalar
- Bog'lanish uchun ma'lumot: Asosiy xodimlar va sotuvchilar
- Qayta tiklash testi natijalari: Hujjatlashtirilgan test natijalari
11. Ilg'or SQL Server Zaxira stsenariylari
11.1 Juda katta ma'lumotlar bazalarini zaxiralash (VLDB)
11.1.1 Fayllar va fayllar guruhi strategiyalari
Bir necha yuz gigabaytdan ortiq ma'lumotlar bazalari uchun:
- Faqat o'qish va o'qish-yozish uchun ma'lumotlarni turli fayl guruhlariga ajrating
- Faqat o'qish uchun fayl guruhlarini kamdan-kam hollarda zaxiralang
- Tez-tez zaxira nusxalarini faol fayl guruhlariga qarating
- Donador boshqaruv uchun fayl darajasidagi zaxira nusxalaridan foydalaning
Fayl zahirasiga misol:
-- Back up specific file
BACKUP DATABASE LargeDB
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO
11.1.2 Zaxira ish faoliyatini optimallashtirish
VLDB zaxira ish faoliyatini yaxshilang:
- Chiziqli zaxira nusxalari: Bir vaqtning o'zida bir nechta fayllarga yozing
- Siquv: I/U va saqlash talablarini kamaytiring
- Bir nechta zaxira qurilmalari: Zaxira operatsiyalarini parallellashtirish
- Tez saqlash: Zaxira nusxalash uchun SSD-lardan foydalaning
- Bufer soni: BUFFERCOUNT parametrini oshiring
- Maksimal uzatish hajmi: MAXTRANSFERSIZE sozlamasini optimallashtirish
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
DISK = 'D:\Backups\LargeDB_2.bak',
DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
BUFFERCOUNT = 100,
MAXTRANSFERSIZE = 4194304;
GO
11.2 Har doim mavjud bo'lgan guruhlarda zaxiralash
Har doim mavjud bo'lgan guruhlar zaxira yukini nusxalar bo'ylab taqsimlaydi:
- Zaxira sozlamalarini sozlash (asosiy, ikkilamchi yoki har qanday nusxa)
- Asosiy ish yukini kamaytirish uchun zaxira nusxalarini ikkilamchi nusxalarga yuklang
- Ikkilamchi nusxalarda COPY_ONLY zaxira nusxalaridan foydalaning
- Zaxira ustuvorlik sozlamalarini kuzatib boring
-- Check backup preferences
SELECT
ag.name AS AvailabilityGroup,
ar.replica_server_name,
ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO
11.3 Ma'lumotlar bazasini aks ettirish uchun zaxira
Ma'lumotlar bazasini aks ettirish stsenariylarida:
- Asosiy ma'lumotlar bazasini muntazam ravishda zaxiralang
- Tranzaksiya jurnalining zaxira nusxalari aks ettirish uchun zarurdir
- Oyna ma'lumotlar bazasi RESTORING holatida (to'g'ridan-to'g'ri zaxiralab bo'lmaydi)
- Ishlamay qolgandan keyin oynani zaxiralashni o'ylab ko'ring
11.4 Azure Blob xotirasiga zaxiralash
SQL Server to'g'ridan-to'g'ri Azure Blob xotirasiga zaxira nusxasini yaratishi mumkin:
- Azure Storage hisobini yarating
- yaratish SQL Server Azure autentifikatsiyasi uchun hisob ma'lumotlari
- Zaxira manzili uchun URL sintaksisidan foydalaning
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO
-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
STATS = 10;
GO
11.5 URL manziliga zaxiralash
URL manziliga zaxiralashning afzalliklari:
- Cheksiz bulutli saqlash hajmi
- Geografik ortiqcha avtomatik ishlov beriladi
- Istaganingizcha toʻlash narxlari modeli
- Mahalliy disk maydoni talab qilinmaydi
- Zaxira uchun 64 tagacha URL manzilini qo'llab-quvvatlaydi (chiziqli)
11.6 Ishlash uchun chiziqli zaxira nusxalari
Chiziqli zaxiralar tezroq kiritish/chiqarish uchun maʼlumotlarni bir nechta fayllarga ajratadi:
-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
DISK = 'D:\Backups\AW_Stripe2.bak',
DISK = 'E:\Backups\AW_Stripe3.bak',
DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO
Eslatma: Qayta tiklash uchun barcha chiziqli fayllar talab qilinadi. Har qanday faylning etishmasligi zaxira nusxasini yaroqsiz holga keltiradi.
12. Muammolarni bartaraf qilish; nosozliklarni TUZATISH SQL Server Zaxiralash muammolari
12.1 Umumiy zaxira xatolar va echimlar
Xato: "Operatsion tizim xatosi 5: kirish taqiqlangan"
- Nima uchun: SQL Server xizmat hisobiga ruxsat yo'q
- Qarori: Yozish uchun ruxsat bering SQL Server zaxira papkasida xizmat hisobi
Xato: “Zaxiraviy qurilmani ochib boʻlmadi… Qurilma xatosi yoki qurilma oflayn”
- Nima uchun: Yo‘l noto‘g‘ri yoki tarmoq ulushi mavjud emas
- Qarori: Yo'l mavjudligini tekshiring, tarmoq ulanishini tekshiring, diskda etarli joy mavjudligiga ishonch hosil qiling
Xato: “Diskda joy yetarli emas”
- Nima uchun: Zaxiralash uchun disk maydoni yetarli emas
- Qarori: Diskdagi joyni bo'shating, siqishni ishlating, boshqa joyga zaxiralang
Xato: "Ma'lumotlar bazasidan foydalanilmoqda. Ma'lumotlar bazasi boshqa foydalanuvchilar tomonidan foydalanilmoqda"
- Nima uchun: Qayta tiklash vaqtida faol ulanishlar
- Qarori: WITH REPLACE opsiyasidan foydalaning yoki avval foydalanuvchilarni uzing
12.2 Zaxira ishlash bilan bog'liq muammolar
Sekin zaxira nusxalarini tashxislash:
- Diskning kirish/chiqarish ishlashini tekshiring Ishlash monitori
- STATS opsiyasi yordamida zaxira nusxasini yaratish jarayonini kuzatib boring
- Review SQL Server to'siqlar uchun xato jurnali
- I/U kamaytirish uchun siqishni ko'rib chiqing
- Bir nechta disklarda chiziqli zaxira nusxalaridan foydalaning
Zaxiralash jarayonini kuzatish uchun so'rov:
SELECT
session_id,
command,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests
WHERE command LIKE 'BACKUP%';
GO
12.3 Bo'shliq va saqlash muammolari
Saqlash muammolarini oldini olish:
- Saqlash siyosatini amalga oshirish: Eski zaxira nusxalarini avtomatik o'chirish
- Siqishdan foydalaning: Zaxira fayl hajmini 50-70% ga qisqartiring
- Arxivni arzonroq saqlash uchun: Eski zaxira nusxalarini arxiv xotirasiga ko'chiring
- Disk maydonini kuzatib boring: Diskdagi kam joy haqida ogohlantirishlarni o'rnating
- Taxminiy zaxira hajmi: Zaxiralashdan oldin kutilgan hajmni hisoblang
Taxminiy zaxira hajmi:
-- Estimate full backup size
EXEC sp_spaceused;
GO
12.4 Ruxsat va kirish bilan bog'liq muammolar
Zaxiralash uchun zarur ruxsatlar:
- MA'LUMOTLAR BAZASINI ZAXIRA ruxsat
- db_backupoperator rolga a'zolik
- tizim boshqaruvchisi server roli (barcha zaxira operatsiyalari uchun)
Zaxira ruxsatnomalarini berish:
-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO
-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO
12.5 Zaxira fayllari buzilgan
Buzuq zaxiralarni aniqlash va qayta ishlash:
Zaxira yaxlitligini tekshiring:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
Kelgusi zahiralar uchun CHECKSUM funksiyasini yoqing:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
Oldini olish strategiyalari:
- Zaxiralash vaqtida har doim CHECKSUM opsiyasidan foydalaning
- Yaratilgandan so'ng darhol zaxira nusxalarini tekshiring
- Sinov muntazam ravishda tiklanadi
- Zaxira nusxalarini ishonchli xotirada saqlang
- Bir nechta zaxira nusxalarini saqlang
12.6 Buzuq zaxira fayllardan ma'lumotlarni qayta tiklash
Zaxira fayllaringiz buzilgan bo'lsa va siz hali ham ulardan ma'lumotlarni qayta tiklamoqchi bo'lsangiz, quyidagi kabi uchinchi tomon vositalaridan foydalanishingiz mumkin. DataNumen SQL Recovery, quyidagi kabi:
- boshlanish DataNumen SQL Recovery.
- Filtrni "Barcha fayllar (*.*)" ga o'zgartirib, manba fayl sifatida buzilgan zaxira faylni tanlang:
- Agar kerak bo'lsa, chiqish .MDF faylini o'rnating.
- Ma'lumotlar bazasini tiklash uchun "Qayta tiklashni boshlash" tugmasini bosing va ko'rsatmalarga amal qiling.
- Qayta tiklash jarayonidan so'ng, yangi tiklash ma'lumotlar bazasi paydo bo'ladi SQL Server barcha tiklangan ma'lumotlarni o'z ichiga oladi.
13. SQL Server Zaxira xavfsizligi
13.1 Zaxira fayllarni himoya qilish
Zaxira fayllarni ruxsatsiz kirishdan himoya qiling:
- Fayl tizimi ruxsatlari: Faqat vakolatli administratorlarga kirishni cheklash
- Tarmoq xavfsizligi: Tarmoq zaxiralash uchun xavfsiz protokollardan foydalaning
- Jismoniy xavfsizlik: Zaxira mediani xavfsiz joylarda saqlang
- Jurnalga kirish: Zaxira faylga kirishni tekshirish
13.2 Shifrlash imkoniyatlari
SQL Server shaffof zaxira shifrlashni qo'llab-quvvatlaydi:
Shifrlash uchun sertifikat yarating:
-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO
-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO
Shifrlangan zaxira:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
Muhim: Sertifikat va shaxsiy kalitni alohida zaxiralang. Ularsiz shifrlangan zahiralarni tiklab bo'lmaydi.
-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
FILE = 'C:\Certificates\BackupCertificate.key',
ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO
13.3 Kirishni boshqarish va ruxsatlar
Eng kam imtiyoz tamoyilini amalga oshirish:
- Zaxira ruxsatlarini faqat kerakli hisoblarga bering
- Zaxiralash va tiklash operatsiyalari uchun alohida hisoblardan foydalaning
- Zaxiralash uchun sa hisob qaydnomasidan foydalanishdan saqlaning
- Zaxira ruxsatnomalarini muntazam tekshirib turing
- Agar kerak bo'lmasa, ruxsatlarni olib tashlang
13.4 Muvofiqlik masalalari
Normativ talablarga murojaat qiling:
- GDPR: Shaxsiy ma'lumotlarni o'z ichiga olgan zaxira nusxalarini shifrlash, saqlash siyosatini amalga oshirish
- HIPAA: Zaxira nusxalarida PHIni shifrlash, kirishni boshqarish, audit izlarini saqlash
- PCI DSS: Karta egasi ma'lumotlarining zaxira nusxalarini shifrlash, xavfsiz zaxira saqlash
- SOX: Zaxira yaxlitligini, hujjatlarni saqlash siyosatini saqlang
14. Zaxira operatsiyalarini kuzatish va saqlash
14.1 Zaxira tarixini kuzatish
SQL Server msdb ma'lumotlar bazasida zaxira tarixini saqlaydi:
-- View recent backup history
SELECT
bks.database_name,
bks.backup_start_date,
bks.backup_finish_date,
CASE bks.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
ELSE 'Other'
END AS backup_type,
bks.backup_size / 1024 / 1024 AS backup_size_mb,
bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO
So'nggi zahira nusxalarisiz ma'lumotlar bazalarini toping:
SELECT
d.name AS database_name,
MAX(bs.backup_finish_date) AS last_backup_date,
DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO
14.2 Foydalanish SQL Server Hisobotlar
SQL Server Management Studio o'rnatilgan zaxira hisobotlarini o'z ichiga oladi:
- Object Explorer-da ma'lumotlar bazasini o'ng tugmasini bosing
- tanlang Hisobotlar -> Standart hisobotlar
- Mavjud hisobotlardan tanlang:
- Voqealarni zaxiralash va tiklash
- Barcha zaxira nusxalari
- Tranzaksiya jurnali yetkazib berish holati
14.3 Uchinchi tomon monitoringi vositalari
Tijorat monitoringi yechimlari:
- SQL Sentry: Har tomonlama monitoring va ogohlantirish
- Redgate SQL monitori: Haqiqiy vaqtda monitoring va diagnostika
- SolarWinds ma'lumotlar bazasi ishlash tahlilchisi: Ishlash va zaxira monitoringi
- Idera SQL diagnostika menejeri: Zaxira nusxasini tekshirish va ogohlantirish
14.4 Salomatlik tekshiruvlarining zaxira nusxasi
Salomatlikni tekshirish tartibini yarating:
-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
-- Check for databases without recent full backup
SELECT
'Missing Recent Full Backup' AS issue,
d.name AS database_name,
ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs
ON d.name = bs.database_name AND bs.type = 'D'
WHERE d.database_id > 4
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
AND j.name LIKE '%backup%';
END
GO
15. SQL Server Zaxira tez-tez so'raladigan savollar
15.1 Qanchalik tez-tez zaxiralashim kerak SQL Server?
Zaxiralash chastotasi Qayta tiklash nuqtasi maqsadingizga (RPO) bog'liq:
- Muhim ishlab chiqarish ma'lumotlar bazalari: To'liq haftalik, har kuni differentsial, har 15-30 daqiqada jurnalga kiring
- Standart ishlab chiqarish ma'lumotlar bazalari: To'liq haftalik, har kuni differentsial, har 1-2 soatda jurnalga kiring
- Rivojlanish ma'lumotlar bazalari: To'liq kunlik yoki haftalik
- Faqat o'qish uchun mo'ljallangan ma'lumotlar bazalari: Har bir ma'lumot o'zgarishidan keyin to'liq
15.2 To'liq va differentsial zaxira o'rtasidagi farq nima?
To'liq zaxira nusxasi butun ma'lumotlar bazasini nusxalaydi, differentsial zaxira esa faqat oxirgi to'liq zaxiradan keyingi o'zgarishlarni saqlaydi. Differentsial zaxiralar kichikroq va tezroq, lekin tiklash uchun asosiy to'liq zaxira nusxasini talab qiladi.
15.3 Zaxiralash mumkinmi? SQL Server Ishlayotgandami?
Ha, SQL Server onlayn zaxira nusxalarini qo'llab-quvvatlaydi. Foydalanuvchilar zaxira operatsiyalari paytida ishlashni davom ettirishlari mumkin. SQL Server o'z tranzaksiya jurnalidan izchillikni saqlab qolish uchun foydalanadi, hatto bir vaqtning o'zida kiritilgan o'zgartirishlar bilan ham zaxira nusxalari haqiqiyligini ta'minlaydi.
15.4 Qancha vaqt SQL Server Zaxira nusxa olingmi?
Zaxiralash muddati quyidagilarga qarab farq qiladi:
- Ma'lumotlar bazasi hajmi: Kattaroq ma'lumotlar bazalari ko'proq vaqt talab etadi
- Zaxira turi: To'liq zaxiralash eng uzoq davom etadi
- Siquv: CPU vaqtini oshirishi mumkin, lekin umumiy vaqtni qisqartirishi mumkin
- Saqlash tezligi: SSD-lar HDD-lardan sezilarli darajada tezroq
- Server yuki: Yuqori faollik zaxiralashni sekinlashtiradi
Odatiy diapazonlar: 10 Gb maʼlumotlar bazasi zamonaviy uskunada siqilgan holda toʻliq zaxiralash uchun 5-15 daqiqa vaqt ketishi mumkin.
15.5 Qayerda saqlashim kerak SQL Server Zaxira nusxalarmi?
Eng yaxshi amaliyot: 3-2-1 qoidasiga amal qiling:
- 3 ma'lumotlaringizning nusxalari
- 2 turli xil saqlash turlari (masalan, disk va lenta/bulut)
- 1 saytdan tashqarida nusxa ko'chirish
Tavsiya etilgan joylar:
- Tez tiklash uchun mahalliy disk
- Markazlashtirilgan boshqaruv uchun tarmoq xotirasi
- Favqulodda vaziyatlarni tiklash uchun bulutli saqlash (Azure, AWS).
15.6 .bak fayl kengaytmasi nima?
.bak kengaytmasi standart fayl kengaytmasi hisoblanadi SQL Server zaxira fayllar. Bu shart emas, konventsiya - SQL Server zaxira nusxalari har qanday fayl kengaytmasi bilan ishlaydi. Biroq, .bak dan foydalanish zaxira fayllarni osongina aniqlash imkonini beradi va sanoat standarti amaliyotidir.
15.7 Qanday qilib zaxiralash kerak SQL Server tarmoq diskigami?
Tarmoq drayveriga zaxira nusxasini yaratish uchun:
- ta'minlash SQL Server xizmat qaydnomasi tarmoq ulushida yozish ruxsatlariga ega
- Zaxira buyrug'ida UNC yo'lidan foydalaning:
\\ServerName\ShareName\BackupFile.bak - Avtomatik zaxiralashni rejalashtirishdan oldin ulanishni sinab ko'ring
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
15.8 Siqish mumkinmi SQL Server Zaxira nusxalarmi?
Ha, SQL Server mahalliy zaxira nusxasini siqishni qo'llab-quvvatlaydi (Enterprise Edition yoki Standard Edition boshlang'ich versiyasi) SQL Server 2016 SP1). Siqish odatda zahira hajmini 50-70% ga qisqartiradi va ko'pincha kiritish/chiqarishni qisqartirish orqali zaxira vaqtini qisqartiradi, garchi u protsessordan foydalanishni oshiradi.
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. Xulosa
16.1 ta asosiy xulosalar
samarali SQL Server zaxira strategiyalari ma'lumotlaringizni himoya qiladi va biznesning uzluksizligini ta'minlaydi. Ushbu muhim fikrlarni eslang:
- Zaxira turlarini tushuning: Qayta tiklash talablaringiz asosida tegishli zaxira turlarini (to'liq, differentsial, tranzaksiya jurnali) tanlang
- To'g'ri tiklash modelini tanlang: Muhim ma'lumotlar uchun to'liq tiklash, ma'lumotlar bazalarini ishlab chiqish uchun oddiy
- Zaxira jadvalini amalga oshirish: Muntazam to'liq zaxira nusxalari differentsial va jurnalning zaxira nusxalari bilan birgalikda ma'lumotlar yo'qotilishini minimallashtiradi
- Sinovni tiklash jarayonlari: Zaxira nusxalari faqat ular muvaffaqiyatli tiklangan taqdirdagina qimmatlidir
- Avtomatlashtirish va monitoring qilish: foydalanish SQL Server Agent, texnik xizmat ko'rsatish rejalari va monitoring vositalari
- Xavfsiz zaxira nusxalari: Nozik ma'lumotlarni shifrlash va zaxira fayllarga kirishni boshqarish
- Saytdan tashqari nusxalarni saqlang: Bulutli yoki masofaviy saqlash bilan sayt bo'ylab ofatlardan himoya qiling
- Hamma narsani hujjatlashtiring: Zaxiralash va tiklash jarayonlarining aniq hujjatlarini saqlang
16.2 Keyingi qadamlar va manbalar
O'zingizni yaxshilash uchun SQL Server zaxira amalga oshirish:
- Mavjud zaxira strategiyangizni eng yaxshi amaliyotlar asosida baholang
- RTO va RPO talablaringizni hisoblang
- Ishlab chiqarishdan tashqari tizimlarda qayta tiklash protseduralarini sinab ko'ring
- Zaxira jadvallarini muntazam ravishda ko'rib chiqing va yangilang
- Avtomatlashtirilgan monitoring va ogohlantirishni amalga oshirish
- Jamoa a'zolarini tiklash tartib-qoidalariga o'rgating
Qo'shimcha manbalar:
- Microsoft SQL Server Hujjatlar: Rasmiy zaxiralash va tiklash bo'yicha ko'rsatmalar
- SQL Server zaxira hamjamiyat forumlari: tajriba va yechimlarni almashish
- Professional sertifikatlar: Microsoft Certified: Azure Database Administrator Associate
16.3 Tavsiya etilgan vositalar va yechimlar
Turli stsenariylar asosida:
Kichik korxonalar:
- tug'ma SQL Server rejalashtirilgan bilan zaxiralash SQL Server Agent ishlari
- Bulut integratsiyasi uchun SQLBackupAndFTP
- Azure Backup uchun SQL Server
O'rta korxonalar:
- SQL Server Ta'mirlash rejalari
- Redgate SQL Backup Pro kabi uchinchi tomon vositalari
- Veeam Backup uchun SQL Server
Yirik korxonalar:
- Maksimal siqish uchun LiteSpeed-ni qidiring
- Korporativ zaxiralarni boshqarish uchun Commvault yoki Veritas NetBackup
- Doim mavjud guruhlar uchun yuqori darajadagi mavjudlik
SQL Server Ma'lumotlar bazasini boshqarish uchun zaxira nusxasi juda muhimdir. To'g'ri rejalashtirish, amalga oshirish va sinovdan o'tkazish orqali siz ma'lumotlaringiz himoyalanganligini va kerak bo'lganda tiklanishini ta'minlashingiz mumkin. Ma'lumotlaringizni himoya qilish uchun bugun ushbu eng yaxshi amaliyotlarni amalga oshirishni boshlang SQL Server ma'lumotlar bazalari.
Muallif haqida
Yuan Sheng 10 yildan ortiq tajribaga ega bo'lgan katta ma'lumotlar bazasi administratori (DBA). SQL Server muhitlar va korporativ ma'lumotlar bazasini boshqarish. U moliyaviy xizmatlar, sog'liqni saqlash va ishlab chiqarish tashkilotlarida ma'lumotlar bazasini tiklashning yuzlab stsenariylarini muvaffaqiyatli hal qildi.
Yuan ixtisoslashgan SQL Server ma'lumotlar bazasini tiklash, yuqori mavjudlik echimlari va ishlashni optimallashtirish. Uning keng ko‘lamli amaliy tajribasiga ko‘p terabaytli ma’lumotlar bazalarini boshqarish, “Always On Availability Groups”ni amalga oshirish va muhim biznes tizimlari uchun avtomatlashtirilgan zaxira va tiklash strategiyalarini ishlab chiqish kiradi.
Yuan o'zining texnik tajribasi va amaliy yondashuvi orqali ma'lumotlar bazasi ma'murlari va IT mutaxassislariga murakkab muammolarni hal qilishga yordam beradigan keng qamrovli qo'llanmalarni yaratishga e'tibor qaratadi. SQL Server muammolarni samarali hal qiladi. U eng so'nggi yangiliklardan xabardor bo'lib qoladi SQL Server relizlar va Microsoft-ning rivojlanayotgan ma'lumotlar bazasi texnologiyalari, uning tavsiyalari haqiqiy dunyodagi eng yaxshi amaliyotlarni aks ettirishini ta'minlash uchun tiklash stsenariylarini muntazam ravishda sinab ko'radi.
haqida savollaringiz bor SQL Server tiklash yoki ma'lumotlar bazasi muammolarini bartaraf etish bo'yicha qo'shimcha yo'riqnoma kerakmi? Yuan tabriklaydi mulohazalar va takliflar ushbu texnik resurslarni yaxshilash uchun.











