8.1 Veritabanı yedeği ihtiyacı

Veritabanı şemaları, tablolar oluşturmayı, bunları görüntülemeyi öğrendiniz. Ayrıca bu tabloları verilerle doldurun ve değiştirin. Şimdi en önemli şeyi öğrenmeniz gerekiyor - yedekleme yapmak.

Veritabanını kırmak çok kolaydır. Gerçek şu ki, veritabanı genellikle sürekli bir değişim halindedir: sürekli olarak bir şeyler kaydedilir ve ona eklenir.

Tarayıcınızda açık bir sekme olduğunu ve içindeki bilgilerin kaybolmasını istemediğinizi düşünün. Asla kapatmamaya karar verirseniz, bunun en iyi seçenek olmayacağını kabul edin. Sonuçta, tarayıcı donabilir, yanlışlıkla kapatılabilir, ışığı kaybedebilir veya bilgisayarınızı yakabilirsiniz. Windows başka bir güncelleme yükleyebilir, ancak ne olduğunu asla bilemezsiniz.

Yani, veritabanınız aynı sekmedir. Ve diske bir sonraki yazma sırasında bir şeylerin ters gitmesi an meselesidir. Bu nedenle, kesinlikle yedekleme yapmayı öğrenmeniz gerekir.

Yedekleme yapmak dişlerinizi fırçalamak gibidir, normal şirketler her gece her veritabanının içeriğini yedekler. Ve sabit diskler de arızalanabileceğinden ve veri merkezlerinde yangınlar olabileceğinden, yedekler genellikle dünyanın farklı yerlerindeki veri merkezlerinde 2-3 kopya halinde saklanır.

Bir yedekleme oluşturmak için birkaç yaklaşım vardır.

Yedekleme dosyaları. Tüm veritabanı verileri diskte bir dizi dosya olarak saklandığından , en kolay yol bu dosyaları bir yere kopyalamaktır. Veya önce tek bir arşivde arşivleyin ve ardından bir yere kopyalayın.

Bu, yedekleme yapmanın en hızlı yoludur, ancak dosyaların kopyalanırken/arşivlenirken değişmemesini gerektirir. Kopya oluşturulurken veritabanı dondurulmalıdır, aksi takdirde kopya eğri olacaktır. Sonuçta, yeni verilerin bir kısmının veritabanına kaydedildiği ve bir kısmının henüz kaydedilmediği bir durum olabilir.

SQL sorguları şeklinde yedekleme . Bildiğiniz gibi, SQL sunucu veritabanına veri eklemek ve değiştirmek her zaman SQL sorguları olarak temsil edilir. Böylece, SQL sunucusundan belirli bir tablonun veya tabloların içeriğini SQL sorguları olarak bir dosyaya kaydetmesini isteyebilirsiniz.

Bu yöntem öncekinden daha yavaştır, ancak farklı üreticilerin SQL sunucuları arasında veri aktarımı için kullanılabilir.

Ayrıca, tüm verilerin her zaman kaydedilmesi gerekmez. Genellikle tablolarınızda bir sürü hizmet veya eski bilgi vardır ve SQL sunucusuna bunları kaydetmemesini söyleyebilirsiniz.

Ayrıca, bazı olayları zamana göre saklayan tablolar için, son gün için bu tür olayları seçip sadece bunları saklayabilirsiniz.

Çeşitli yardımcı programlar Şirketler, verilerinin bozulmadan ve güvende kalacağına dair bir garanti almak için çok para ödemeye hazır. Bu nedenle, çeşitli BT şirketleri tüm durumlar için çözümler sunmaya başladı. Örneğin veritabanlarının yedeğini dosyalar şeklinde yapabilen ve aynı zamanda bu dosyaların değişmemesini istemeyen programlar vardır.

Örneğin, işletim sistemine özel sürücüler yükleyebilir ve ne zaman, ne ve nerede değiştiğini takip edebilirsiniz.

8.2 Veritabanını yedekleme

Workbench, birlikte çalıştığı veritabanlarından veri alma ve verme konusunda mükemmeldir. Bunu yapmak için menü öğesine basmanız yeterlidir: Server-> Data Export. Ve bunun gibi bir şey göreceksiniz:

Şimdi biraz açıklama ekleyelim:

Sıra şu:

  1. Önce, dışa aktarılacak şemayı veya şemaları seçin.
  2. Ardından sağ tarafta yedekleme için tabloları belirtiyoruz.
  3. Ardından, tam olarak neyi dışa aktaracağımızı seçmeliyiz:
    • yalnızca veri;
    • sadece yapı (tablolar olacak, ancak boş);
    • veri ve yapı.
  4. Verilerin nasıl kaydedileceğini seçin:
    • her tablo için bir dosya;
    • tüm tablolar için bir dosya.
  5. Şema oluşturma kodunu dosyanın başına da ekleyebilirsiniz. Bu, farklı DBMS arasında veri aktarırken kullanışlıdır.

8.3 Tablo şemasını yedekleme

Gerçek veriler olmadan sadece şemaları yedekleyelim.

Yalnızca Döküm Yapısını seçtim ve Dışa Aktarmayı Başlat'a tıkladım.

Workbench'in yaptığı dosyada bulduğum da buydu.

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

Doğru, tek bir masa için böyle diyebilirsem, bizim masalarımızın şeması bu.

8.4 Verileri yedekleme

Şimdi şema yapısı olmadan sadece verileri yedekleyelim.

Yalnızca Dump Data'yı seçelim ve bize ne verdiklerini görelim:

Workbench'in yaptığı dosyada bulduğum da buydu.

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

Evet, gerçeğe çok benziyor. Burada kullanıcı tablosunu kilitleyen özel bir kod da görüyoruz. Bu, bu SQL komut dosyasını kolayca çalıştırabilmeniz için yapılır: herhangi bir SQL sunucusunun verileri doğru bir şekilde geri yüklemesine izin verecek tüm talimatları içerir.

8.5 Yedekleme dağıtma

Ve son olarak, son şey, veritabanını bir yedekten geri yüklemektir. Bu Eylem çok basit ama kullanışlıdır.

Diyelim ki, tüm öğrencilerimin belirli bir veri tabanına sahip olmasını istiyorum, böylece üzerinde sorgu yazmayı öğrenebilirsiniz. O zaman size yerel olarak konuşlandırdığınız dosyanın bağlantısını vereceğim, o kadar.

Bazı verileri, tabloları ve hatta tüm şemayı yanlışlıkla silseniz bile, her zaman bir yedekten geri yüklenebilir.

Verileri içe aktarmak için menüdeki öğeye tıklamanız gerekir Server-> Data Import. O zaman bu resmi göreceksiniz:

Dışa aktarma durumunda olduğu gibi, önce bir veri kaynağı seçmeniz istenir: bir dosya grubu veya tek bir dosyadaki tüm veriler.

Ardından, belirtilen verilerin yükleneceği şemayı seçmeniz gerekir. Mevcut bir şemayı seçebilir veya yeni bir şema oluşturabilirsiniz.

Önemli! Yedeklemeniz yalnızca verileri değil, aynı zamanda tablo yapısının açıklamasını da içeriyorsa, tablolar yeniden oluşturulur (hedef şemada zaten varsa).