GNU/Linux >> Znalost Linux >  >> Linux

Nastavte replikaci zdrojové repliky MySQL

Replikace dat zdrojové repliky umožňuje kopírovat replikovaná data do více počítačů pro zálohování a analýzu více stranami. Nezbytné změny identifikované členem skupiny byste měli odeslat určenému primárnímu uzlu. To se liší od zdrojové replikace, ve které může aktualizovat data každý autorizovaný přispěvatel skupiny.

Tento článek obsahuje kroky pro nastavení replikace databáze zdrojové repliky MySQL® mezi dvěma cloudovými servery. Operační systém použitý v příkladech v článku je CentOS® 6, vytvořený ze základního obrazu Rackspace CloudServers.

Než začnete

Kroky v tomto článku používají dva cloudové servery, db01 a db02 .Cloud servery mají dvě IP adresy (jedna veřejná, jedna soukromá). Příklady demonstrují konfiguraci replikace přes soukromé IP rozhraní tak, aby nevznikaly žádné poplatky za šířku pásma. Po dobu trvání článku db01 je považován za zdroj Server MySQL (s režimem čtení i zápisu) a db02 je považován za repliku server (běží v režimu pouze pro čtení).

Pokud již máte databázi MySQL spuštěnou na zdrojovém uzlu, je před konfigurací replikace mezi nimi vyžadován výpis a obnovení do uzlu repliky. Používáte mysqldump příkaz k výpisu databáze do souboru, poté ji přeneste a obnovte do repliky. Po provedení nezbytné konfigurace je replikace neúčinná. Další informace naleznete v části Konfigurace replikace.

Vytvoření cloudových serverů

Vytvořte dva cloudové servery Linux® pomocí základního obrazu Centos 6. Pomocí následujících kroků vytvořte každý server samostatně.

  1. Přihlaste se do Cloud Control Panel.
  2. V horní navigační liště klikněte na Vybrat produkt pak Rackspace Cloud .
  3. Vyberte Servery pak Cloudové servery .
  4. Klikněte na Vytvořit server .
  5. Pojmenujte servery, abyste je během nastavování snadno identifikovali.
  6. Vyberte základní obrázek Centos 6.
  7. Vyberte konfiguraci RAM (příchuť) vhodnou pro požadavky vaší databáze.
  8. Klikněte na Vytvořit server .

Příkazy nastíněné v následujících částech musí provádět privilegovaný uživatel root nebo uživatel skupiny sudo. Jakékoli řetězce nebo hodnoty specifikované v závorkách by měly být nahrazeny daty specifickými pro vaše nastavení.

Instalovat MySQL

Musíte nainstalovat server mysql balíček na obou cloudových serverech CentOS.

  1. Před instalací MySQL ověřte, že je databáze balíčků aktuální spuštěním následujícího příkazu:

    #yum update
    
  2. Nainstalujte MySQL a povolte jeho automatické spouštění při bootování:

     #yum install mysql-server
    #chkconfig mysqld on
    
  3. Spusťte mysqld služba:

    #service mysqld start
    
  4. Za mysqld služba byla spuštěna, nastavte heslo kořenového adresáře serveru MySQL pomocí následujících příkazů:

    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h web01 password 'new-password'
    

    Poznámka :Případně můžete spustit skript zabezpečené instalace přibalený k instalaci MySQL:

    # /usr/bin/mysql_secure_installation
    Enter current password for root (enter for none):
    ...
    Set root password? [Y/n] Y
    ...
    Remove anonymous users? [Y/n] Y
    ...
    Disallow root login remotely? [Y/n] Y
    ...
    Remove test database and access to it? [Y/n] Y
    ...
    Reload privilege tables now? [Y/n] Y
    
  5. Chcete-li povolit připojení na portu 3306 (mysqld výchozí port), přidejte pravidlo TCP portu 3306 s vložením na poslední číslo řádku v RH-Firewall-1-INPUT řetězec (v tomto případě řádek 10):

    # iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 3306 -j ACCEPT
    
  6. Uložte konfiguraci brány firewall:

    # service iptables save
    

Chcete-li provést příslušné změny konfigurace, abyste povolili replikaci, vyplňte následující část.

Konfigurace replikace

