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 Sunucu'da 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).
- PHPMyAdmin kullanarak döküm ve geri yükleme.
Ayrıca, veritabanlarını MySQL için Azure Veritabanı Esnek Sunucu'ya 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:
- MySQL için Azure Veritabanı Esnek Sunucu örneği - Azure portalı
- makinede yüklü mysqldump komut satırı yardımcı programı.
- Döküm ve geri yükleme komutları yapmak için MySQL Workbench veya başka bir üçüncü taraf MySQL aracı.
İpucu
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ş - MySQL için Azure Veritabanı Esnek 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, MySQL için Azure Veritabanı Esnek Sunucu'ya 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, MySQL için Azure Veritabanı Esnek Sunucu'ya geri yüklemeden önce önce InnoDB biçimine geçerek bu tabloları 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ış bir MySQL için Azure Veritabanı Esnek Sunucu örneğine geçmeniz gerekir. Komut
mysql_upgrade
MySQL için Azure Veritabanı Esnek 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. Ardından MySQL için Azure Veritabanı Esnek Sunucu örneğine geçiş denemeden önce komutunu çalıştırın
mysql_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şlemlerinlock-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ştirinquick
.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
Hedef MySQL için Azure Veritabanı Esnek Sunucu örneğinde verileri geçirmek istediğiniz 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ğine genel bakış bölümünde bağlantı bilgilerini bulun.
Bağlantı bilgilerini MySQL Workbench'inize ekleyin.
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üklemelerine 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 bir dosya testdb_backup.sql 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.sql
bir 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
Not
MySQL veritabanını geri yüklemek için MySQL Workbench istemci yardımcı programını da kullanabilirsiniz.
PHPMyAdmin kullanarak döküm ve geri yükleme
PHPMyadmin kullanarak veritabanının dökümünü almak ve geri yüklemek için bu adımları izleyin.
Not
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ızda yerel olarak yüklemiş olabileceğiniz phpMyAdmin ortak aracını kullanabilirsiniz. PHPMyAdmin kullanarak MySQL veritabanınızı dışarı aktarmak için:
- phpMyAdmin'i açın.
- Veritabanınızı seçin. Soldaki listeden veritabanı adını seçin.
- 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.
- Dışarı Aktar alanında Tümünü Seç bağlantısını seçerek veritabanınızdaki tabloları seçin.
- SQL seçenekleri alanında uygun seçenekleri belirleyin.
- 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.
PHPMyAdmin kullanarak içeri aktarma
Veritabanınızı içeri aktarmak dışarı aktarma işlemine benzer. Aşağıdaki eylemleri gerçekleştirin:
- phpMyAdmin'i açın.
- phpMyAdmin 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.
- 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.
- 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.
- Veritabanı dosyasını bulmak için gözat düğmesini kullanın.
- 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
- Uygulamaları MySQL için Azure Veritabanı Esnek Sunucu'ya bağlayın.
- Veritabanlarını MySQL için Azure Veritabanı Esnek Sunucuya geçirme hakkında daha fazla bilgi için bkz. Veritabanı Geçiş Kılavuzu.
- Veritabanı boyutu 1 TB'ın üzerinde olan büyük veritabanlarını geçirmek istiyorsanız paralel dışarı aktarma ve içeri aktarmayı destekleyen mydumper/myloader gibi topluluk araçlarını kullanmayı düşünebilirsiniz. Büyük MySQL veritabanlarını geçirmeyi öğrenin.