Windows için MySQL veritabanlarını yedekleme ve geri yükleme
İşlem onay ortamı
- MySQL (MySQL Bilişim
-
- MySQL 8.0 Topluluk Sürümü
- Windows
-
- pencereler 11
Gerekli ortam
- MySQL (MySQL Bilişim
-
- MySQL 8.0
- Windows
-
- pencereler 11
- pencereler 10
- Windows Sunucusu
-
- Windows Sunucusu 2022
- Windows Sunucusu 2019
- Windows Sunucusu 2016
- Windows Sunucusu 2012 R2
önkoşul
- MySQL veritabanı kurulmalıdır
- Yedeklenecek veritabanı zaten var
- Ortam değişkenlerini yapılandırın ve MySQL'i komut isteminden çalıştırmanıza izin verin
Yedekleme Türleri Hakkında
Burada ayrıntıya girmeyeceğim, ancak MySQL aşağıdaki yedekleme türlerine sahiptir:
Yedekleme Komutu Yedekleme | Veri Türü | Açıklamalar |
---|---|---|
mysqldump | Mantıksal yedekleme | Eski bir yedekleme yöntemi. GUI de bunu kullanır |
mysqlpump | Mantıksal yedekleme | mysqldump'ın geliştirilmiş sürümü |
MySQL Shell Instance Dump Yardımcı Programı ve Dump Loading Utility | Mantıksal yedekleme | Mantıksal bir yedekleme olarak, şu anda en sonuncusudur |
Percona XtraBackup | Fiziksel Yedekleme | Fiziksel yedeklemeye izin veren üçüncü taraf ürünler |
KLON EKLENTISI | Fiziksel Yedekleme | MySQL resmi fiziksel yedekleme. Ancak, ek eklentiler gereklidir |
Bir veritabanını GUI (MySQL Workbench) ile yedekleme
Komut kullanmadan GUI'de güvenli bir şekilde çalışmak istiyorsanız, MySQL Workbench'te bir yedekleme gerçekleştirebilirsiniz. MySQL Workbench'ta gerçekleştirilen yedekleme türü "mysqldump"tır.
MySQL Workbench'i başlatın.
Yedeklemek istediğiniz veritabanıyla olan bağlantıyı seçin.
Veritabanı yedeklenecekken, soldaki Gezgin'den Yönetim sekmesini seçin ve Verileri Dışarı Aktarma'yı seçin.
Verileri Dışa Aktarma (Data Export) ekranı açılır. Ekran oldukça büyük, bu nedenle sağ alt köşede "Dışa Aktarmayı Başlat" düğmesini görene kadar pencereyi genişletin.
İlk olarak, yedeklemek istediğiniz veritabanını seçin. Birden fazla da seçebilirsiniz.
"Dışa Aktarılacak Nesneler" bölümünde, prosedürlerin, tetikleyicilerin vb. yedeklenip yedeklenmeyeceğini de seçebilirsiniz. Bu öğe isteğe bağlıdır.
"Dışa Aktarma Seçenekleri"nde, aşağıdaki iki seçenekten birini seçebilirsiniz:
tanımıTürlerin | |
---|---|
Döküm Projesi Klasörüne Aktar | Belirli bir klasörde tablo veya prosedür bazında dosya olarak çıktı alın. |
Bağımsız Dosyaya Aktar | Her şeyi tek bir dosyaya gömün ve çıktısını alın. |
Hangisini çıkardığınız önemli değil. Yukarıyı seçerseniz, kolaydır çünkü yalnızca belirli bir tabloyu geri yüklemek istiyorsanız kolayca kaldırabilirsiniz. Aşağıdaki seçimlerin çıktısı tek bir dosyaya alınır ve bu da dosyaları bir veritabanı birimi olarak taşımayı ve yönetmeyi kolaylaştırır. Bu sefer aşağıdakileri seçtim.
Yapılandırıldıktan sonra, tıklayın Dışa aktarmayı başlatmak için sağ alttaki Dışa Aktarmayı Başlat düğmesine basın.
Dışa aktarma işlemi başlar ve tamamlanır.
Tek bir dosyada çıktı alırsanız, şöyle görünecektir:
Bir klasöre dışa aktarırsanız, şöyle görünecektir:
Bir veritabanını GUI (MySQL Workbench) ile geri yükleme
MySQL Workbench'i açın, bağlantılarınızı seçin, soldaki Navigator'dan Yönetim sekmesini seçin ve Verileri İçe/Geri Yükleme'yi seçin. "İçe Aktar / Geri Yükle" dediği gibi, dışa aktarılan dosyadan yeni bir veritabanı oluşturabilir veya orijinal veritabanının üzerine yazabilirsiniz.
Sağ alt köşede "İçe Aktarmayı Başlat" düğmesini görene kadar pencereyi genişletin.
Lütfen dışa aktarılan dosya formatına göre "İçe Aktarma Seçenekleri"ni seçin. Bu sefer tek bir dosya olarak dışa aktardığım için aşağıda "Kendi Kendine Bulunan Dosyadan İçe Aktar" seçeneğini seçtim ve dışa aktarılan dosyayı belirttim.
Geri yüklenecek şemayı (veritabanı) seçin. Mevcut bir veritabanına geri yükleyebilir veya sağdaki "yeni" düğmesinden yeni bir veritabanı olarak geri yükleyebilirsiniz.
Belirttikten sonra, kurtarma işlemini başlatmak için sağ alt köşedeki "İçe Aktarmayı Başlat" düğmesini tıklayın.
Geri yükleme tamamlandığında verilerinizin geri döndüğünden emin olun.
Komut aracılığıyla veritabanı yedeklemesi için bir hesap oluşturun
Tek bir kez yedeklemek için bir komut çalıştırmak istiyorsanız sorun yoktur, ancak örneğin, bir komutu önceden bir dosya olarak hazırlar ve çalıştırırsanız, şifreyi düz metin olarak yazmanız gerekir, bu nedenle yedeklemeyi çalıştırmak için ayrı bir hesap oluşturmak daha güvenlidir.
Yedekleme için gerekli izinler aşağıdaki gibidir ancak gereken bilgilere bağlı olarak artabilir veya azalabilir.
- OLAY
- MASALARI KILITLE
- SEÇMEK
- GÖRÜNÜMÜ GÖSTER
Bir komutla oluşturursanız, şöyle görünecektir: MySQL komut satırı aracıyla çalıştırın.
create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;
örnek
create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;
Yedekleme hedefi için klasör izinleri
Yedekleme dosyasının depolandığı klasörün izinleri, komutu yürütme izniyle aynı izne ayarlanmalıdır. Komutları Yöneticiler izniyle çalıştırmak istiyorsanız, klasör için herhangi bir ek izin ayarlamanız gerekmez.
Komutla bir veritabanını yedekleme (mysqldump)
Birkaç komut yedeği var, ancak bu sefer eski ve kararlı "mysqldump" ile yedekleyeceğim.
Başlat menüsüne sağ tıklayın ve Terminal'i (Komut İstemi) başlatın. Lütfen bunun bir "MySQL 8.0 Komut Satırı İstemcisi" olmadığını unutmayın.
Aşağıdaki komutla yedekleyebilirsiniz:
mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"
örnek
mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"
--default-character-set=utf8
GUI'de yedeklendiğinde olduğu gibi aynı karakter kodu olacaktır. Bu, onları GUI'ye de aktarmanıza olanak tanır.- Parola alanı
-p
ile parola arasında boşluk bırakmayın.- Ayrıca tablo alanı bilgilerinin çıktısını almak istiyorsanız,
--no-tablespaces
lütfen işaretini kaldırın. Bu durumda, yürütme kullanıcısınınPROCESS
izinleri gereklidir.
Belirtilen konumda bir yedekleme dosyası oluşturulacaktır.
Komutla veritabanını geri yükleme (mysqldump)
mysqldump ile yedeklenen dosyalar SQL'de çalıştırılabilecek formattadır, bu nedenle yalnızca hedef SQL'i çalıştırmanız gerekir. Geri yüklemenin genellikle manuel olarak yapıldığını düşünüyorum, bu yüzden kök hesapta çalıştırmanın bir sakıncası yok.
Bir komuttan çalıştırmak istiyorsanız, PowerShell yerine komut isteminde çalıştırın. <
Bunun nedeni PowerShell'in sembollere izin vermemesidir.
Aşağıdaki komutu çalıştırın:
mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>
örnek
mysql -u root -ppassword test_database < C:\Temporary\Backup.sql
Otomatik veritabanı yedekleme
Windows için, bir görev zamanlayıcı kullanmak yaygındır. Bir toplu iş dosyası oluşturarak başlayın. Bir yarasa dosyası oluşturun, içeriği komutlarla yedeklendiği gibi girin ve kaydedin. Shift-JIS ile karakter kodlarını kaydedin. Toplu iş dosyasının konumu ve dosya adı rastgele olabilir.
Görev zamanlayıcıya kaydolun. Başlat menüsüne sağ tıklayın ve "Bilgisayarı Yönet" i seçin.
Soldaki menüden Bilgisayar Yönetimi > Sistem Araçları > Görev Zamanlayıcı > Görev Zamanlayıcı Kitaplığı'nı seçin. Sağdaki menüden Görev oluştur'u seçin.
Genel sekmesini ayarlayın. "Ad" görev listesinde görüntülenecektir, bu nedenle anlaşılması kolay bir ad koyun. Güvenlik seçeneklerinde, "Kullanıcının oturum açıp açmadığını çalıştır" seçeneğini işaretleyin.
Tetikleyiciler sekmesi, yedeklemenin ne zaman gerçekleştirileceğini ayarlar. Bu ayar, işleminize göre ayarlanmalıdır.
İşlemler sekmesinde, yeni oluşturduğunuz toplu iş dosyasını başlatılacak şekilde ayarlayın.
Her birini ayarladıktan sonra, OK düğmesine basın.
Belirtilen hesapta çalışacak şekilde kaydolmak için şifrenizi girin.
Şimdi yedeklemenin belirtilen zamanda çalışıp çalışmayacağını kontrol edin.