Na zdrojovém serveru je vyžadován uživatel MySQL (db01 ), který má být použit pro replikaci.

  1. Spusťte následující příkazy pro nastavení uživatele MySQL a aktualizujte položky v hranatých závorkách řetězci nebo hodnotami, které plánujete použít při nastavení:

    Poznámka: Možná nebudete muset vytvořit uživatele v následujícím kódu.

    # mysql -u root -p
    mysql> create user [replication_username]@'[private IP of db02]' identified by '[some password]';
    mysql> grant replication slave on *.* TO [replication_username]@'[private IP of db02]';
    mysql> flush privileges;
    mysql> quit
    
  2. Upravte soubor /etc/my.cnf a přidejte následující položky:

    bind-address = 0.0.0.0
    server-id = 1
    log-bin = mysql-bin
    binlog-ignore-db = "mysql"
    
  3. Po dokončení aktualizace /etc/my.cnf restartujte mysqld službu.

    #service mysqld restart
    

    Před zahájením replikace musí být data na zdrojovém a replikačním serveru stejná. Chcete-li provést tuto duplikaci, vypište data ze zdroje (db01 ) server a přidejte jej do thereplica (db02 ) server.

  4. Pomocí následujícího příkazu zajistěte, aby během výpisu databáze nemohlo nic zapisovat do zdrojové databáze. Všimněte si také názvu souboru a umístění binárního protokolu, protože tyto hodnoty potřebujete k dokončení konfigurace replikace na db02:

    # mysql -u root -p
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> SHOW MASTER STATUS;
    
    +------------------+--------------------------+------------------+
    | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+--------------------------+------------------+
    | mysql-bin.000010 |        10 |              | mysql            |
    +------------------+--------------------------+------------------+
    1 row in set (0.00 sec)
    

    Poznámka 1: Zaznamenejte si název souboru a pozici binárního protokolu, protože tyto hodnoty potřebujete k dokončení konfigurace replikace na db02 .

    Poznámka 2: Nechte tuto relaci otevřenou, její uzavření uvolní zámek!

  5. Proveďte výpis databáze pomocí mysqldump takto:

    # mysqldump -u root -p --databases [database-1] [database-2] ...  > /root/db_dump.sql
    
  6. Po dokončení výpisu databáze zrušte zámek čtení ze zdroje (db01 ) zadáním následujícího příkazu nebo ukončením otevřené relace:

    mysql> UNLOCK TABLES;
    
  7. Zkopírujte soubor výpisu databáze na replikační server, aby jej bylo možné obnovit pomocí následujícího příkazu:

    scp /root/db_dump.sql [private-IP-of-db02]:/root/
    
  8. Na db02 , upravte soubor /etc/my.cnf soubor a přidejte následující položky:

    bind-address = 0.0.0.0
    server-id = 2
    master-host =  [private-IP-of-db01]
    master-user = [replication-username]
    master-password = [replication-password]
    master-connect-retry = 60
    
  9. Importujte soubor db_dump.sql soubor zkopírovaný dříve a restartujte službu MySQL.

    # mysql -u root -p < /root/db_dump.sql
    # service mysqld restart
    
  10. Dokončete kroky replikace repliky:

    # mysql -u root -p
    mysql> SLAVE STOP;
    mysql> CHANGE MASTER TO MASTER_HOST='[private-IP-of-db01]',
    MASTER_USER='[replication-username]',
    MASTER_PASSWORD='[replication-password]',
    MASTER_LOG_FILE='[file-listed-on-master-status]',
    MASTER_LOG_POS=[log-position-listed-on-master-status];
    mysql> START SLAVE;
    mysql> SHOW SLAVE STATUS\G
    

    Poznámka: Slave_IO_State pole by mělo zobrazovat „Čekání na hlavní událost k odeslání“. Pokud se zobrazí „Connecting to Master“, zkontrolujte soubor protokolu MySQL. Ve výchozím nastavení je /var/log/mysqld.log ,ale může být ve vašem systému nakonfigurován jinak. Jako vždy /etc/my.cnf definuje umístění vašeho souboru protokolu.

Test replikace

Chcete-li otestovat nastavení replikace, vytvořte novou databázi a přidruženou tabulku na db01 a vložte data, abyste potvrdili, že změny jsou zrcadleny na db02 . V následujícím příkladu se nová databáze jmenujetestování a nová tabulka se jmenuje uživatelé :

# mysql -u root -p
mysql> create database testing;
mysql> use testing
mysql> create table users(id int not null auto_increment, primary key(id), username varchar(30) not null);
mysql> insert into users (username) values ('foo');
mysql> insert into users (username) values ('bar');
mysql> exit

Změny byste měli vidět na db02 okamžitě.


Linux
  1. Jak nastavit replikaci MySQL Master-Master Replication

  2. Jak nastavit Ubuntu/Debian LAMP Server

  3. Jak nainstalovat a nastavit mysql 8 na Ubuntu 20.04

  1. Jak nakonfigurovat replikaci MySQL Multi-Master Replication na Oracle Linux

  2. Jak nastavit MySQL Cluster na Ubuntu

  3. SET GLOBAL max_allowed_packet nefunguje

  1. Jak nastavit replikaci MySQL na CentOS

  2. Nakonfigurujte replikaci zdrojové repliky MySQL

  3. Nakonfigurujte replikaci zdroje MySQL