MySQL için Azure Veritabanı - Esnek Sunucuda veritabanı bozulma sorunlarını giderme

ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu MySQL için Azure Veritabanı - Esnek Sunucu

Önemli

MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?

Veritabanı bozulması, uygulamanız için kapalı kalma süresine neden olabilir. Veri kaybını önlemek için bozulma sorunlarını zamanında çözmek de kritik önem taşır. Veritabanı bozulması oluştuğunda sunucu günlüklerinizde şu hatayı görürsünüz: InnoDB: Database page corruption on disk or a failed.

Bu makalede, veritabanı veya tablo bozulması sorunlarını çözmeyi öğreneceksiniz. MySQL için Azure Veritabanı esnek sunucu InnoDB altyapısını kullanır. Otomatik bozulma denetimi ve onarım işlemleri içerir. InnoDB, okuduğu her sayfada sağlama toplamları çalıştırarak bozuk sayfaları denetler. Sağlama toplamı tutarsızlığı bulursa, MySQL için Azure Veritabanı esnek sunucu örneğini otomatik olarak durdurur.

Veritabanı bozulması sorunlarınızı hızla azaltmak için aşağıdaki seçenekleri deneyin.

MySQL sunucunuzu yeniden başlatın

Uygulamanız tabloya veya veritabanına eriştiğinde genellikle bir veritabanı veya tablonun bozuk olduğunu fark edebilirsiniz. InnoDB, sunucu yeniden başlatıldığında çoğu sorunu çözebilen bir kilitlenme kurtarma mekanizmasına sahiptir. Bu nedenle sunucuyu yeniden başlatmak, sunucunun veritabanının kötü durumda olmasına neden olan bir kilitlenmeden kurtulmasına yardımcı olabilir.

Döküm ve geri yükleme yöntemini kullanma

Döküm ve geri yükleme yöntemini kullanarak bozulma sorunlarını çözmenizi öneririz. Bu yöntem şunları içerir:

  1. Bozuk tabloya erişme.
  2. tablonun mantıksal yedeğini oluşturmak için mysqldump yardımcı programını kullanma. Yedekleme, tablo yapısını ve içindeki verileri korur.
  3. Tabloyu veritabanına yeniden yükleme.

Veritabanınızı veya tablolarınızı yedekleme

Önemli

mysqldump kullanarak komut satırından bir yedekleme dosyası oluşturun. Şu komutu çalıştırın:

$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]

Parametre açıklamaları:

  • [ssl-cert=/path/to/pem]: SSL sertifikasının yolu. İstemci makinenize SSL sertifikasını indirin ve komutunda içindeki yolu ayarlayın. SSL devre dışı bırakıldıysa bu parametreyi kullanmayın.
  • [host]: esnek MySQL için Azure Veritabanı sunucu örneğiniz.
  • [uname]: Sunucu yöneticisi kullanıcı adınız.
  • [pass]: Yönetici kullanıcınızın parolası.
  • [dbname]: Veritabanınızın adı.
  • [backupfile.sql]: Veritabanı yedeklemenizin dosya adı.

Önemli

  • MySQL için Azure Veritabanı tek sunucu için aşağıdaki komutlarda değiştirmek myserveradmin için biçimini admin-user@servername kullanın.
  • Esnek MySQL için Azure Veritabanı sunucu için aşağıdaki komutlarda değiştirmek myserveradmin için biçimini admin-user kullanın.

Belirli bir tablo bozuksa, yedeklemek için veritabanınızda belirli tabloları seçin:

$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql

Bir veya daha fazla veritabanını yedeklemek için anahtarı kullanın --database ve veritabanı adlarını boşluklarla ayırarak listeleyin:

$ mysqldump --ssl-cert=</path/to/pem>  -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Veritabanınızı veya tablolarınızı geri yükleme

Aşağıdaki adımlarda veritabanınızı veya tablolarınızı nasıl geri yükleneceği gösterilmektedir. Yedekleme dosyasını oluşturduktan sonra, mysql yardımcı programını kullanarak tabloları veya veritabanlarını geri yükleyebilirsiniz. Şu komutu çalıştırın:

mysql  --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Aşağıda, mysqldump testdb ile oluşturulan bir yedekleme dosyasından geri yüklenen bir örnek verilmiştir:

Önemli

  • Tek MySQL için Azure Veritabanı sunucu için aşağıdaki komutta değiştirmek myserveradmin için biçimini admin-user@servername kullanın.
  • esnek MySQL için Azure Veritabanı sunucu için aşağıdaki komutta değiştirmek myserveradmin için biçimini admin-user kullanın.
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql

Sonraki adımlar

Yukarıdaki adımlar sorunu çözmezse, her zaman sunucunun tamamını geri yükleyebilirsiniz: