Úvod
V cloud computingu se replikace dat master-slave týká ukládání stejných informací na více serverech. Jeden server řídí skupinu a ostatní zařízení obsluhují práci ve stejném uzlu.
Replikace je nezbytná:
- Když společnost potřebuje pravidelnou denní zálohu, která dokáže obnovit hlavní databázi MySQL v případě poruchy úložiště.
- Všude, kde musí být informace uloženy, zkoumány a upravovány několika lidmi, na několika počítačích. Pokud člen skupiny zjistí potřebu změny, musí se obrátit na určeného hlavního uzlu.
Tento průvodce vás provede nastavením replikace master-slave v MySQL.
Předpoklady
- Systém založený na Linuxu, jako je CentOS
- Uživatelský účet s sudo privilegia
- Instalátor balíčku, jako je yum nebo apt , obvykle zahrnuto ve výchozím nastavení
- Privátní IP adresa cloudového serveru (aby se zabránilo poplatkům za šířku pásma na veřejné IP během konfigurace)
Kroky pro nastavení replikace databáze Master-Slave v MySQL
Mňam (Yellowdog Updater, Modified) je nástroj pro správu balíčků pro systémy RedHat Package Manager Linux. V .deb balíčky, mňam nástroj je obecně nahrazen nástrojem apt nářadí. Proto v daném příkazu apt-get může obvykle nahradit mňam .
Například instalační příkaz je buď yum install [package_name]
nebo apt-get install [package_name]
pro identický výsledek. Tento článek předpokládá, že používáte distribuci Linuxu založenou na RPM. Proto yum
používají se příkazy.
Hlavní databáze MySQL běží v režimu čtení i zápisu. Mezitím podřízený server běží pouze pro čtení. Nyní k replikaci.
Krok 1:Konfigurace databáze MySQL pro replikaci
Použijte mysqldump
příkaz k provedení výpisu a obnovení informací do podřízené databáze. Tento příkaz uloží data do souboru, přenese je a obnoví do podřízeného uzlu.
Krok 2:Vytvořte 2 samostatné cloudové servery
V tomto kroku se musí privilegovaný uživatel přihlásit do cloudového ovládání. S CentOS je to možné prostřednictvím základního obrazu CentOS 6.
Vytvořte dva cloudové servery Linux s vhodnou pamětí RAM a přiřaďte jim odlišné názvy.
Krok 3:Aktualizujte všechny softwarové balíčky na jejich aktuální verzi
Uživatelé a správci systému mohou aktualizovat všechny softwarové balíčky v systému Linux založeném na RPM pomocí následujícího příkazu:
yum update
Krok 4:Nainstalujte MySQL
Pro systémy Linux založené na RedHat Package Manager nainstalujte serverový balíček MySQL na oba cloudové servery příkazem:
yum install mysql-server
Nastavte službu tak, aby se spouštěla při každém spuštění systému pomocí příkazu:
chkconfig mysqld on
Krok 5:Spusťte MySQL
Nyní zjistěte, zda bylo MySQL správně nainstalováno. Pokud ano, měli byste být schopni spustit službu příkazem:
service mysqld start
Krok 6:Nastavení hesla kořenového adresáře serveru MySQL
Je dobré nastavit heslo administrátora pro MySQL. Chcete-li nastavit heslo, spusťte skript pro zabezpečenou instalaci, který je součástí balíčku MySQL, a odpovězte Y na všechny výzvy Y/n.
Nebo použijte /usr/bin/mysqladmin -u root password
následuje mezera a vaše nové heslo; a /usr/bin/mysqladmin -u root -h web01 password
následuje mezera a znovu vaše nové heslo.
Krok 7:Konfigurace brány firewall pro přístup k databázi
Použití pravidla TCP Port 3306 přidává Firewall Policy, která povoluje provoz na portu 3306. Toto pravidlo umožňuje správnou komunikaci mezi zařízeními.
Pro uložení konfigurace firewallu použijte příkaz:
service iptables save
Při otevírání portů buďte opatrní, abyste se vyhnuli hackům.
Krok 8:Konfigurace serveru pro replikaci
Každý podřízený server vyžaduje způsob připojení k hlavnímu serveru. K navázání připojení potřebujete uživatelské jméno a heslo MySQL. To vyžaduje, abyste si zřídili uživatelský účet MySQL na hlavním serveru.
Doporučujeme vytvořit vyhrazený účet pro replikaci. Pro tuto funkci udělte libovolnému účtu oprávnění slave replikace. Pro každého slave můžete vytvořit stejný účet nebo různé účty. Uživatelské jméno a heslo k účtu vždy najdete v prostém textu v hlavním úložišti.
Chcete-li nastavit nový uživatelský účet s názvem replikace a umožnit mu připojit se za účelem replikace z libovolného hostitele na vašeho webu domény, spusťte tento příkaz na hlavním serveru:
mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';
Krok 9:Zajistěte shodu dat na vašich serverech
Duplikujte data pomocí dumpingu z hlavního do podřízeného serveru.
Splachovací stoly musí být nastaveny čtecím zámkem. Databáze hlavního serveru nesmí provést během tohoto kroku jakékoli nové změny. Pokud jsou na hlavním serveru informace ke koordinaci s podřízenými servery před zahájením procesu replikace, proveďte následující akce:
- Zastavte zpracování jakýchkoli příkazů na hlavním serveru.
- Zkopírujte název souboru a aktuální souřadnice hlavního serveru do jeho binárního protokolu (viz krok 10 níže). To bude potřeba později při dokončení konfigurace replikace.
- Než svému hlavnímu serveru umožníte pokračovat v provádění příkazů, vypište jeho data.
Všechny tyto akce provádějte pečlivě, abyste zajistili, že výpis dat bude odpovídat aktuálním datům hlavního serveru. V opačném případě budou podřízené databáze neodpovídající nebo poškozené.
Krok 10:Pořiďte snímek hlavní databáze
Při provádění následující akce mějte na paměti, že pouze jeden snímek hlavní databáze je vše, co potřebujete ke konfiguraci několika podřízených serverů.
Pokud ještě musíte nakonfigurovat ID serveru a spustit binární protokol na hlavním serveru, musíte server vypnout. Nyní můžete pořídit snímek databází.
Přeneste datové soubory do adresáře podřízeného serveru:
shell> tar xvf dbdump.tar
V případě potřeby stanovte vlastnictví a oprávnění pro soubory. Možná budete muset povolit přístup podřízenému serveru a možnost provádět úpravy. Spusťte slave pomocí --skip-slave-start
abyste zabránili zahájení replikace.
Nakonfigurujte svůj podřízený server pomocí názvu hostitele a přihlašovacích údajů hlavního serveru. Pro podřízenou databázi použijte replikační souřadnice hlavního serveru. Nasměrujete slave do bodu, kde začíná replikace, pomocí binárního log souboru a pozice.
Pro nakonfigurovaný hlavní server můžete použít mysqldump
pořídit snímek.
Nyní můžete aktualizovat konfiguraci slave. Znovu nezapomeňte spustit slave pomocí --skip-slave-start
abyste zabránili zahájení replikace.
Importujte výpis pomocí příkazu:
shell> mysql < fulldb.dump
Krok 11:Zahájení podřízených vláken
Pro okamžité zobrazení aktualizací na podřízeném serveru použijte:
mysql> START SLAVE;