SQL zaxira va tiklash (backup)

Baza — loyihaning eng qimmatli qismi: kod qayta yozilishi mumkin, yo’qolgan ma’lumot esa qaytmaydi. Shuning uchun zaxira (backup) olish — har bir dasturchi bilishi shart bo’lgan odat. Bu darsda SQLite bazasidan nusxa olish va uni tiklashni ko’ramiz.

Eng oddiy zaxira: faylni nusxalash

SQLite’da butun baza bitta fayl (magazin.db). Shuning uchun eng oddiy zaxira — shu faylning nusxasini boshqa joyga saqlash:

magazin.db  →  magazin_2026-07-28.db

Sanani nomiga qo’shsangiz, turli kunlardagi nusxalarni ajratasiz. Bu usul sodda va ishonchli.

SQL sifatida eksport: .dump

Bazani matn (SQL buyruqlari) ko’rinishida saqlash ham mumkin. sqlite3 vositasi orqali:

sqlite3 magazin.db .dump > zaxira.sql

zaxira.sql ichida barcha CREATE TABLE va INSERT buyruqlari bo’ladi — ya’ni bazani noldan tiklash uchun kerak bo’lgan hamma narsa. DB Browser’da esa: File → Export → Database to SQL file.

Tiklash (restore)

SQL fayldan tiklash — uni yangi bazada ishga tushirish:

sqlite3 yangi.db < zaxira.sql

Bu zaxira.sql dagi barcha buyruqni bajarib, bazani qayta tiklaydi.

Jonli namuna

Quyida DELETE ni xavfsiz sinab ko’rishingiz mumkin — bu runner har ishga tushirishda bazani toza holatga qaytaradi:

SQL · namuna baza

Haqiqiy bazada esa bunday “bekor qilish” yo’q — shuning uchun zaxira kerak.

Amaliy mashq

Zaxira mantiqini tushuning:

  1. SELECT * FROM mahsulotlar; natijasini ko’ring;
  2. DELETE FROM mahsulotlar; yozib bajaring;
  3. yana SELECT qiling — ma’lumot qaytdimi?
  4. haqiqiy bazada 2-qadamdan keyin nima bo’lardi?
  5. qog’ozda yozing: zaxirasiz ishlashda eng katta xavf nima?

Bu sahifadagi runner har safar toza bazadan boshlaydi — haqiqiy bazada esa bunday “bekor qilish” tugmasi yo’q.

Qisqacha xulosa

  • Zaxira — bazaning yo’qolishdan saqlaydigan nusxasi.
  • SQLite’da eng oddiy zaxira — .db faylning nusxasini olish.
  • .dump baza tuzilishi va ma’lumotini SQL matnga eksport qiladi.
  • Tiklash — SQL faylni yangi bazada ishga tushirish.
  • Zaxirani boshqa joyda va muntazam saqlang.

Keyingi darsda xavfsizlik — SQL injection — bazani buzg’unchi kiritmadan himoya qilishni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi