MariaDB için Azure Veritabanı'da Veri İçi Çoğaltmayı Yapılandırma
Önemli
MariaDB için Azure Veritabanı kullanımdan kaldırılıyor. MySQL için Azure Veritabanı geçiş yapmanızı kesinlikle öneririz. MySQL için Azure Veritabanı geçiş hakkında daha fazla bilgi için bkz. MariaDB için Azure Veritabanı ne oluyor?.
Bu makalede, kaynak ve çoğaltma sunucularını yapılandırarak MariaDB için Azure Veritabanı'da Veri Çoğaltma'nın nasıl ayarlanacağı açıklanır. Bu makalede MariaDB sunucuları ve veritabanlarıyla ilgili daha önce deneyim sahibi olduğunuz varsayılır.
MariaDB için Azure Veritabanı hizmetinde çoğaltma oluşturmak için, Veri İçeri Çoğaltma şirket içi, sanal makinelerde (VM) veya bulut veritabanı hizmetlerindeki bir kaynak MariaDB sunucusundan verileri eşitler. Gelen Verileri Çoğaltma, MariaDB’de yerel olan ikili günlük (binlog) dosya konumuna dayalı çoğaltmayı temel alır. Binlog çoğaltması hakkında daha fazla bilgi edinmek için bkz. binlog çoğaltmasına genel bakış.
Bu makaledeki adımları gerçekleştirmeden önce Veri çoğaltmasının sınırlamalarını ve gereksinimlerini gözden geçirin.
Dekont
Kaynak sunucunuz sürüm 10.2 veya daha yeniyse, Genel İşlem Kimliği'ni kullanarak Gelen Veri Çoğaltma'yı ayarlamanızı öneririz.
Dekont
Bu makalede, Microsoft'un artık kullanmadığı köle terimi geçmektedir. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.
Çoğaltma olarak kullanmak için MariaDB sunucusu oluşturma
Yeni bir MariaDB için Azure Veritabanı sunucusu oluşturun (örneğin, replica.mariadb.database.azure.com). Sunucu, Veri İçeri Çoğaltma'daki çoğaltma sunucusudur.
Sunucu oluşturma hakkında bilgi edinmek için bkz. Azure portalını kullanarak MariaDB için Azure Veritabanı sunucusu oluşturma.
Önemli
MariaDB için Azure Veritabanı sunucusunu Genel Amaçlı veya Bellek için İyileştirilmiş fiyatlandırma katmanlarında oluşturmanız gerekir.
Aynı kullanıcı hesaplarını ve ilgili ayrıcalıkları oluşturun.
Kullanıcı hesapları kaynak sunucudan çoğaltma sunucusuna çoğaltılamaz. Çoğaltma sunucusuna kullanıcı erişimi sağlamak için, yeni oluşturulan MariaDB için Azure Veritabanı sunucusunda tüm hesapları ve ilgili ayrıcalıkları el ile oluşturmanız gerekir.
Kaynak sunucunun IP adresini çoğaltmanın güvenlik duvarı kurallarına ekleyin.
Azure portalını veya Azure CLI’yı kullanarak güvenlik duvarı kurallarını güncelleştirin.
Kaynak sunucuyu yapılandırma
Aşağıdaki adımlar şirket içinde, VM'de veya bulut veritabanı hizmetinde barındırılan MariaDB sunucusunu Veri İçinde Çoğaltma için hazırlayıp yapılandırmaktadır. MariaDB sunucusu, Veri İçeri Çoğaltma'daki kaynaktır.
Devam etmeden önce birincil sunucu gereksinimlerini gözden geçirin.
Kaynak sunucunun 3306 numaralı bağlantı noktasında hem gelen hem de giden trafiğe izin verdiğinden ve kaynak sunucunun genel IP adresine sahip olduğundan, DNS'nin genel olarak erişilebilir olduğundan veya tam etki alanı adına (FQDN) sahip olduğundan emin olun.
Başka bir makinede barındırılan MySQL komut satırı gibi bir araçtan veya Azure portalında bulunan Azure Cloud Shell'den bağlanmayı deneyerek kaynak sunucuya bağlantıyı test edin.
Kuruluşunuzun katı güvenlik ilkeleri varsa ve kaynak sunucudaki tüm IP adreslerinin Azure'dan kaynak sunucunuza iletişimi etkinleştirmesine izin vermiyorsa, MariaDB için Azure Veritabanı sunucunuzun IP adresini belirlemek için aşağıdaki komutu kullanabilirsiniz.
MySQL komut satırı gibi bir araç kullanarak MariaDB için Azure Veritabanı oturum açın.
Aşağıdaki sorguyu yürütür.
SELECT @@global.redirect_server_host;
Aşağıda bazı örnek çıkışlar verilmiştir:
+-----------------------------------------------------------+ | @@global.redirect_server_host | +-----------------------------------------------------------+ | e299ae56f000.tr1830.westus1-a.worker.database.windows.net | +-----------------------------------------------------------+
MySQL komut satırından çıkın.
IP adresini almak için ping yardımcı programı içinde aşağıdakini yürütebilirsiniz.
ping <output of step 2b>
Örneğin:
C:\Users\testuser> ping e299ae56f000.tr1830.westus1-a.worker.database.windows.net Pinging tr1830.westus1-a.worker.database.windows.net (**11.11.111.111**) 56(84) bytes of data.
Kaynak sunucunuzun güvenlik duvarı kurallarını, önceki adımın çıkış ip adresini 3306 numaralı bağlantı noktasına içerecek şekilde yapılandırın.
Dekont
Bu IP adresi bakım/dağıtım işlemleri nedeniyle değişebilir. Bu bağlantı yöntemi yalnızca 3306 bağlantı noktasında tüm IP adreslerine izin veremeyen müşteriler içindir.
İkili günlük kaydını açın.
İkili günlük kaydının birincilde etkinleştirilip etkinleştirilmediğini görmek için aşağıdaki komutu girin:
SHOW VARIABLES LIKE 'log_bin';
Değişken
log_bin
değeriniON
döndürürse, sunucunuzda ikili günlük etkinleştirilir.değerini döndürürse
log_bin
, my.cnf dosyasınılog_bin=ON
düzenleyerek ikili günlüğüOFF
açın. Değişikliğin etkili olması için sunucuyu yeniden başlatın.Kaynak sunucu ayarlarını yapılandırın.
Gelen Veri Çoğaltma, parametresinin
lower_case_table_names
kaynak ve çoğaltma sunucuları arasında tutarlı olmasını gerektirir.lower_case_table_names
parametresi varsayılan olarak MariaDB için Azure Veritabanı olarak ayarlanır1
.SET GLOBAL lower_case_table_names = 1;
Yeni bir çoğaltma rolü oluşturun ve izinleri ayarlayın.
Kaynak sunucuda çoğaltma ayrıcalıklarıyla yapılandırılmış bir kullanıcı hesabı oluşturun. SQL komutlarını veya MySQL Workbench'i kullanarak hesap oluşturabilirsiniz. SSL ile çoğaltmayı planlıyorsanız, kullanıcı hesabını oluştururken bunu belirtmeniz gerekir.
Kaynak sunucunuza kullanıcı hesapları eklemeyi öğrenmek için MariaDB belgelerine bakın.
Yeni çoğaltma rolü aşağıdaki komutları kullanarak kaynağa yalnızca kaynağı barındıran makineden değil herhangi bir makineden erişebilir. Bu erişim için, kullanıcı oluşturmak için komutta syncuser@'%' belirtin.
MariaDB belgeleri hakkında daha fazla bilgi edinmek için bkz . Hesap adlarını belirtme.
SQL komutu
SSL ile çoğaltma
Tüm kullanıcı bağlantıları için SSL istemek için aşağıdaki komutu girerek bir kullanıcı oluşturun:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%' REQUIRE SSL;
SSL olmadan çoğaltma
Tüm bağlantılar için SSL gerekli değilse, kullanıcı oluşturmak için aşağıdaki komutu girin:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO ' syncuser'@'%';
MySQL Workbench
MySQL Workbench'te çoğaltma rolünü oluşturmak için Yönetim bölmesinde Kullanıcılar ve Ayrıcalıklar'ı seçin. Ardından Hesap Ekle'yi seçin.
Oturum Açma Adı alanına bir kullanıcı adı girin.
Yönetici Istrative Roles panelini seçin ve ardından Genel Ayrıcalıklar listesinde Çoğaltma Bağımlı'yı seçin. Çoğaltma rolünü oluşturmak için Uygula'yı seçin.
Kaynak sunucuyu salt okunur moda ayarlayın.
Veritabanının dökümünü almadan önce sunucunun salt okunur moda yerleştirilmesi gerekir. Salt okunur moddayken, kaynak herhangi bir yazma işlemini işleyemez. İş üzerindeki etkiyi önlemeye yardımcı olmak için yoğun olmayan bir zamanda salt okunur pencereyi zamanlayın.
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;
Geçerli ikili günlük dosyası adını ve uzaklığını alın.
Geçerli ikili günlük dosyası adını ve uzaklığını belirlemek için komutunu
show master status
çalıştırın.show master status;
Sonuçlar aşağıdaki tabloya benzer olmalıdır:
sonraki adımlarda kullanılacağından ikili dosya adını not edin.
GTID konumunu alın (isteğe bağlı, GTID ile çoğaltma için gereklidir).
İlgili binlog dosya adı ve uzaklığı için GTID konumunu almak için işlevini
BINLOG_GTID_POS
çalıştırın.select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
Kaynak sunucunun dökümünü al ve geri yükle
Kaynak sunucudan tüm veritabanlarının dökümünü alın.
Kaynak sunucudan tüm veritabanlarını döküm etmek için mysqldump kullanın. MySQL kitaplığının ve test kitaplığının dökümünü almak gerekli değildir.
Daha fazla bilgi için bkz . Döküm ve geri yükleme.
Kaynak sunucuyu okuma/yazma moduna ayarlayın.
Veritabanı boşaltıldıktan sonra kaynak MariaDB sunucusunu yeniden okuma/yazma moduna geçirin.
SET GLOBAL read_only = OFF; UNLOCK TABLES;
Döküm dosyasını yeni sunucuya geri yükleyin.
Döküm dosyasını MariaDB için Azure Veritabanı hizmetinde oluşturulan sunucuya geri yükleyin. Döküm dosyasını MariaDB sunucusuna geri yükleme hakkında bilgi dökümü ve geri yükleme bölümüne bakın.
Döküm dosyası büyükse, çoğaltma sunucunuzla aynı bölge içinde Azure'daki bir VM'ye yükleyin. VM'den MariaDB için Azure Veritabanı sunucusuna geri yükleyin.
Kaynak ve çoğaltma sunucularını bağlayarak Veri-Gelen Çoğaltma'ya başlama
Kaynak sunucuyu ayarlayın.
Tüm VeriLi çoğaltma işlevleri saklı yordamlarla gerçekleştirilir. Tüm yordamları Data-in Çoğaltma Saklı Yordamları'nda bulabilirsiniz. Saklı yordamlar MySQL kabuğunda veya MySQL Workbench'te çalıştırılabilir.
İki sunucuyu bağlamak ve çoğaltmayı başlatmak için MariaDB için Azure DB hizmetinde hedef çoğaltma sunucusunda oturum açın. Ardından, MariaDB için Azure DB sunucusundaki veya
mysql.az_replication_change_master_with_gtid
saklı yordamınımysql.az_replication_change_master
kullanarak dış örneği kaynak sunucu olarak ayarlayın.CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');
veya
CALL mysql.az_replication_change_master_with_gtid('<master_host>', '<master_user>', '<master_password>', 3306, '<master_gtid_pos>', '<master_ssl_ca>');
- master_host: Kaynak sunucunun ana bilgisayar adı
- master_user: kaynak sunucu için kullanıcı adı
- master_password: Kaynak sunucu için parola
- master_log_file: ikili günlük dosyası adı çalıştırılıyor
show master status
- master_log_pos: ikili günlük konumunun çalıştırılması
show master status
- master_gtid_pos: GTID konumunun çalışması
select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
- master_ssl_ca: CA sertifikasının bağlamı. SSL kullanmıyorsanız boş bir dize geçirin.*
*master_ssl_ca parametresini değişken olarak geçirmenizi öneririz. Daha fazla bilgi için aşağıdaki örneklere bakın.
Örnekler
SSL ile çoğaltma
Aşağıdaki komutları çalıştırarak değişkeni
@cert
oluşturun:SET @cert = '-----BEGIN CERTIFICATE----- PLACE YOUR PUBLIC KEY CERTIFICATE\'S CONTEXT HERE -----END CERTIFICATE-----'
SSL ile çoğaltma, etki alanı companya.com barındırılan bir kaynak sunucu ile MariaDB için Azure Veritabanı içinde barındırılan bir çoğaltma sunucusu arasında ayarlanır. Bu saklı yordam çoğaltmada çalıştırılır.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, @cert);
SSL olmadan çoğaltma
SSL olmadan çoğaltma, etki alanı companya.com barındırılan bir kaynak sunucu ile MariaDB için Azure Veritabanı'de barındırılan bir çoğaltma sunucusu arasında ayarlanır. Bu saklı yordam çoğaltmada çalıştırılır.
CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mariadb-bin.000016', 475, '');
Çoğaltmayı başlatın.
Çoğaltmayı
mysql.az_replication_start
başlatmak için saklı yordamı çağırın.CALL mysql.az_replication_start;
Çoğaltma durumunu denetleyin.
show slave status
Çoğaltma durumunu görüntülemek için çoğaltma sunucusunda komutunu çağırın.show slave status;
ve
Slave_SQL_Running
durumundaysaSlave_IO_Running
yes
ve değeriSeconds_Behind_Master
ise0
çoğaltma çalışıyor.Seconds_Behind_Master
çoğaltmanın ne kadar geç olduğunu gösterir. Değer değilse0
, çoğaltma güncelleştirmeleri işliyor demektir.Veri girişi çoğaltmasını daha güvenli hale getirmek için ilgili sunucu değişkenlerini güncelleştirin (yalnızca GTID olmadan çoğaltma için gereklidir).
MariaDB'deki yerel çoğaltma sınırlaması nedeniyle, GTID senaryosu olmadan çoğaltmada ve
sync_relay_log_info
değişkenlerini ayarlamanızsync_master_info
gerekir.Veri çoğaltmasının kararlı olduğundan emin olmak için çoğaltma sunucunuzun
sync_master_info
vesync_relay_log_info
değişkenlerini denetleyin ve değişkenleri olarak1
ayarlayın.
Diğer saklı yordamlar
Çoğaltmayı durdurma
Kaynak ve çoğaltma sunucusu arasında çoğaltmayı durdurmak için aşağıdaki saklı yordamı kullanın:
CALL mysql.az_replication_stop;
Çoğaltma ilişkisini kaldırma
Kaynak ve çoğaltma sunucusu arasındaki ilişkiyi kaldırmak için aşağıdaki saklı yordamı kullanın:
CALL mysql.az_replication_remove_master;
Çoğaltma hatasını atla
Çoğaltma hatasını atlamak ve çoğaltmaya izin vermek için aşağıdaki saklı yordamı kullanın:
CALL mysql.az_replication_skip_counter;
Sonraki adımlar
MariaDB için Azure Veritabanı için Veri Çoğaltma hakkında daha fazla bilgi edinin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin