8.1 Keperluan untuk sandaran pangkalan data

Anda telah belajar cara membuat skema pangkalan data, jadual, melihatnya. Isi juga jadual ini dengan data dan ubahnya. Sekarang anda perlu mempelajari perkara yang paling penting - untuk membuat sandaran.

Pangkalan data sangat mudah dipecahkan. Hakikatnya ialah pangkalan data biasanya dalam keadaan perubahan yang berterusan: sesuatu sentiasa disimpan dan ditambah kepadanya.

Bayangkan anda mempunyai tab terbuka dalam penyemak imbas anda dan anda tidak mahu maklumat di dalamnya hilang. Setuju bahawa jika anda hanya memutuskan untuk tidak menutupnya, maka ini bukan pilihan terbaik. Lagipun, penyemak imbas boleh membeku, ia boleh ditutup secara tidak sengaja, anda boleh kehilangan cahaya atau membakar komputer anda. Windows boleh memasang kemas kini lain, tetapi anda tidak tahu apa.

Jadi, pangkalan data anda adalah tab yang sama. Dan hanya menunggu masa apabila ada masalah semasa menulis seterusnya ke cakera. Oleh itu, anda pastinya perlu belajar cara membuat sandaran.

Membuat sandaran adalah seperti memberus gigi anda, syarikat biasa membuat sandaran kandungan setiap pangkalan data setiap malam. Dan oleh kerana cakera keras juga boleh gagal dan terdapat kebakaran di pusat data, sandaran biasanya disimpan dalam 2-3 salinan di pusat data di bahagian yang berlainan di dunia.

Terdapat beberapa pendekatan untuk membuat sandaran.

Fail sandaran. Memandangkan semua data pangkalan data disimpan pada cakera sebagai satu set fail , cara paling mudah ialah dengan hanya menyalin fail ini di suatu tempat. Atau mula-mula arkibkannya ke dalam satu arkib, dan kemudian salinnya di suatu tempat.

Ini adalah cara terpantas untuk membuat sandaran, tetapi ia memerlukan fail tidak berubah semasa ia disalin/diarkibkan. Pangkalan data mesti dibekukan semasa salinan dibuat, jika tidak, salinan akan bengkok. Lagipun, mungkin terdapat situasi bahawa beberapa data baru direkodkan dalam pangkalan data, dan ada yang belum lagi.

Sandaran dalam bentuk pertanyaan SQL . Seperti yang anda sedia maklum, menambah dan menukar data dalam pangkalan data pelayan SQL sentiasa diwakili sebagai pertanyaan SQL. Jadi anda boleh meminta pelayan SQL untuk menyimpan kandungan jadual atau jadual tertentu ke fail sebagai pertanyaan SQL.

Kaedah ini lebih perlahan daripada yang sebelumnya, tetapi ia boleh digunakan untuk memindahkan data antara pelayan SQL daripada pengeluar yang berbeza.

Selain itu, tidak semua data sentiasa perlu disimpan. Selalunya anda mempunyai banyak perkhidmatan atau maklumat usang dalam jadual anda dan anda boleh memberitahu pelayan SQL untuk tidak menyimpannya.

Selain itu, untuk jadual yang menyimpan beberapa acara dengan merujuk kepada masa, anda hanya boleh memilih acara tersebut untuk hari terakhir dan menyimpannya sahaja.

Pelbagai utiliti . Syarikat sanggup membayar banyak wang untuk mendapatkan jaminan bahawa data mereka akan kekal utuh dan selamat. Oleh itu, pelbagai syarikat IT mula menawarkan penyelesaian untuk semua majlis. Sebagai contoh, terdapat program yang boleh membuat pangkalan data sandaran dalam bentuk fail dan pada masa yang sama tidak memerlukan fail ini tidak berubah.

Sebagai contoh, anda boleh memasang pemacu khas dalam sistem pengendalian dan menjejaki bila, apa dan di mana telah berubah.

8.2 Membuat sandaran pangkalan data

Workbench sangat baik dalam mengeksport dan mengimport data daripada pangkalan data yang berfungsi dengannya. Untuk melakukan ini, anda hanya perlu menekan item menu: Server-> Data Export. Dan anda akan melihat sesuatu seperti ini:

Sekarang mari tambah beberapa penjelasan:

Perintahnya adalah ini:

  1. Mula-mula, pilih skema, atau skema, yang akan dieksport.
  2. Kemudian di sebelah kanan kami menentukan jadual untuk sandaran.
  3. Seterusnya, kita mesti memilih apa sebenarnya yang akan kita eksport:
    • data sahaja;
    • struktur sahaja (jadual akan menjadi, tetapi kosong);
    • data dan struktur.
  4. Pilih cara menyimpan data:
    • satu fail untuk setiap jadual;
    • satu fail untuk semua jadual.
  5. Anda juga boleh menambah kod penciptaan skema pada bahagian atas fail. Ini berguna apabila memindahkan data antara DBMS yang berbeza.

8.3 Membuat sandaran skema jadual

Mari sandarkan skema sahaja, tanpa data sebenar.

Saya memilih Dump Structure Sahaja dan mengklik Mulakan Eksport.

Dan inilah yang saya temui dalam fail yang dibuat 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 */;

Betul, ini adalah skema jadual kami, jika saya boleh katakan begitu tentang satu jadual.

8.4 Membuat sandaran data

Sekarang mari kita sandarkan hanya data, tetapi tanpa struktur skema.

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

Dan inilah yang saya temui dalam fail yang dibuat 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 seperti kebenaran. Kami juga melihat kod khas di sini yang mengunci jadual pengguna. Ini dilakukan supaya anda hanya boleh melaksanakan skrip SQL ini: ia mengandungi semua arahan yang akan membenarkan mana-mana pelayan SQL memulihkan data dengan betul.

8.5 Menggunakan sandaran

Dan akhirnya, perkara terakhir ialah memulihkan pangkalan data dari sandaran. Tindakan ini sangat mudah tetapi berguna.

Katakan saya mahu semua pelajar saya mempunyai pangkalan data khusus supaya anda boleh belajar cara menulis pertanyaan padanya. Kemudian saya hanya akan memberikan anda pautan ke fail yang anda gunakan secara setempat dan itu sahaja.

Dan walaupun anda secara tidak sengaja memadamkan beberapa data, jadual, atau bahkan keseluruhan skema, ia sentiasa boleh dipulihkan daripada sandaran.

Untuk mengimport data, anda perlu mengklik pada item dalam menu Server-> Data Import. Kemudian anda akan melihat gambar ini:

Seperti dalam kes eksport, anda mula-mula digesa untuk memilih sumber data: sekumpulan fail atau semua data dalam satu fail.

Kemudian anda perlu memilih skema di mana data yang ditentukan akan dimuat naik. Anda boleh memilih skim sedia ada atau mencipta yang baharu.

Penting! Jika sandaran anda mengandungi bukan sahaja data, tetapi juga perihalan struktur jadual, maka jadual akan dicipta semula (jika sudah ada dalam skema sasaran).