Döküm ve geri yükleme kullanarak MySQL veritabanınızı MySQL için Azure Veritabanı - Esnek Sunucu'ya geçirme

Ş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?

Bu makalede, MySQL için Azure Veritabanı esnek sunucuda veritabanlarını yedeklemenin ve geri yüklemenin iki yaygın yolu açıklanmaktadır.

  • Komut satırından döküm ve geri yükleme (mysqldump kullanarak).
  • PHPMy Yönetici kullanarak döküm ve geri yükleme.

Ayrıca, veritabanlarını MySQL için Azure Veritabanı esnek sunucuya geçirme hakkında ayrıntılı bilgi ve kullanım örnekleri için Veritabanı Geçiş Kılavuzu'na da bakabilirsiniz. Bu kılavuz, Azure'a mySQL geçişinin başarılı bir şekilde planlanıp yürütülmesine yol açan yönergeler sağlar.

Başlamadan önce

Bu nasıl yapılır kılavuzunda adım adım ilerleyebilmek için aşağıdakilere sahip olmanız gerekir:

Bahşiş

Veritabanı boyutu 1 TB'tan fazla olan büyük veritabanlarını geçirmek istiyorsanız paralel dışarı ve içeri aktarmayı destekleyen mydumper/myloader gibi topluluk araçlarını kullanmayı düşünebilirsiniz. Büyük MySQL veritabanlarını geçirmeyi öğrenin.

Döküm ve geri yükleme için yaygın kullanım örnekleri

En yaygın kullanım örnekleri şunlardır:

  • Diğer yönetilen hizmet sağlayıcısından geçiş - Çoğu yönetilen hizmet sağlayıcısı güvenlik nedeniyle fiziksel depolama dosyasına erişim sağlayamayabilir, bu nedenle geçiş için tek seçenek mantıksal yedekleme ve geri yüklemedir.

  • Şirket içi ortamdan veya Sanal makineden geçiş - esnek MySQL için Azure Veritabanı sunucu fiziksel yedeklemelerin geri yüklenmesini desteklemez; bu da MANTıKSAL yedekleme ve geri yüklemeyi YALNIZCA yaklaşımı olarak yapar.

  • Yedekleme depolama alanınızı yerel olarak yedekli depolamadan coğrafi olarak yedekli depolamaya taşıma - MySQL için Azure Veritabanı esnek sunucu, yedekleme için yerel olarak yedekli veya coğrafi olarak yedekli depolama yapılandırmasına yalnızca sunucu oluşturma sırasında izin verilir. Sunucu sağlandıktan sonra yedekleme alanı yedekliliği seçeneğini değiştiremezsiniz. Yedekleme depolama alanınızı yerel olarak yedekli depolamadan coğrafi olarak yedekli depolamaya taşımak için TEK seçenek döküm ve geri yüklemedir.

  • Alternatif depolama altyapılarından InnoDB'ye geçiş - MySQL için Azure Veritabanı esnek sunucu yalnızca InnoDB Depolama altyapısını destekler ve bu nedenle alternatif depolama altyapılarını desteklemez. Tablolarınız diğer depolama altyapılarıyla yapılandırılmışsa, esnek MySQL için Azure Veritabanı sunucuya geçiş öncesinde bunları InnoDB altyapısı biçimine dönüştürün.

    Örneğin, MyISAM tablolarını kullanan bir WordPress veya WebApp'iniz varsa, esnek MySQL için Azure Veritabanı sunucuya geri yüklemeden önce bu tabloları InnoDB biçimine geçirerek dönüştürün. Yan tümcesini ENGINE=InnoDB kullanarak yeni tablo oluştururken kullanılan altyapıyı ayarlayın, ardından geri yükleme işleminden önce verileri uyumlu tabloya aktarın.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    

Önemli

  • Uyumluluk sorunlarından kaçınmak için veritabanlarının dökümünü alırken kaynak ve hedef sistemlerde aynı MySQL sürümünün bulunduğundan emin olun. Örneğin, mevcut MySQL sunucunuz sürüm 5.7 ise, sürüm 5.7'yi çalıştıracak şekilde yapılandırılmış MySQL için Azure Veritabanı esnek bir sunucu örneğine geçmeniz gerekir. Komutmysql_upgrade, MySQL için Azure Veritabanı esnek bir sunucu örneğinde çalışmaz ve desteklenmez.
  • MySQL sürümleri arasında yükseltme yapmanız gerekiyorsa, önce kendi ortamınızda daha düşük sürümdeki veritabanınızı daha yüksek bir MySQL sürümüne dökümünü alın veya dışarı aktarın. Daha sonra MySQL için Azure Veritabanı esnek sunucu örneğine geçiş denemeden önce komutunu çalıştırınmysql_upgrade.

Performans değerlendirmeleri

Performansı iyileştirmek için, büyük veritabanlarının dökümünü alırken şu noktalara dikkat edin:

  • Veritabanlarının dökümünü exclude-triggers alırken mysqldump içindeki seçeneğini kullanın. Veri geri yükleme sırasında tetikleyici komutlarının tetiklemesi için tetikleyicileri döküm dosyalarının dışında tutun.
  • single-transaction İşlem yalıtım modunu REPEATABLE READ olarak ayarlamak için seçeneğini kullanın ve verileri döküm etmeden önce sunucuya bir START TRANSACTION SQL deyimi gönderir. Tek bir işlem içinde birçok tablonun dökümünü almak, geri yükleme sırasında bazı ek depolama alanlarının tüketilmesine neden olur. single-transaction LOCK TABLES bekleyen işlemlerin lock-tables örtük olarak işlenmesine neden olduğundan seçenek ve seçenek birbirini dışlar. Büyük tabloların dökümünü single-transaction almak için seçeneğini seçeneğiyle birleştirin quick .
  • extended-insert Birkaç DEĞER listesi içeren çok satırlı söz dizimini kullanın. Bu, daha küçük bir döküm dosyasıyla sonuçlanır ve dosya yeniden yüklendiğinde eklemeleri hızlandırır.
  • Veritabanlarının dökümünü order-by-primary alırken mysqldump seçeneğini kullanın; böylece veriler birincil anahtar sırasına göre betik oluşturulur.
  • disable-keys Yüklemeden önce yabancı anahtar kısıtlamalarını devre dışı bırakmak için mysqldump içindeki veri dökümü seçeneğini kullanın. Yabancı anahtar denetimlerinin devre dışı bırakılması performans artışı sağlar. Bilgi tutarlılığı sağlamak için kısıtlamaları etkinleştirin ve yük sonrasında verileri doğrulayın.
  • Uygun olduğunda bölümlenmiş tabloları kullanın.
  • Verileri paralel olarak yükleyin. Kaynak sınırına ulaşmanıza neden olacak çok fazla paralellikten kaçının ve Azure portalında sağlanan ölçümleri kullanarak kaynakları izleyin.
  • Veritabanlarını defer-table-indexes döküme alırken mysqldump içindeki seçeneğini kullanın; böylece tablo verileri yüklendikten sonra dizin oluşturma işlemi gerçekleşir.
  • Yedekleme dosyalarını bir Azure blobuna/deposuna kopyalayın ve oradan geri yüklemeyi gerçekleştirin. Bu işlem, geri yüklemeyi İnternet üzerinden gerçekleştirmekten çok daha hızlı olmalıdır.

Hedef MySQL için Azure Veritabanı esnek sunucu örneğinde veritabanı oluşturma

Verileri geçirmek istediğiniz hedef MySQL için Azure Veritabanı esnek sunucu örneğinde boş bir veritabanı oluşturun. Veritabanını oluşturmak için MySQL Workbench veya mysql.exe gibi bir araç kullanın. Veritabanı, atılan verileri içeren veritabanıyla aynı ada sahip olabilir veya farklı bir ada sahip bir veritabanı oluşturabilirsiniz.

Bağlanmak için MySQL için Azure Veritabanı esnek sunucu örneğinize genel bakış bölümünde bağlantı bilgilerini bulun.

Find the connection information in the Azure portal

Bağlantı bilgilerini MySQL Workbench'inize ekleyin.

MySQL Workbench Connection String

