Hozir ulashing:
Mundarija yashirish

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

To'liq va differentsial 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.

Quyruq jurnalining zaxira nusxalarini tushuntiruvchi diagramma SQL Server.

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

  1. Ishga tushirish SQL Server Boshqaruv studiyasi
  2. Server nomini kiriting Server nomi Maydon
  3. Autentifikatsiya usulini tanlang
  4. bosing Ulanish

4.2.2 Ma'lumotlar bazasi va Zaxiralash opsiyalarini tanlash

  1. In Ob'ektni o'rganuvchi, kengaytirish Ma'lumotlar bazalarini Tugunni tanlang
  2. Zaxiralashni xohlagan ma'lumotlar bazasini o'ng tugmasini bosing
  3. tanlang vazifalar -> Orqaga qaytish
    Zaxira vazifasini boshlang SQL Server ma'lumotlar bazasida SQL Server Menejment studiyasi.
  4. In Ma'lumotlar bazasini zaxiralash oyna, ma'lumotlar bazasi nomini tekshiring
  5. tanlang to'liq sifatida Zaxira turi
    a ning to'liq zaxira nusxasini yarating SQL Server ma'lumotlar bazasida SQL Server Menejment studiyasi.

4.2.3 Zaxiralash manzilini sozlash

  1. ostida Nishontugmasini bosing O'chiring standart yo'lni tozalash uchun (agar kerak bo'lsa)
  2. bosing qo'shish yangi zaxira joyini belgilash uchun
  3. Fayl yo'lini va nomini kiriting .Uloqcha kengaytirish
  4. bosing OK maqsadni tasdiqlash uchun

Zaxira manzilini o'rnating SQL Server Menejment studiyasi.

4.2.4 Advanced Backup Sozlamalar

  1. bosing Media opsiyalari chap panelda
  2. 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

    Zaxira media parametrlarini o'rnating SQL Server Menejment studiyasi.

  3. bosing Zahira parametrlari chap panelda
  4. 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

    Zaxiralash parametrlarini o'rnating SQL Server Menejment studiyasi.

4.2.5 Zaxiralashni amalga oshirish

  1. dagi barcha sozlamalarni ko'rib chiqing Ma'lumotlar bazasini zaxiralash deraza
  2. bosing OK zaxiralash jarayonini boshlash uchun
  3. Zaxiralash tugashini kuting
  4. Zaxiralash tugagach, muvaffaqiyat haqida xabar paydo bo'ladi
  5. 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.

a ning differentsial zahirasini yarating SQL Server ma'lumotlar bazasida SQL Server Menejment studiyasi.

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.

  1. Ma'lumotlar bazasini o'ng tugmasini bosing Ob'ektni o'rganuvchi
  2. tanlang vazifalar -> Orqaga qaytish
  3. tanlang Tranzaksiya jurnali zaxira turi sifatida
  4. Kerak bo'lganda maqsad va variantlarni sozlang
  5. bosing OK jurnalning zaxira nusxasini yaratish uchun

Tranzaksiya jurnalining zaxira nusxasini yarating SQL Server ma'lumotlar bazasida SQL Server Menejment studiyasi.

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.

  1. To'liq zaxira nusxasini yaratish uchun qadamlarni bajaring
  2. In Zahira parametrlari bet
  3. nazorat Faqat nusxa ko'chirish uchun zaxira variant
  4. Zaxiralash jarayonini odatdagidek yakunlang

a ning faqat nusxa ko'chirish uchun zaxira nusxasini yarating SQL Server ma'lumotlar bazasida SQL Server Menejment studiyasi.

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:

  1. ochiq Buyruqning xohishi or PowerShell
  2. Quyidagiga o'ting SQL Server asboblar katalogi (odatda o'rnatish vaqtida PATHga qo'shiladi)
  3. Tegishli parametrlar bilan SQLCMD zaxira ma'lumotlar bazasi buyrug'ini bajaring
  4. 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:

  1. ochiq Buyruqning xohishi
  2. Sizning tizimingizda OSQL mavjudligini tekshiring SQL Server O'rnatish
  3. 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

  1. ochiq SQL Server Boshqaruv studiyasi va serveringizga ulaning
  2. In Ob'ektni o'rganuvchi, o'ng tugmasini bosing Ma'lumotlar bazalarini
  3. tanlang Ma'lumotlar bazasini tiklash
  4. In manba -ni tanlang Qurilma
  5. bosing ... Zaxira fayllarni ko'rib chiqish uchun tugma
  6. bosing qo'shish va .bak faylingizga o'ting
  7. Zaxira faylini tanlang va ustiga bosing OK
  8. In Nishon bo'limiga ma'lumotlar bazasi nomini kiriting
  9. Qayta tiklash uchun zaxira to'plamlarini ko'rib chiqing
  10. 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:

  1. Birinchidan, bilan to'liq zaxira nusxasini tiklang NORECOVERY variant
  2. 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:

  1. NORECOVERY bilan toʻliq zaxira nusxasini tiklang
  2. NORECOVERY yordamida differentsial zaxira nusxasini tiklang (agar mavjud bo'lsa)
  3. NORECOVERY yordamida tranzaktsiyalar jurnalining zaxira nusxalarini tiklang
  4. 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:

  1. Vaqtinchalik ma'lumotlar bazasiga zaxira nusxasini tiklash
  2. 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:

  1. Zaxira nusxalarini sinov muhitiga tiklang
  2. Ma'lumotlarning yaxlitligi va to'liqligini tekshiring
  3. Ilovaning funksionalligini tekshiring
  4. Hujjatni tiklash vaqti (RTOni tasdiqlash)
  5. 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:

  1. kengaytirish SQL Server AgentTashqi bog'lanish SSMS da
  2. O'ng tugmasini bosing Jobs va tanlash Yangi ish
  3. Ishga nom bering (masalan, “Kundalik toʻliq zaxira”)
  4. qo'shish qadam T-SQL zaxira buyruqlari bilan
  5. Yarating jadvali ijro vaqti uchun
  6. moslashName xabarnomalar muvaffaqiyat / muvaffaqiyatsizlik uchun

10.6.2 Ta'mirlash rejalari

SQL Server Ta'minot rejalari zaxira avtomatlashtirish uchun vizual interfeysni taqdim etadi:

  1. Navigatsiya qiling boshqaruv -> Ta'mirlash rejalari
  2. O'ng tugmasini bosing va tanlang Xizmat rejasi ustasi
  3. Avtomatlashtirish uchun zaxira vazifalarini tanlang
  4. Zaxiralash jadvali va imkoniyatlarini sozlang
  5. 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:

  1. Azure Storage hisobini yarating
  2. yaratish SQL Server Azure autentifikatsiyasi uchun hisob ma'lumotlari
  3. 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:

  1. boshlanish DataNumen SQL Recovery.
  2. Filtrni "Barcha fayllar (*.*)" ga o'zgartirib, manba fayl sifatida buzilgan zaxira faylni tanlang:
    Qayta tiklanadigan manba fayl sifatida buzilgan zaxira faylini (*.bak) tanlang.
  3. Agar kerak bo'lsa, chiqish .MDF faylini o'rnating.
  4. Ma'lumotlar bazasini tiklash uchun "Qayta tiklashni boshlash" tugmasini bosing va ko'rsatmalarga amal qiling.
  5. Qayta tiklash jarayonidan so'ng, yangi tiklash ma'lumotlar bazasi paydo bo'ladi SQL Server barcha tiklangan ma'lumotlarni o'z ichiga oladi.

foydalanish DataNumen SQL Recovery buzilgan ma'lumotlarni qayta tiklash uchun SQL Server zaxira fayli (*.bak).

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:

  1. Object Explorer-da ma'lumotlar bazasini o'ng tugmasini bosing
  2. tanlang Hisobotlar -> Standart hisobotlar
  3. 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:

  1. ta'minlash SQL Server xizmat qaydnomasi tarmoq ulushida yozish ruxsatlariga ega
  2. Zaxira buyrug'ida UNC yo'lidan foydalaning: \\ServerName\ShareName\BackupFile.bak
  3. 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.

Hozir ulashing: