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:
- Bozuk tabloya erişme.
- 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.
- Tabloyu veritabanına yeniden yükleme.
Veritabanınızı veya tablolarınızı yedekleme
Önemli
- İstemci makinenizden sunucuya erişmek için bir güvenlik duvarı kuralı yapılandırdığınızdan emin olun. Daha fazla bilgi için bkz. Tek MySQL için Azure Veritabanı sunucuda güvenlik duvarı kuralı yapılandırma ve esnek MySQL için Azure Veritabanı sunucuda güvenlik duvarı kuralı yapılandırma.
- SSL etkinse mysqldump için SSL seçeneğini
--ssl-cert
kullanın.
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çiminiadmin-user@servername
kullanın. - Esnek MySQL için Azure Veritabanı sunucu için aşağıdaki komutlarda değiştirmek
myserveradmin
için biçiminiadmin-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çiminiadmin-user@servername
kullanın. - esnek MySQL için Azure Veritabanı sunucu için aşağıdaki komutta değiştirmek
myserveradmin
için biçiminiadmin-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: