8.1 Kebutuhan akan backup database

Anda telah mempelajari cara membuat skema database, tabel, melihatnya. Isi juga tabel ini dengan data dan ubah. Sekarang Anda perlu mempelajari hal yang paling penting - membuat cadangan.

Basis data sangat mudah dibobol. Faktanya adalah bahwa database biasanya dalam keadaan perubahan konstan: ada sesuatu yang terus-menerus disimpan dan ditambahkan ke dalamnya.

Bayangkan Anda memiliki tab terbuka di browser Anda dan Anda tidak ingin informasi di dalamnya hilang. Setuju bahwa jika Anda memutuskan untuk tidak pernah menutupnya, ini bukan pilihan terbaik. Lagi pula, browser dapat membeku, dapat ditutup secara tidak sengaja, Anda dapat kehilangan cahaya atau membakar komputer Anda. Windows dapat menginstal pembaruan lain, tetapi Anda tidak pernah tahu apa.

Jadi, basis data Anda adalah tab yang sama. Dan itu hanya masalah waktu ketika terjadi kesalahan selama penulisan berikutnya ke disk. Karena itu, Anda pasti perlu mempelajari cara membuat cadangan.

Membuat cadangan seperti menyikat gigi, perusahaan normal membuat cadangan isi setiap database setiap malam. Dan karena hard drive juga bisa gagal dan terjadi kebakaran di pusat data, cadangan biasanya disimpan dalam 2-3 salinan di pusat data di berbagai belahan dunia.

Ada beberapa pendekatan untuk membuat cadangan.

File cadangan. Karena semua data database disimpan di disk sebagai kumpulan file , cara termudah adalah dengan menyalin file-file ini di suatu tempat. Atau pertama-tama arsipkan ke dalam satu arsip, lalu salin ke suatu tempat.

Ini adalah cara tercepat untuk membuat cadangan, tetapi ini mengharuskan file tidak berubah saat sedang disalin/diarsipkan. Basis data harus dibekukan saat salinan sedang dibuat, jika tidak, salinan akan bengkok. Bagaimanapun, mungkin ada situasi di mana beberapa data baru direkam dalam database, dan beberapa belum.

Cadangan dalam bentuk kueri SQL . Seperti yang sudah Anda ketahui, menambah dan mengubah data dalam database SQL server selalu direpresentasikan sebagai kueri SQL. Jadi, Anda dapat meminta server SQL untuk menyimpan konten tabel atau tabel tertentu ke file sebagai kueri SQL.

Metode ini lebih lambat dari yang sebelumnya, tetapi dapat digunakan untuk mentransfer data antara server SQL dari produsen yang berbeda.

Selain itu, tidak semua data harus selalu disimpan. Seringkali Anda memiliki banyak layanan atau informasi usang di tabel Anda dan Anda dapat memberi tahu server SQL untuk tidak menyimpannya.

Selain itu, untuk tabel yang menyimpan beberapa peristiwa dengan mengacu pada waktu, Anda cukup memilih peristiwa tersebut untuk hari terakhir dan menyimpannya saja.

Berbagai utilitas . Perusahaan rela mengeluarkan banyak uang untuk mendapatkan jaminan bahwa data mereka akan tetap utuh dan aman. Oleh karena itu, berbagai perusahaan IT mulai menawarkan solusi untuk segala kesempatan. Misalnya, ada program yang dapat membuat cadangan basis data dalam bentuk file dan pada saat yang sama tidak mengharuskan file tersebut tidak berubah.

Misalnya, Anda dapat menginstal driver khusus di sistem operasi dan melacak kapan, apa, dan di mana telah berubah.

8.2 Mencadangkan database

Workbench sangat baik dalam mengekspor dan mengimpor data dari database yang bekerja dengannya. Untuk melakukan ini, Anda hanya perlu menekan item menu: Server-> Data Export. Dan Anda akan melihat sesuatu seperti ini:

Sekarang mari kita tambahkan beberapa penjelasan:

Urutannya begini:

  1. Pertama, pilih skema, atau skema, yang akan diekspor.
  2. Kemudian di sebelah kanan kami menentukan tabel untuk cadangan.
  3. Selanjutnya, kita harus memilih apa yang akan kita ekspor:
    • data saja;
    • struktur saja (meja akan, tapi kosong);
    • data dan struktur.
  4. Pilih cara menyimpan data:
    • satu file untuk setiap tabel;
    • satu file untuk semua tabel.
  5. Anda juga dapat menambahkan kode pembuatan skema ke bagian atas file. Ini berguna saat mentransfer data antara DBMS yang berbeda.

8.3 Mencadangkan skema tabel

Mari kita cadangkan skemanya saja, tanpa data sebenarnya.

Saya memilih Dump Structure Only dan mengklik Mulai Ekspor.

Dan inilah yang saya temukan di file yang dibuat oleh Workbench.

--
-- Table structure for table `user`
--

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 */;

Benar, ini adalah skema tabel kami, jika boleh saya katakan tentang satu tabel.

8.4 Mencadangkan data

Sekarang mari kita buat cadangan data saja, tetapi tanpa struktur skema.

Mari pilih Dump Data Only dan lihat apa yang mereka berikan kepada kita:

Dan inilah yang saya temukan di file yang dibuat oleh Workbench.

--
-- Dumping data for table `user`
--

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 Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Ya, sangat mirip dengan kebenaran. Kami juga melihat kode khusus di sini yang mengunci tabel pengguna. Ini dilakukan agar Anda cukup menjalankan skrip SQL ini: ini berisi semua instruksi yang memungkinkan server SQL mana pun untuk memulihkan data dengan benar.

8.5 Menyebarkan cadangan

Dan terakhir, yang terakhir adalah memulihkan database dari cadangan. Tindakan ini sangat sederhana namun bermanfaat.

Katakanlah saya ingin semua siswa saya memiliki database tertentu sehingga Anda dapat mempelajari cara menulis kueri di dalamnya. Kemudian saya hanya akan memberi Anda tautan ke file yang Anda terapkan secara lokal dan hanya itu.

Dan bahkan jika Anda secara tidak sengaja menghapus beberapa data, tabel, atau bahkan seluruh skema, itu selalu dapat dipulihkan dari cadangan.

Untuk mengimpor data, Anda perlu mengklik item di menu Server-> Data Import. Maka Anda akan melihat gambar ini:

Seperti halnya ekspor, pertama-tama Anda diminta untuk memilih sumber data: sekelompok file atau semua data dalam satu file.

Kemudian Anda perlu memilih skema tempat data yang ditentukan akan diunggah. Anda dapat memilih skema yang ada atau membuat yang baru.

Penting! Jika cadangan Anda tidak hanya berisi data, tetapi juga deskripsi struktur tabel, maka tabel akan dibuat ulang (jika sudah ada di skema target).