Hedef MySQL için Azure Veritabanı esnek sunucu örneğini hızlı veri yükleri için hazırlama

Hedef MySQL için Azure Veritabanı esnek sunucu örneğini daha hızlı veri yüklerine hazırlamak için aşağıdaki sunucu parametrelerinin ve yapılandırmasının değiştirilmesi gerekir.

  • max_allowed_packet – uzun satırlar nedeniyle taşma sorununu önlemek için 1073741824 (1 GB) olarak ayarlayın.
  • slow_query_log – Yavaş sorgu günlüğünü kapatmak için KAPALI olarak ayarlayın. Bu, veri yüklemeleri sırasında yavaş sorgu günlüğünün neden olduğu ek yükü ortadan kaldırır.
  • query_store_capture_mode– Sorgu Deposu'yu kapatmak için NONE olarak ayarlayın. Bu, Sorgu Deposu tarafından yapılan örnekleme etkinliklerinin neden olduğu ek yükü ortadan kaldırır.
  • innodb_buffer_pool_size – innodb_buffer_pool_size artırmak için geçiş sırasında portalın Fiyatlandırma katmanından sunucunun ölçeğini 32 sanal çekirdek Bellek için İyileştirilmiş SKU'ya yükseltin. Innodb_buffer_pool_size yalnızca MySQL için Azure Veritabanı esnek sunucu örneği için işlem ölçeği artırılarak artırılabilir.
  • innodb_io_capacity & innodb_io_capacity_max - Geçiş hızını iyileştirmek üzere GÇ kullanımını iyileştirmek için Azure portalındaki Sunucu parametrelerinden 9000 olarak değiştirin.
  • innodb_write_io_threads & innodb_write_io_threads - Geçiş hızını artırmak için Azure portalındaki Sunucu parametrelerinden 4 olarak değiştirin.
  • Depolama katmanının ölçeğini artırma : MySQL için Azure Veritabanı esnek sunucu için IOP'ler, depolama katmanındaki artışla birlikte aşamalı olarak artar. Daha hızlı yüklemeler için sağlanan IOP'leri artırmak için depolama katmanını artırmak isteyebilirsiniz. Depolama alanının ölçeğinin azaltılmaması yerine yalnızca ölçeklendirilebileceğini unutmayın.

Geçiş tamamlandıktan sonra sunucu parametrelerini ve işlem katmanı yapılandırmasını önceki değerlerine geri döndürebilirsiniz.

mysqldump yardımcı programını kullanarak döküm ve geri yükleme

mysqldump kullanarak komut satırından yedekleme dosyası oluşturma

Yerel şirket içi sunucuda veya sanal makinede mevcut bir MySQL veritabanını yedeklemek için aşağıdaki komutu çalıştırın:

mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

Sağlayabilecek parametreler şunlardır:

  • [uname] Veritabanınızın kullanıcı adı
  • [geçiş] Veritabanınızın parolası (-p ile parola arasında boşluk olmadığını unutmayın)
  • [dbname] Veritabanınızın adı
  • [backupfile.sql] Veritabanı yedeklemenizin dosya adı
  • [--opt] mysqldump seçeneği

Örneğin, MySQL sunucunuzda 'testuser' kullanıcı adıyla ve testdb_backup.sql dosyasının parolası olmadan 'testdb' adlı bir veritabanını yedeklemek için aşağıdaki komutu kullanın. komutu, veritabanını yeniden oluşturmak için gereken tüm SQL deyimlerini içeren adlı testdb_backup.sqlbir dosyaya yedeklertestdb. 'testuser' kullanıcı adının en azından döküm tabloları için SELECT ayrıcalığına, terk edilmiş görünümler için GÖRÜNÜM GÖSTER'e, döküm tetikleyicileri için TETIKLEYICI'ye ve seçenek kullanılmıyorsa --single-transaction TABLOLARı KILITLE'ye sahip olduğundan emin olun.

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'testuser'@'hostname' IDENTIFIED BY 'password';

Şimdi veritabanının yedeğini testdb oluşturmak için mysqldump komutunu çalıştırın

mysqldump -u root -p testdb > testdb_backup.sql

