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

  1. 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.

  2. 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.

  3. 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.

  1. Devam etmeden önce birincil sunucu gereksinimlerini gözden geçirme.

  2. 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.

    1. MySQL komut MariaDB için Azure Veritabanı kullanarak oturum açma.

    2. 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 |
       +-----------------------------------------------------------+
      
    3. MySQL komut satırına çıkın.

    4. 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.
      
    5. 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.

  3. İ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_bin ON döndürürse, sunucunuzda ikili günlük etkinleştirilir.

    değerini log_bin OFF döndürürse, my.cnf dosyasını ikili günlüğü log_bin=ON etkinleştiren şekilde düzenleyin. Değişikliğin etkili olması için sunucuyu yeniden başlatın.

  4. 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_names 1 MariaDB için Azure Veritabanı.'de parametresi varsayılan MariaDB için Azure Veritabanı.

    SET GLOBAL lower_case_table_names = 1;
    
  5. 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.

    Kullanıcılar ve Ayrıcalıklar

    Oturum Açma Adı alanına bir kullanıcı adı girin.

    Eşitleme kullanıcısı

    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.

    Çoğaltma Bağımlısı

  6. 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;
    
  7. 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:

    Ana Durum Sonuçları

    İkili dosya adını not edin çünkü sonraki adımlarda kullanılacaktır.

  8. GTID konumunu (isteğe bağlı, GTID ile çoğaltma için gereklidir) alır.

    İlgili BINLOG_GTID_POS binlog 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

  1. 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.

  2. 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;
    
  3. 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.

  1. 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_master veya mysql.az_replication_change_master_with_gtid saklı 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, '');
      
  2. Ç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;
    
  3. Ç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_RunningVe Slave_SQL_Running durumundaysa yes ve değeri Seconds_Behind_Master ise, 0 çoğaltma çalışır. Seconds_Behind_Master çoğaltmanın ne kadar geç olduğunu gösterir. Değer değilse 0 , çoğaltma güncelleştirmeleri işliyor demektir.

  4. 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_info sync_relay_log_info gtıd senaryosu olmadan çoğaltma üzerinde ve değişkenlerini ayarlamanız gerekir.

    Çoğaltmanın sync_master_info sync_relay_log_info tutarlı olduğundan emin olmak için çoğaltma sunucunuzun ve değişkenlerini denetleyin ve değişkenlerini olarak ayarlayın 1 .

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.