JavaRush /Kurslar /All lectures for UZ purposes /Ma'lumotlarni zaxiralash

Ma'lumotlarni zaxiralash

All lectures for UZ purposes
Daraja, Dars
Mavjud

8.1 Baza ma'lumotlarini zaxira nusxasi zarurati

Siz bazaning sxemalarini, jadvallarini yaratishni, ko'rib chiqishni o'rgandingiz. Shuningdek, ushbu jadvallarni ma'lumotlar bilan to'ldirib o'zgartirishni. Endi eng muhim narsani o'rganishingiz kerak - zaxira nusxalarini yaratishni.

Ma'lumotlar bazasi juda oson buzilishi mumkin. Buning sababi, ma'lumotlar bazasi doimiy o'zgarish holatida bo'lishidir: unga doimiy ravishda nimadir saqlanadi va qo'shiladi.

Misol uchun, sizda brauzerda ochilgan bir tab bo'lsa va uning ichidagi ma'lumotni yo'qolishini xohlamasangiz. Keling, rozi bo'laylik, agar siz uni hech qachon yopmaslikka qaror qilsangiz, bu eng yaxshi variant bo'lmaydi. Axir brauzer osilib qolishi, tasodifan yopilishi, elektr o'chishi yoki kompyuter yonib ketishi mumkin. Yana Windows navbatdagi yangilanishni o'rnatishi mumkin, yana qancha narsalar.

Xuddi shu narsa bilan, ma'lumotlar bazasidagi tabingiz ham. Va bu faqat vaqt masalasi, diskka yozish paytida nimadir noto'g'ri ketishi mumkin. Shu sababli, siz zaxira nusxalarini yaratishni o'rganishingiz kerak.

Zaxira nusxalarini yaratish - tishlarni yuvish kabi, normal kompaniyalarda har kecha har bir ma'lumotlar bazasining zaxira nusxasi yaratiladi. Chiziqni o'rnatishingiz kerak bo'lgan taqdirda, ularning zaxira nusxalari odatda 2-3 nusxa bo'lib, dunyo bo'ylab ma'lumotlar markazlarida saqlanadi.

Zaxira nusxa yaratishning bir nechta usullari mavjud.

Fayllarni zaxiralash. Chunki barcha bazadagi ma'lumotlar diskda fayllar to'plami sifatida saqlanadi, eng oddiy usul - bu shunchaki fayllarni boshqa joyga nusxalash. Yoki oldin hammasini bir arxivga siqib qo'yib, keyin boshqa joyga nusxalash.

Bu eng tez usul, lekin u fayllarni nusxa olish/arxivlash paytida o'zgarmasligini talab qiladi. Nusxani yaratishda bazani muzlatishingiz kerak, aks holda nusxa noto‘g‘ri bo‘ladi. Axir yangi ma'lumotlarning bir qismi bazaga yozilishi mumkin, bir qismi esa hali yo'q.

SQL-so'rovlar shaklidagi zaxira. Siz allaqachon bilasiz, SQL-server bazasidagi ma'lumotlarni qo'shish va o'zgartirish har doim SQL-so'rovlar yordamida amalga oshiriladi. Shunday qilib, SQL-serverdan ma'lum bir jadval yoki jadvallar tarkibini SQL-so'rovlarini fayl shaklida saqlashlarini so'rashingiz mumkin.

Bu usul avvalgidan sekinroq, lekin uning yordamida turli ishlab chiqaruvchi SQL-serverlar o'rtasida ma'lumotlarni o'tkazishingiz mumkin.

Bundan tashqari, har doim ham barcha ma'lumotlarni saqlash shart emas. Ko'pincha jadvallaringizda bir qator xizmat ma'lumotlari yoki eskirgan ma'lumotlar mavjud va SQL-serverga ular saqlanmasligini ko'rsatish mumkin.

Vaqt bo'yicha bog'langan ba'zi voqealarni saqlaydigan jadvallar uchun, siz oddiygina o'tgan kun uchun bunday voqealarni tanlashingiz va faqat ularni saqlashingiz mumkin.

Turli xil utils. Kompaniyalar, ularning ma'lumotlari yaxlitligi va xavfsizligini ta'minlashlari uchun katta mablag' sarflashga tayyor. Shu sababli, turli IT-kompaniyalar har bir holat uchun yechim taklif qilishni boshladilar. Masalan, ma'lumotlar bazasining zaxirasini fayllar shaklida yaratadigan dasturlar mavjud va bu fayllar o'zgarmasligini talab qilmaydi.

Masalan, operatsion tizimga maxsus driverlarni o'rnatish va qachon, nima va qayerda o'zgarganligini kuzatish mumkin.