Veritabanınızda yedeklemek üzere belirli tabloları seçmek için tablo adlarını boşluklarla ayırarak listeleyin. Örneğin, 'testdb'den yalnızca tablo1 ve tablo2 tablolarını yedeklemek için şu örneği izleyin:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

Aynı anda birden fazla veritabanını yedeklemek için anahtarı kullanın --database ve veritabanı adlarını boşluklarla ayırarak listeleyin.

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Komut satırını kullanarak MySQL veritabanınızı geri yükleme

Hedef veritabanını oluşturduktan sonra mysql komutunu kullanarak verileri döküm dosyasından yeni oluşturulan belirli veritabanına geri yükleyebilirsiniz.

mysql -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Bu örnekte, verileri hedef MySQL için Azure Veritabanı esnek sunucu örneğinde yeni oluşturulan veritabanına geri yükleyin.

Tek Sunucu için bu mysql'in nasıl kullanılacağına ilişkin bir örnek aşağıda verilmiştir:

mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Esnek Sunucu için bu mysql'in nasıl kullanılacağına ilişkin bir örnek aşağıda verilmiştir:

mysql -h mydemoserver.mysql.database.azure.com -u myadmin -p testdb < testdb_backup.sql

PHPMy kullanarak döküm ve geri yükleme Yönetici

PHPMyadmin kullanarak veritabanının dökümünü almak ve geri yüklemek için bu adımları izleyin.

Dekont

Tek sunucu için kullanıcı adı 'username@servername' biçiminde olmalıdır, ancak esnek sunucu için yalnızca 'kullanıcı adı' kullanabilirsiniz Esnek sunucu için 'username@servername' kullanıyorsanız, bağlantı başarısız olur.

PHPMyadmin ile dışarı aktarma

Dışarı aktarmak için, ortamınıza yerel olarak yüklemiş olabileceğiniz phpMy Yönetici ortak aracını kullanabilirsiniz. PHPMy kullanarak MySQL veritabanınızı dışarı aktarmak için Yönetici:

  1. phpMy Yönetici'i açın.
  2. Veritabanınızı seçin. Soldaki listeden veritabanı adını seçin.
  3. Dışarı Aktar bağlantısını seçin. Veritabanının dökümünü görüntülemek için yeni bir sayfa görüntülenir.
  4. Dışarı Aktar alanında Tümünü Seç bağlantısını seçerek veritabanınızdaki tabloları seçin.
  5. SQL seçenekleri alanında uygun seçenekleri belirleyin.
  6. Dosya olarak kaydet seçeneğini ve buna karşılık gelen sıkıştırma seçeneğini belirleyin ve ardından Git düğmesini seçin. Dosyayı yerel olarak kaydetmenizi isteyen bir iletişim kutusu görüntülenmelidir.

PHPMy kullanarak içeri aktarma Yönetici

Veritabanınızı içeri aktarmak dışarı aktarma işlemine benzer. Aşağıdaki eylemleri gerçekleştirin:

  1. phpMy Yönetici'i açın.
  2. phpMy Yönetici kurulum sayfasında Ekle'yi seçerek MySQL için Azure Veritabanı esnek sunucu örneğinizi ekleyin. Bağlantı ayrıntılarını ve oturum açma bilgilerini sağlayın.
  3. Uygun şekilde adlandırılmış bir veritabanı oluşturun ve ekranın sol tarafında bu veritabanını seçin. Varolan veritabanını yeniden yazmak için veritabanı adını seçin, tablo adlarının yanındaki tüm onay kutularını seçin ve varolan tabloları silmek için Bırak'ı seçin.
  4. SQL komutlarını yazabileceğiniz veya SQL dosyanızı karşıya yükleyebileceğiniz sayfayı göstermek için SQL bağlantısını seçin.
  5. Veritabanı dosyasını bulmak için gözat düğmesini kullanın.
  6. Yedeklemeyi dışarı aktarmak, SQL komutlarını yürütmek ve veritabanınızı yeniden oluşturmak için Git düğmesini seçin.

Bilinen Sorunlar

Bilinen sorunlar, ipuçları ve püf noktaları için teknoloji blogumuza bakmanızı öneririz.

Sonraki adımlar