Gelen Verileri Çoğaltma'de MariaDB için Azure Veritabanı
Bu makalede kaynak ve çoğaltma sunucularını Gelen Verileri Çoğaltma MariaDB için Azure Veritabanı yapılandırma hakkında bilgi edinebilirsiniz. Bu makalede, MariaDB sunucuları ve veritabanlarıyla ilgili daha önce deneyime sahip olduğunu varsayın.
MariaDB için Azure Veritabanı hizmette çoğaltma oluşturmak için Gelen Verileri Çoğaltma şirket içinde, sanal makinelerde (VM) veya bulut veritabanı hizmetlerinden kaynak MariaDB sunucusundaki 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ğaltmaya genel bakış.
Bu makaledeki adımları gerçekleştirmeden önce Veri çoğaltmanın sınırlamalarını ve gereksinimlerini gözden geçirebilirsiniz.
Not
Kaynak sunucunuz sürüm 10.2 veya daha yeni bir sürümse, Genel İşlem Gelen Verileri Çoğaltma kullanarak yapılandırmanızı öneririz.
Not
Bu makale, Microsoft'un artık kullanmama terimi olan bağımlı terimine başvurular içerir. Terim yazılımdan kaldırıldığı zaman, bu makaleden kaldırılacaktır.
Çoğaltma olarak kullanmak için MariaDB sunucusu oluşturma
Yeni bir MariaDB için Azure Veritabanı sunucusu (örneğin, replica.mariadb.database.azure.com). Sunucu, Gelen Verileri Çoğaltma'daki çoğaltma sunucusudur.
Sunucu oluşturma hakkında bilgi edinmek için bkz. MariaDB için Azure Veritabanı kullanarak bir sunucu Azure portal.
Önemli
Genel Amaçlı MariaDB için Azure Veritabanı fiyatlandırma katmanlarında Genel Amaçlı sunucusu oluşturmanız gerekir.
Aynı kullanıcı hesaplarını ve karşılık gelen ayrıcalıkları oluşturun.
Kullanıcı hesapları kaynak sunucudan çoğaltma sunucusuna çoğaltılmaz. Çoğaltma sunucusuna kullanıcı erişimi sağlamak için yeni oluşturulan sunucu üzerinde tüm hesapları ve karşılık gelen ayrıcalıkları el ile MariaDB için Azure Veritabanı 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ı hizmette barındırılan MariaDB sunucusunu hazırlar ve Gelen Verileri Çoğaltma. MariaDB sunucusu, veri kaynağı Gelen Verileri Çoğaltma.
Devam etmeden önce birincil sunucu gereksinimlerini gözden geçirme.
Kaynak sunucunun 3306 bağlantı noktası üzerinden hem gelen hem de giden trafiğe izin verir ve kaynak sunucunun bir 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 kaynak makinede bulunan Azure Cloud Shell bağlantı Azure portal.
Kurumda katı güvenlik ilkeleri varsa ve kaynak sunucuya yönelik tüm IP adreslerinin Azure'dan kaynak sunucunuza iletişimi etkinleştirmesine izin vermiyorsa, aşağıdaki komutu kullanarak azure sunucunuza yönelik IP adresini MariaDB için Azure Veritabanı edebilirsiniz.
MySQL komut MariaDB için Azure Veritabanı kullanarak oturum açma.
Aşağıdaki sorguyu yürütün.
mysql> 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ına çıkın.
IP adresini almak için ping yardımcı programı içinde aşağıdaki komutu yürütün.
ping <output of step 2b>Örnek:
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 sunucu güvenlik duvarı kurallarını, 3306 bağlantı noktası üzerinde önceki adımın çıktısını alan IP adresini içerecek şekilde yapılandırma.
Not
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ı üzerinden tüm IP adreslerine izin ver 2018 yılındaki müşteriler için kullanılabilir.
İkili günlük kaydını açma.
birincilde ikili günlük kaydının etkin olup olduğunu görmek için aşağıdaki komutu girin:
SHOW VARIABLES LIKE 'log_bin';değişkeni değerini
log_binONdöndürürse, sunucunuzda ikili günlük etkinleştirilir.değerini
log_binOFFdöndürürse, my.cnf dosyasını ikili günlüğülog_bin=ONetkinleştiren şekilde düzenleyin. Değişikliğin etkili olması için sunucuyu yeniden başlatın.Kaynak sunucu ayarlarını yapılandırma.
Gelen Verileri Çoğaltma kaynak ve
lower_case_table_namesçoğaltma sunucuları arasında tutarlı olması gerekir. parametresi,lower_case_table_names1MariaDB için Azure Veritabanı.'de parametresi varsayılan MariaDB için Azure Veritabanı.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şturmada bunu belirtmeniz gerekir.
Kaynak sunucunuza kullanıcı hesapları ekleme hakkında bilgi edinmek için MariaDB belgelerine bakın.
Aşağıdaki komutları kullanarak, yeni çoğaltma rolü yalnızca kaynağı barındıran makineden değil, herhangi bir makineden kaynak erişime sahip olabilir. Bu erişim için, bir kullanıcı oluşturmak için @ komutunda syncuser '%' adını 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 gerektirmek 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önetim Rolleri panelini seçin ve ardından Genel Ayrıcalıklar listesinde Çoğaltma Bağımlısı'nı seçin. Çoğaltma rolünü oluşturmak için Uygula'ya seçin.

Kaynak sunucuyu salt okunur moda ayarlayın.
Bir veritabanının dökümlerini oluşturmadan önce sunucunun salt okunur moda yerleştirilmiş olması gerekir. Kaynak, salt okunur moddayken herhangi bir yazma işlemini işleyemzdir. İş etkisini önlemeye yardımcı olmak için yoğun olmayan bir zamanda salt okunur pencereyi zamanlamayın.
FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;Geçerli ikili günlük dosyası adını ve uzaklığını al.
Geçerli ikili günlük dosyası adını ve uzaklığı belirlemek için komutunu
show master statusçalıştırın.show master status;Sonuçların aşağıdaki tabloya benzer olması gerekir:

İkili dosya adını not edin çünkü sonraki adımlarda kullanılacaktır.
GTID konumunu (isteğe bağlı, GTID ile çoğaltma için gereklidir) alır.
İlgili
BINLOG_GTID_POSbinlog dosya adı ve uzaklığı için GTID konumunu almak için işlevini çalıştırın.select BINLOG_GTID_POS('<binlog file name>', <binlog offset>);
Kaynak sunucuya döküm ve geri yükleme
Kaynak sunucudan tüm veritabanlarının dökümlerini girin.
Kaynak sunucudan tüm veritabanlarının dökümlerini akan mysqldump'ı kullanın. MySQL kitaplığının ve test kitaplığının dökümlerini alanın.
Daha fazla bilgi için bkz. Döküm ve geri yükleme.
Kaynak sunucuyu okuma/yazma moduna ayarlayın.
Veritabanı at edildikten sonra kaynak MariaDB sunucusunu okuma/yazma moduna geri başlatın.
SET GLOBAL read_only = OFF; UNLOCK TABLES;Döküm dosyasını yeni sunucuya geri yükleme.
Döküm dosyasını, MariaDB için Azure Veritabanı hizmette oluşturulan sunucuya geri yükleme. Bir döküm & MariaDB sunucusuna geri yükleme hakkında bilgi için bkz. Döküm Dökümü & Geri Yükleme.
Döküm dosyası büyükse, çoğaltma sunucunuzla aynı bölgedeki Azure'daki bir VM'ye yükleyin. Vm'den MariaDB için Azure Veritabanı sunucusuna geri yükleme.
Kaynak ve çoğaltma sunucularını kaynak sunucularını başlatacak Gelen Verileri Çoğaltma
Kaynak sunucuyu ayarlayın.
Tüm Gelen Verileri Çoğaltma saklı yordamlar tarafından yapılır. Saklı Yordamlar'da tüm Gelen Verileri Çoğaltma bulabilirsiniz. Saklı yordamlar MySQL kabuğunda veya MySQL Workbench'te çalışır.
İki sunucuyu bağlama ve çoğaltmayı başlatma için, MariaDB için Azure DB hizmette hedef çoğaltma sunucusunda oturum MariaDB için Azure DB olun. Ardından, dış örneği kaynak sunucu olarak, dış sunucu üzerinde
mysql.az_replication_change_masterveyamysql.az_replication_change_master_with_gtidsaklı yordamını MariaDB için Azure DB 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: çalışan ikili günlük dosyası adı
show master status - master_log_pos: sıfırdan ikili günlük konumu
show master status - master_gtid_pos: GTıD konumundan çalışıyor
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 parametresinde bir değişken olarak geçirilmesi önerilir. Daha fazla bilgi için aşağıdaki örneklere bakın.
Örnekler
SSL ile çoğaltma
@certAşağıdaki komutları çalıştırarak değişkeni oluşturun:SET @cert = '-----BEGIN CERTIFICATE----- PLACE YOUR PUBLIC KEY CERTIFICATE\'S CONTEXT HERE -----END CERTIFICATE-----'SSL ile çoğaltma, companya.com etki alanı üzerinde barındırılan bir kaynak sunucu ve MariaDB için Azure veritabanı 'nda barındırılan bir çoğaltma sunucusu arasında ayarlanır. Bu saklı yordam, çoğaltma üzerinde ç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, companya.com etki alanı üzerinde barındırılan bir kaynak sunucu ve MariaDB için Azure veritabanı 'nda barındırılan bir çoğaltma sunucusu arasında ayarlanır. Bu saklı yordam, çoğaltma üzerinde ç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.
mysql.az_replication_startÇoğaltmaya başlamak 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;Slave_IO_RunningVeSlave_SQL_Runningdurumundaysayesve değeriSeconds_Behind_Masterise,0çoğaltma çalışır.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.Verilerin çoğaltılmasını güvenli hale getirmek için ilgili sunucu değişkenlerini güncelleştirin (yalnızca GTıD olmadan çoğaltma için gereklidir).
MariaDB içindeki yerel bir çoğaltma sınırlaması nedeniyle,
sync_master_infosync_relay_log_infogtıd senaryosu olmadan çoğaltma üzerinde ve değişkenlerini ayarlamanız gerekir.Çoğaltmanın
sync_master_infosync_relay_log_infotutarlı olduğundan emin olmak için çoğaltma sunucunuzun ve değişkenlerini denetleyin ve değişkenlerini olarak ayarlayın1.
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ır
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ı gelen verileri çoğaltma hakkında daha fazla bilgi edinin.