8.2 Baza ma'lumotlarining zaxira nusxasini yaratish

Workbench ma'lumotlarni eksport qilish va import qilishni yaxshi biladi. Buning uchun siz faqat menyu bandini bosishingiz kerak: Server-> Data Export. Va siz taxminan shunday rasmni ko'rasiz:

Workbench Buckup Server Data Export

Endi biroz tushuntirish qo'shamiz:

Workbench Buckup Server Data Export 1

Tartibda quyidagicha:

  1. Dastlab eksport qilinadigan sxema yoki sxemalarni tanlaymiz.
  2. Keyin o'ng tomonda zaxira uchun jadvallarni ko'rsatamiz.
  3. Keyin nima eksport qilmoqchi ekanligimizni tanlashimiz kerak:
    • faqat ma'lumotlar;
    • faqat tuzilma (jadvallar bo'ladi, lekin bo'sh);
    • ma'lumotlar va tuzilma.
  4. Dastlab ma'lumotlar qanday saqlanishini tanlang:
    • har bir jadval uchun bitta fayl;
    • barcha jadvallar uchun bitta fayl.
  5. Shuningdek, muvofiq kodni fayl boshiga qo'shishingiz mumkin. Bu turli xil DBMSlar o'rtasida ma'lumotlarni o'tkazishda qulay.

8.3 Jadvallar sxemasini zaxiralash

Sxema bilan emas, balki faqat sxema zaxirasini yarataylik.

Men faqat Dump Structure Only tanladim va Start Export ni bosdim.

Workbench Buckup Server Data Export 22

Workbench tomonidan yaratilgan faylda topganim bu.


-- -- Jadval `user` tuzilish sxemasi --
 
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client 	= @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `level` int(11) DEFAULT NULL,
  `created_date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Ha, to'g'ri, bu bizning jadvallarimizning sxemasi, agar bitta jadval haqida shunday deyish mumkin bo'lsa.

8.4 Ma'lumotlarni zaxiralash

Endi faqat ma'lumotlarning, sxema strukturasini emas, zaxira nusxasini olaylik.

Faqat Dump Data Only tanlang va nima berilganini ko'ring:

Workbench Buckup Server Data Export 2

Workbench tomonidan yaratilgan faylda topganim bu.


-- -- Jadval `user` uchun ma'lumotlar zaxirasi --
 
LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
 	(1,'Ivanov Ivan',40,'2022-05-11'),
 	(2,'Petrov Nikola',1,'2021-05-01'),
 	(3,'Sidroov Vitaliy',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Ha, to'g'ri ko'rinadi. Biz bu erda user jadvalini lock qiladigan maxsus kodni ko'rayapmiz. Bu shuning uchun qilingan, siz ushbu SQL-skriptni bajarishingiz mumkin: unda har qanday SQL-server uchun ma'lumotlarni to'g'ri tiklash imkoniyati mavjud.

8.5 Zaxira nusxasini tiklash

Va nihoyat oxirgisi - zaxira nusxasidan ma'lumotlar bazasini tiklash. Bu juda oddiy, lekin foydali harakat.

Aytaylik, men shunday xohlayman, barcha talabalarimda ma'lum bir ma'lumotlar bazasi bo'lsin, shunda siz u yerda so'rovlar yozishni o'rganishingiz mumkin. Keyin men sizga o'zingizda lokal ravishda tiklaydigan faylga havola beraman va hammasi shu.

Va hatto agar siz tasodifan ba'zi ma'lumotlarni, jadvallarni yoki hatto butun sxemani o'chirsangiz, uni har doim zaxira nusxasidan tiklash mumkin.

Import qilish uchun menyuda Server-> Data Import punktiga bosishingiz kerak. Keyin sizda shu rasm ko'rinadi:

Workbench Buckup Server Data Export 3

Eksport bilan bir xil tarzda, avval sizga ma'lumotlar manbasini tanlash taklif qilinadi: fayllar guruhi yoki barcha ma'lumotlar bitta fayl.

Keyin ma'lumotlar quyiladigan sxemani tanlashingiz kerak. Siz mavjud sxemani tanlashingiz yoki yangi yaratishingiz mumkin.

Importdan keyin import qilingan jadval/sxemani ko'rish uchun yangilash tugmachasini 🔄 bosishingiz kerak.

Workbench Buckup Server Data Export 4

Muhim! Agar sizning zaxira nusxangiz faqat ma'lumotlarni emas, balki jadvallar tuzilmasini ham o'z ichiga olgan bo'lsa, jadvallar qayta yaratiladi (agar ular mos keladigan sxemada mavjud bo'lsa).

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION