Döküm alma ve geri yükleme işlemlerini kullanarak MySQL veritabanınızı MySQL için Azure Veritabanı'na geçirme

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

Bu makalede, veritabanınızı yedeklemek ve geri yüklemek için iki yaygın yol MySQL için Azure Veritabanı

  • Komut satırına döküm ve geri yükleme (mysqldump kullanarak)
  • PHPMyAdmin kullanarak döküm ve geri yükleme

Veritabanlarını veritabanına geçirme hakkında ayrıntılı bilgi ve kullanım örnekleri için Veritabanı Geçiş Kılavuzu'MySQL için Azure Veritabanı. Bu kılavuz, Azure'a bir MySQL geçişinin başarılı bir şekilde plan ve yürütülmesine yol açacak rehberlik sağlar.

Başlamadan önce

Bu nasıl yapılan kılavuzun üzerinden geçerek şulere sahip olmak gerekir:

İpucu

Veritabanı boyutu 1 TB'den fazla olan büyük veritabanlarını geçirmek arıyorsanı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:

  • 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ğlayamıyor olabilir, bu nedenle mantıksal yedekleme ve geri yükleme, geçiş için tek seçenektir.

  • Şirket içi ortamdan veya Sanal makineden - MySQL için Azure Veritabanı, YALNIZLIK yaklaşımı olarak mantıksal yedekleme ve geri yükleme yapan fiziksel yedeklemelerin geri yüklemesini desteklemez.

  • Yedekleme depolamanızı yerel olarak yedekli depolamadan coğrafi olarak yedekli depolamaya taşıma - MySQL için Azure Veritabanı yedekleme için yerel olarak yedekli veya coğrafi olarak yedekli depolama yapılandırmaya 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 depolamanızı yerel olarak yedekli depolamadan coğrafi olarak yedekli depolamaya taşımak için YALNIZLIK seçeneği döküm ve geri yüklemedir.

  • Alternatif depolama altyapılarından InnoDB'ye MySQL için Azure Veritabanı 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ı ile yapılandırdıysanız, tablolarınızı innoDB altyapısı biçimine geçirmeden önce MySQL için Azure Veritabanı.

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

    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, 5.7 sürümünü MySQL için Azure Veritabanı yapılandırılmış bir sunucuya geçirmeniz gerekir. Komut, bir MySQL için Azure Veritabanı sunucuda çalışmaz mysql_upgrade ve desteklenmiyor.
  • MySQL sürümleri arasında yükseltmeniz gerekirse, önce kendi ortamınız içinde alt sürüm veritabanınızı daha yüksek bir MySQL sürümüne aktarın veya silin. Ardından, mysql_upgrade bir geçiş işlemini denemeden önce MySQL için Azure Veritabanı.

Performansla ilgili önemli noktalar

Performansı iyileştirmek için büyük veritabanlarının dökümlerini alırken şu noktalara dikkat etmeniz gerekir:

  • Veritabanlarının exclude-triggers dökümlerini alırken mysqldump içinde seçeneğini kullanın. Tetikleyici komutlarının veri geri yükleme sırasında tetiklendiğinden kaçınmak için tetikleyicileri döküm dosyalarından hariç tutabilirsiniz.
  • İşlem yalıtım modunu REPEATABLE READ olarak ayarlamak için seçeneğini kullanın ve verilerin dökümlerini SQL önce bir single-transaction START TRANSACTION SQL deyimini sunucuya gönderir. Tek bir işlem içinde birden çok tarak döküm yapmak, geri yükleme sırasında fazladan depolama alanı tüketilmesine neden olur. LOCK TABLES, bekleyen işlemlerin örtülü olarak işlendiklerinden seçeneği ve seçeneği birbirini single-transaction lock-tables dışlar. Büyük tabloların dökümlerini yapmak için single-transaction seçeneğini seçeneğiyle quick birleştirin.
  • Birkaç extended-insert VALUE listesi içeren çok satırlı söz dizimi kullanın. Bu, daha küçük bir döküm dosyasıyla sonuç verir ve dosya yeniden yüklendiğinde eklemeleri hızlandırır.
  • Veritabanlarının order-by-primary dökümlerini alırken mysqldump'ta seçeneğini kullanarak verilerin birincil anahtar sırasına göre betik oluşturması gerekir.
  • Yüklemeden önce yabancı anahtar kısıtlamalarını devre dışı bırakmak için disable-keys mysqldump içinde veri dökümlerini alma sırasında seçeneğini kullanın. Yabancı anahtar denetimlerini devre dışı bırakmak performans kazancı sağlar. Bilgi tutarlılığı sağlamak için kısıtlamaları etkinleştirin ve yüklemeden sonra verileri doğrulayın.
  • Uygun olduğunda bölümlenmiş tabloları kullanın.
  • Verileri paralel olarak yükleme. Kaynak sınırına ulaşarak kaynakları izlemek için çok fazla paralellik Azure portal.
  • Veritabanlarının defer-table-indexes dökümlerini alırken mysqlpump içinde seçeneğini kullanın; böylece tablo verileri yüklendikten sonra dizin oluşturma gerçekleşir.
  • Görünümler ve saklı yordamlar için create deyimlerinden definer ve SQL security yan tümcelerini atlayarak skip-definer mysqlpump'daki seçeneğini kullanın. Döküm dosyasını yeniden yükleyişte, varsayılan DEFINER'i kullanan ve SECURITY değerlerini SQL oluşturur.
  • Yedekleme dosyalarını bir Azure blobu/deposuna kopyalayın ve geri yükleme işlemini buradan gerçekleştirin. Bu, İnternet genelinde geri yüklemeden çok daha hızlı olacaktır.

Hedef sunucu üzerinde veritabanı MySQL için Azure Veritabanı oluşturma

Verileri geçirmek istediğiniz hedef MySQL için Azure Veritabanı boş bir veritabanı oluşturun. Veritabanını oluşturmak için MySQL Workbench veya mysql.exe bir araç kullanın. Veritabanının adı, atılmış verileri içeren veritabanıyla aynı adı içerebilir veya farklı bir adla bir veritabanı oluşturabilirsiniz.

Bağlantı almak için Bağlantı bilgilerinizi genel bakış'ta MySQL için Azure Veritabanı.

Bağlantı bilgilerini Azure portal

Bağlantı bilgilerini MySQL Workbench'inize ekleyin.

MySQL Workbench Bağlantı Dizesi

Hızlı veri yükleri MySQL için Azure Veritabanı hedef sunucuyu hazırlama

Hedef sunucuyu daha MySQL için Azure Veritabanı yüklerine hazırlamak için aşağıdaki sunucu parametrelerinin ve yapılandırmasının değişmesi gerekir.

  • max_allowed_packet : uzun satırlardan dolayı taşma sorunuyla ilgili herhangi bir sorunu önlemek için 1073741824 (1 GB) olarak ayarlayın.
  • slow_query_log : Yavaş sorgu günlüğünü kapatmak için OFF olarak ayarlayın. Bu, veri yüklemeleri sırasında yavaş sorgu günlüğü oluşturmanın neden olduğu ek yükü ortadan kaldıracak.
  • query_store_capture_mode : Sorgu Deposu'nı kapatmak için NONE olarak ayarlayın. Bu, Sorgu Deposu'nın örnekleme etkinliklerinden kaynaklanan ek yükü ortadan kaldıracak.
  • innodb_buffer_pool_size – Geçiş sırasında portalın Fiyatlandırma katmanından sunucunun ölçeğini 32 sanal çekirdekli Bellek için İyileştirilmiş SKU'ya innodb_buffer_pool_size. Innodb_buffer_pool_size yalnızca sunucu için işlem ölçeği artırarak MySQL için Azure Veritabanı olabilir.
  • innodb_io_capacity & innodb_io_capacity_max - Geçiş hızını iyileştirmek için IO kullanımını geliştirmek için Azure portal sunucu parametrelerinden 9000'e geçiş.
  • innodb_write_io_threads & innodb_write_io_threads - Geçiş hızını artırmak için Azure portal sunucu parametrelerinden 4'e geçiş.
  • Depolama ölçeğini artırma – Depolama katmanında artışla MySQL için Azure Veritabanı sunucu için IOP'ler kademeli olarak artar. Daha hızlı yükler için, sağlanan IOP'leri artırmak için depolama katmanını artırmak istiyor olabilir. Depolamanın ölçeğinin yalnızca ölçeğinin aşağıya değil yalnızca ölçeğinin ölçeklendiril olduğunu 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ına bir yedekleme dosyası oluşturma

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

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

