Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veri geçişi, MySQL veritabanlarını şirket içi ortamlardan MySQL için Azure Veritabanı taşımak için kritik öneme sahiptir. Bu makale, geçişi basitleştiren güçlü bir araç olan MySQL Workbench'i kullanmaya odaklanmaktadır. MySQL Workbench'i kullanarak verilerinizi verimli bir şekilde aktarırken kapalı kalma süresini en aza indirir ve veri bütünlüğünü sağlayabilirsiniz. Bu kılavuz, MySQL Workbench kullanarak veri geçişini ayarlama ve yürütme adım adım işleminde size yol gösterir ve kaçınılması gereken en iyi yöntemleri ve olası tuzakları vurgular. Deneyimli bir veritabanı yöneticisi veya veritabanı geçişlerinde yeniyseniz, bu makalede Azure'a sorunsuz ve başarılı bir geçiş elde etmek için gereken içgörüler ve teknikler sağlanır.
Önkoşullar
Şirket içi MySQL'i MySQL için Azure Veritabanı geçirme: Veri Geçişi
Ayarlama
Aşağıdaki adımları destekleyecek bir ortam oluşturmak için Kurulum kılavuzundaki tüm adımları izleyin.
Sunucu parametrelerini yapılandırma (Kaynak)
Seçtiğiniz geçişin türüne bağlı olarak (çevrimdışı veya çevrimiçi), sunucu parametrelerini verilerin hızlı çıkışını destekleyecek şekilde değiştirip değiştirmeyeceksiniz değerlendirmek istiyorsunuz. Çevrimiçi ortamda çalışıyorsanız, çoğaltma gerçekleştirme binlog
olasılığınız yüksek olduğundan ve verilerin kendi kendine eşitlenmesine sahip olduğunuzdan sunucu parametrelerine bir şey yapmanız gerekmeyebilir. Ancak, çevrimdışı geçiş yapıyorsanız, uygulama trafiğini durdurduktan sonra sunucu parametrelerini iş yükünü desteklemekten dışarı aktarmayı desteklemeye geçirebilirsiniz.
Sunucu parametrelerini yapılandırma (Hedef)
MySQL için Azure Veritabanı içeri aktarma işlemini başlatmadan önce sunucu parametrelerini gözden geçirin. Sunucu parametreleri Azure portalı kullanılarak veya mySQL için Azure PowerShell cmdlet'leri çağrılarak alınabilir ve ayarlanabilir.
Tüm parametreleri almak için aşağıdaki PowerShell betiğini yürütür:
\[Net.ServicePointManager\]::SecurityProtocol = \[Net.SecurityProtocolType\]::Tls
12
Install-Module -Name Az.MySql
Connect-AzAccount
$rgName = "{RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Get-AzMySqlConfiguration -ResourceGroupName $rgName -ServerName $serverName
Mysql aracında da aynı işlemi yapmak için CA kök sertifikasını c:\temp dizinine indirin (bu dizini oluşturun).
Not
Sertifika değiştirilebilir. En son sertifika bilgileri için MySQL için Azure Veritabanı güvenli bir şekilde bağlanmak için uygulamanızda SSL bağlantısını yapılandırma başvurusu.
Bir komut isteminde aşağıdakileri çalıştırın, belirteçleri güncelleştirin:
mysql --host {servername}.mysql.database.azure.com --database mysql --user
{u sername}@{servername} -p --ssl-ca=c:\\temp\\BaltimoreCyberTrustRoot.crt.cer
-A -e "SHOW GLOBAL VARIABLES;" \> c:\\temp\\settings\_azure.txt
Yeni 'settings_azure.txt' dosyasında, ekte gösterildiği gibi varsayılan MySQL için Azure Veritabanı sunucu parametrelerini görebilirsiniz.
Geçişi desteklemek için hedef MySQL örneği parametrelerini daha hızlı girişe izin verecek şekilde ayarlayın. Veri geçişi başlatılmadan önce aşağıdaki sunucu parametreleri ayarlanmalıdır:
max\_allowed\_packet
– uzun satırlar nedeniyle herhangi bir taşma1073741824
sorununu önlemek için parametresini (1 GB) veya veritabanındaki bir satırın en büyük boyutu olarak ayarlayın. Çekilmesi (veya okunmasını) gereken büyük BLOB satırları varsa bu parametreyi ayarlamayı göz önünde bulundurun.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 iyileştirilmiş SKU'ya yükseltin. Innodb_buffer_pool_size yalnızca MySQL için Azure Veritabanı sunucusu için işlem ölçeği artırılarak artırılabilir. Katman için en yüksek değer için MySQL için Azure Veritabanı'deki Başvuru Sunucusu parametreleri. Bellek için İyileştirilmiş 32 sanal çekirdek sistemindeki en yüksek değer:132070244352
.innodb\_io\_capacity
&innodb\_io\_capacity\_max
- Geçiş hızı için9000
en iyi duruma getirmek üzere GÇ kullanımını geliştirmek için parametresini olarak değiştirin.max\_connections
- Aktarım hızını artırmak için birden çok iş parçacığı oluşturan bir araç kullanıyorsanız, bu aracı desteklemek için bağlantıları artırın. Varsayılan olarak151
, max değeridir5000
.Not
Ölçeklendirme gerçekleştirirken dikkatli olun. Depolama ölçeklendirme gibi bazı işlemler geri alınamaz.
Bu ayarlar aşağıdaki Azure PowerShell cmdlet'leri kullanılarak güncelleştirilebilir:
Install-Module -Name Az.MySql
$rgName = " {RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Select-AzSubscription -Subscription "{SUBSCRIPTION\_ID}"
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 1073741824
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName
$rgna me -ServerName $serverName -Value 9000
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 9000
\#required if You've functions
Update-AzMySqlConfiguration -Name log\_bin\_trust\_function\_creators
-ResourceGr oupName $rgname -ServerName $serverName -Value ON
Veri
Araç seçimi
Kaynak sistemdeki veritabanı nesneleri ve kullanıcıları geçirildiyse, geçiş başlayabilir. MySQL sürüm 8.0'da çalışan veritabanları iş yükünü geçirmek için Azure DMS'yi kullanamaz. Bunun yerine, geçiş kullanıcıları MySQL Workbench kullanmalıdır.
El ile içeri ve dışarı aktarma adımları
MySQL Workbench'i açın ve yerel veritabanının kök kullanıcısı olarak bağlanın.
**Yönetim**'in altında **Veri Dışarı Aktarma**'yı seçin. reg_app şemasını seçin.
Dışarı Aktaracak Nesneler'de Döküm Saklı Yordamlar ve İşlevler, Döküm Olayları ve Döküm Tetikleyicileri'ne tıklayın.
Dışarı Aktarma Seçenekleri'nin altında, Bağımsız Dosyaya Aktar'ı seçin.
Ayrıca Şema Oluştur onay kutusunu seçin. Doğru mysqldump yapılandırmasını gözlemlemek için aşağıdaki görüntüye bakın.
Test
Bu seçeneklerden herhangi biri kullanılamıyor gibi görünüyorsa, bunlar çıkış bölmesi tarafından engellenmiş olabilir. Düzenleyici düzenini değiştirmeniz yeter.
Test
Dışarı Aktarma İlerleme Durumu sekmesini seçin.
Dışarı Aktarmayı Başlat'ı seçtiğinizde MySQL Workbench'in
mysqldump
aracuya çağrılar yaptığını görebilirsiniz.Yeni oluşturulan dışarı aktarma betiğini açın.
Deyimleri
DEFINER
bulun ve geçerli bir kullanıcı olarak değiştirin veya tamamen kaldırın.
Not
Bu, mysqldump komutu geçirilerek --skip-definer
yapılabilir. Bu, MySQL Workbench'te bir seçenek değildir; bu nedenle, dışarı aktarma komutlarında satırların el ile kaldırılması gerekir. Burada kaldırılacak dört öğeye işaret ediyor olsak da, bir MySQL sürümünden diğerine geçiş yaparken başarısız olabilecek başka öğeler de olabilir (yeni ayrılmış sözcükler gibi).
Deyimleri bulun
SET GLOBAL
ve geçerli bir kullanıcı olarak değiştirin veya tamamen kaldırın.olarak ayarlı
NO\_AUTO\_CREATE\_USER
olmadığından emin olunsql\_mode
.İşlevi
hello\_world
kaldırın.MySQL Workbench'te MySQL için Azure Veritabanı yeni bir bağlantı oluşturun.
Ana bilgisayar adı için tam sunucu DNS'sini girin (örn:
servername.mysql.database.azure.com
).Kullanıcı adını girin (örn:
sqlroot@servername
).SSL sekmesini seçin.
SSL CA Dosyası için BaltimoreCyberTrustRoot.crt.cer anahtar dosyasına göz atın.
Bağlantıyı Test Et'i seçin, bağlantının tamamlandığından emin olun.
Tamam'ı seçin.
MySQL bağlantısı iletişim kutusu görüntülenir.
Dosya Aç> SQL Betiği'ne tıklayın.
Döküm dosyasına gidin ve Aç'ı seçin.
Yürüt'ü seçin.
Uygulamaları SSL'yi destekleyecek şekilde güncelleştirme
Visual Studio Code'da Java Server API'sine geçin.
launch.json dosyasını açın.
DB_CONNECTION_URL ek SSL parametrelerini not edin olarak
jdbc:mysql://serverDNSname:3306/reg\_app?useUnicode=true\&useJDBCCompliantT imezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC\&verifySe rverCertificate=true\&useSSL=true\&requireSSL=true\&noAccessToProcedureBodie s=true.
güncelleştirin.DB_USER_NAME conferenceuser@servername olarak güncelleştirin.
Hata ayıklama yapılandırmasını başlatın ve uygulamanın yeni veritabanıyla yerel olarak çalıştığından emin olun.
Sunucu parametrelerini geri döndürme
Aşağıdaki parametreler MySQL için Azure Veritabanı hedef örneğinde değiştirilebilir. Bu parametreler Azure portalı aracılığıyla veya MySQL için Azure PowerShell cmdlet'leri kullanılarak ayarlanabilir.
$rgName = "YourRGName";
$serverName = "servername";
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 536870912
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName $rgna
me -ServerName $serverName -Value 200
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 2000
Java API'sinin bağlantı dizesi değiştirme
- App Service Java API'sinin bağlantı dizesi değiştirmek için aşağıdaki komutları kullanın
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Not
bağlantı dizesi ayarlamak için Portalı kullanabileceğinizi unutmayın.
- App Service API'sini yeniden başlatma
az webapp restart -g $rgName -n $app\_name
Şirket içi geçişi MySQL için Azure Veritabanı başarıyla tamamladınız!