GNU/Linux >> Znalost Linux >  >> Linux

Nakonfigurujte replikaci zdroje MySQL

Poznámka :Podpora Rackspace nemůže pomoci s nastavením replikace zdroj-zdroj kvůli složitosti konfigurace a pravděpodobnosti chyby. Jako alternativu k přímé replikaci zdrojového zdroje MySQL zvažte buď naši službu Cloud Databases nebo aplikační engine, jako je Tungsten pro spolehlivější replikaci dat mezi instancemi databáze.

Replikace zdroje MySQL

Tento článek ukazuje, jak nastavit replikaci clusteru:obousměrnou a kruhovou replikaci mezi dvěma cloudovými servery. Replikace zdrojových dat umožňuje aktualizovat replikovaná data uložená na více počítačích kterýmkoli oprávněným přispívajícím členem skupiny. To umožňuje otevřenější spolupráci než replikace zdroj-replika, kdy jakékoli potřebné změny identifikované členem skupiny musí být odeslány určenému zdroji uzlu.

Tento tutoriál používá operační systém Debian 5 (Lenny) vytvořený ze základního obrazu RackspaceCloud.

Nastavit osnovu

Existují dva cloudové servery, debian501 a debian502 , v tomto cvičení.Oba servery mají dvě adresy IP (jedna veřejná, jedna soukromá). Cvičení nakonfiguruje replikaci tak, aby byla prováděna přes privátní IP rozhraní, takže vám nebudou účtovány žádné poplatky za šířku pásma.

Vytvoření cloudových serverů

Musíte vytvořit dva linuxové cloudové servery pomocí základního obrazu Debianu 5. 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> Rackspace Cloud .
  3. Vyberte Servery> Cloudové servery .
  4. Klikněte na Vytvořit server .
  5. Pojmenujte servery, abyste je během nastavování snadno identifikovali. V tomto cvičení jsou pojmenovány debian501 a debian502.
  6. Vyberte obraz Debianu.
  7. Vyberte konfiguraci RAM (příchuť), která odpovídá vašim požadavkům na databázi.
  8. Klikněte na Vytvořit server .

Následující příkazy serveru by měly být spouštěny jako privilegovaný uživatel (root, skupina sudo).

Instalace MySQL

Nejprve musíme nainstalovat MySQL na oba cloudové servery Debianu. Jako vždy se před instalací jakýchkoli balíčků musíme ujistit, že náš seznam balíčků je aktuální a naše národní/jazykové nastavení je správně nakonfigurováno.

  • Aktualizujte databázi balíčků:

      # aptitude update
    
  • Instalovat národní prostředí:

      # aptitude install locales
    
      # dpkg-reconfigure locales
    
  • dpkg-reconfigure locales zobrazí okno nastavení národního prostředí, kde si můžete vybrat národní prostředí pro váš systém v závislosti na vaší zemi a regionu. V tomto případě zvolte en\_GB.UTF-8 .

  • Nyní spusťte následující příkazy pro instalaci MySQL:

      # aptitude install mysql-server mysql-client libmysqlclient15-dev
    

Konfigurace replikace

Jakmile server mysql balíček byl úspěšně nainstalován, začněte konfigurovat každý z uzlů MySQL, abyste mezi nimi umožnili replikaci.

Musíte vytvořit databázi, která bude replikována, a také uživatelské jméno a heslo aplikace, které s ní budete používat. K jejich nastavení můžete použít níže uvedené příkazy, přičemž nezapomeňte změnit všechny řetězce/hodnoty v závorkách tak, aby se vztahovaly na vaši konkrétní konfiguraci.

  • Nejprve se na debian501 přihlaste do konzole mysql (pomocí hesla root mysql, které nastavíte během instalace MySQL).

      # mysql -u root -p
      mysql>
    
  • Nyní vytvořte uživatele replikace, který se používá k synchronizaci změn.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian502]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Udělejte totéž pro debian502.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian501]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Zpět na debian501, upravte /etc/mysql/my.cnf a vložte, aktualizujte nebo odkomentujte následující položky:

      bind-address = 0.0.0.0
      server-id = 1
      log-bin = /var/log/mysql/var/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 1
      master-host = [private IP address of debian502]
      master-user = [replication username]
      master-password = [replication password]
      replicate-do-db = <database name to be replicated>
    
  • Opakujte kroky na serveru debian502.

      bind-address = 0.0.0.0
      server-id = 2
      log-bin = /var/log/mysql/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 2
      master-host =  [private IP address of debian501]
      master-user = [replication username]
      master-password = [replication user password]
      replicate-do-db = [database name to be replicated]
    
  • Nyní restartujte obě databáze. Pokud se restartování služby na některém serveru nezdaří, zkontrolujte /var/log/mysql/error.log soubor pro případné chyby. Aktualizujte konfiguraci a zkontrolujte případné překlepy a tak dále.

Testování scénářů

Pro účely testování nastavení replikace vytvořte databázi specifikovanou v předchozí části konfigurace. Vytvořte také testovací tabulku na jednom z uzlů a sledujte soubory protokolu v /var/log/mysql adresář. Všimněte si, že všechny změny databáze by měly být okamžitě replikovány na váš druhý server.

  mysql> create database [your-db-name];
  mysql> use [your-db-name]
  mysql> create table foo (id int not null, username varchar(30) not null);
  mysql> insert into foo values (1, 'bar');
  • Jako další test zastavte službu MySQL na debian502, proveďte změny databáze na serveru debian501 a poté restartujte službu MySQL na debian502. Služba debian502 MySQL by měla automaticky synchronizovat všechny nové změny.

  • Měli byste také zvážit změnu výchozích hodnot rotace binárních protokolů (expire_logs_days a max_binlog_size ) v /etc/mysql/my.cnf soubor, protože ve výchozím nastavení jsou všechny binární protokoly uchovávány po dobu 10 dnů. Pokud máte v databázové aplikaci vysoký počet transakcí, může to způsobit značné využití místa na pevném disku v protokolech. Zvažte tedy změnu těchto hodnot, aby odpovídaly vašim zásadám zálohování serveru. Pokud máte například nastaveno denní zálohování uzlu MySQL, nemusíte uchovávat binární protokoly po dobu 10 dnů.


Linux
  1. Jak nastavit replikaci MySQL Master-Master Replication

  2. Nakonfigurujte WSO2 API Manager s databází MySQL

  3. Jak nastavit replikaci MySQL na CentOS

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

  2. Nakonfigurujte server MySQL na operačním systému Ubuntu

  3. Nakonfigurujte replikaci zdrojové repliky MySQL

  1. Nastavte replikaci zdrojové repliky MySQL

  2. Jak nakonfigurovat databázi MySQL Slave

  3. Jaký je účel „uživatele systému“ v replikaci MySQL