Sağ gereken parametreler:

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

Örneğin, MySQL sunucunuzda 'testuser' kullanıcı adı ve testdb_backup.sql adlı bir dosyanın parolası ile 'testdb' adlı bir veritabanının adını almak için aşağıdaki komutu kullanın. komutu veritabanını yeniden oluşturmak için gereken tüm SQL adlı bir testdb testdb_backup.sql dosyaya geri alır. 'testuser' kullanıcı adınızın en azından tablolar için SELECT ayrıcalığına, boşaltılmış görünümler için SHOW VIEW'a, tetikleme tetikleyicileri için TRIGGER'a ve --single-transaction seçeneği kullanılmamışsa TABLOLARı KILITLE'ye sahip olduğundan emin olun.

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

Şimdi mysqldump çalıştırarak veritabanının yedeğini testdb oluşturun

$ mysqldump -u root -p testdb > testdb_backup.sql

Veritabanınıza belirli tabloları seçmek için tablo adlarını boşluklarla ayırarak listele. Örneğin, 'testdb' tablosundan yalnızca tablo1 ve tablo2 tablolarını backerk için şu örneği izleyin:

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

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

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

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

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

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

Bu örnekte, verileri hedef sunucu üzerinde yeni oluşturulan veritabanına MySQL için Azure Veritabanı.

Bu mysql'i Tek Sunucu için kullanma örneği:

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

Esnek Sunucu için bu mysql'i nasıl kullanabileceğiniz hakkında bir örnek:

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

PHPMyAdmin kullanarak döküm ve geri yükleme

PHPMyadmin kullanarak bir veritabanının dökümlerini oluşturmak ve veritabanını geri yüklemek için bu adımları izleyin.

Not

Tek sunucu için kullanıcı adı şu biçimde olmalıdır: ' ' ama esnek sunucu için yalnızca 'username' kullanabilirsiniz Esnek sunucu için ' ' kullanırsanız username@servername username@servername bağlantı başarısız olur.

PHPMyadmin ile dışarı aktarma

Dışarı aktarma için, ortamınıza yerel olarak yüklenmiş olan phpMyAdmin ortak aracını kullanabilirsiniz. PHPMyAdmin kullanarak MySQL veritabanınızı dışarı aktarma:

  1. phpMyAdmin'i açın.
  2. Veritabanınızı seçin. Sol tarafta yer alan listede veritabanı adına tıklayın.
  3. Dışarı Aktar bağlantısına tıklayın. Veritabanının dökümlerini görüntülemek için yeni bir sayfa görüntülenir.
  4. Dışarı Aktar alanında, veritabanınıza tabloları seçmek için Tüm Seç bağlantısına tıklayın.
  5. Yeni SQL alanında uygun seçeneklere tıklayın.
  6. Dosya olarak kaydet seçeneğine ve karşılık gelen sıkıştırma seçeneğine ve ardından Git düğmesine tıklayın. Dosyayı yerel olarak kaydetmenizi istediğiniz bir iletişim kutusu görüntü gerekir.

PHPMyAdmin kullanarak içeri aktarma

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

  1. phpMyAdmin'i açın.
  2. phpMyAdmin kurulum sayfasında Ekle'ye tıklar ve MySQL için Azure Veritabanı ekleyin. Bağlantı ayrıntılarını ve oturum açma bilgilerini girin.
  3. Uygun şekilde adlandırılmış bir veritabanı oluşturun ve ekranın sol tarafından seçin. Mevcut veritabanını yeniden yazmak için veritabanı adına tıklayın, tablo adlarının yanındaki tüm onay kutularını seçin ve Bırak'ı seçerek mevcut tabloları silin.
  4. Komut SQL yazarak veya dosyanızı karşıya yük SQL sayfayı göstermek için SQL tıklayın.
  5. Veritabanı dosyasını bulmak için gözat düğmesini kullanın.
  6. Yedeklemeyi dışarı aktarın, SQL yürütün ve veritabanınızı yeniden oluşturun.

Bilinen Sorunlar

Bilinen sorunlar, ipuçları ve püf noktaları için, teknik çözüm blog sayfamıza bakmanizi öneririz.

Sonraki adımlar