Beállítása MySQL adatbázis replikációs

Szeptember 15, 2008

Ez mindig körülbelül adat. Mi haszna minden rendszer nélkül az adatok támaszkodik?

Adatbázis létrehozásával replikáció egyik számos lépést kell tenni annak érdekében, hogy megőrizzék az adatok, megakadályozva bármilyen veszteség és katasztrófa utáni helyreállítást teszik könnyebbé.

Szerencsére, ez egyszerűen a MySQL. Tehát tegyük fel van két szerver fut MySQL, egy úgynevezett host1 és a többi host2.
Replikáció lehetnek master-master, vagy master-slave. A master-slave replikáció, a rabszolga mindig megismétli, amit a master adatbázis végrehajtó. A mester-mester replikációs, mind adatbázisokat szinkronizálni minden más.

Céljából a bemutató, a master-slave (itt host1 és host2 kal) forgatókönyv vizsgálni.

Először is, nyissuk meg a mysql konfigurációs fájl host1 (általában a / etc / my.cnf a linux, és a c: \ windows \ my.ini a windows), és vegyük (távolítsa el a hash) a következő sort:

# Skip-hálózat

Másodszor, meg kell adni a fájlt, ahol a mester (host1) kell log (írni), a lekérdezések, hogy a végrehajtó. Ez lehetővé teszi, hogy a slave (host2), hogy olvassa ezeket a lekérdezéseket, és végrehajtja azokat is. Mint ilyen, adjon hozzá egy sort, mint például:

log-bin = / path / to / mysql-bin.log

ha ez az érték fölött van az elérési útja, ahol fájl MySQL kell tennie a fakitermelés. Te nagyon is hozzon létre egy külön könyvtárat vagy használjuk az alapértelmezett MySQL telepítési könyvtár (például c: \ Program Files \ mysql \ Windows vagy a / var / lib / mysql a linux)

Ezután meg kell adni az adatbázis nevét a kérdést. Tehát ha te felállítása replikációt az egyik a MySQL adatbázis az úgynevezett "work_data", akkor ez az a vonal, akkor kell hozzá, hogy a MySQL konfigurációs:

binlog-do-db = work_data

Végül, meg kell adni a szerver azonosító, amely azt mondja, hogy ez a master szerver

szerver-id = 1

Mentse el a konfigurációs fájlba és kilép.
Most meg kell adni host2 az engedélyt lemásolni az adatokat. Mint ilyen, a MySQL lekérdezés kell kiállítani a kapitány.

Így a host1, jelentkezzen be, hogy a MySQL gyors (mysql-u root-pyour_root_password) (vagy a PHPMyAdmin, stb ... amit csak használni), és kiadja a következő nyilatkozatot:

támogatási replikáció slave *.* a "username'@'%' azonosított" jelszó ";

Győződjön meg róla, hogy helyére felhasználónevet és jelszót a megbízólevél választott. Ne tartsa a aposztrófokat mégis.
A%-jel azt jelenti, hogy a rabszolga is csatlakozni bármely fogadó. Ha azt akarja, hogy sokkal biztonságosabb, helyére, hogy a host2 (a rabszolga hostname).

Miután az összes fenti történik, indítsa újra a MySQL szolgáltatás (szolgáltatás mysqld újraindítás (linux), vagy net stop mysql, net start mysql (a windows)).

Ha az adatbázis már korábban adatokat, győződjön meg róla, dump, és teher ez a szolga előtt csinálás a fentiek közül bármelyik. Dömpingellenes adatok egyszerű és lehet tenni a cd'ing a MySQL bin könyvtárba és kiadó:

mysqldump-Q-u root-pyour_root_password databasename> database_dump.sql

(Cserélje ki a jelszót és az adatbázis nevét a megfelelő bejelentkezés). Az egész adatbázis most a fájlban database_dump.sql

Importálni azt host2, cd, hogy a mysql bin könyvtárba, és kérdés:

mysql-u root-pyour_root_password databasename </ útvonal / a / fájl / database_dump.sql

A MySQL konfigurációs fájl host2 kell az alábbi sorokat:

szerver-id = 2
master-host = host1
master-user = felhasználónév
master password = jelszó
master-port = 3306

ha host1 a mester hostname / IP, és a felhasználói név és jelszó megbízólevél a használt odaítélésekor replikációs hozzáférés néhány lépést fölött. 3306 az a port, MySQL fut (ez az alapértelmezett)

Majd indítsa el a szolga folyamatot host2 kibocsátásával a MySQL gyors:

elkezd rabszolga;

Annak érdekében, hogy a replikáció helyesen működik, ki a következő SQL lekérdezést host1:

azt mutatják, rabszolga állapotát \ G

(Slave_SQL_Running és Slave_IO_Running jelentést kell készítenie az "igen")

Jó szerencse

Címkék:
  1. host2
    Április 1, 2010-on 20:02
    # 1
  2. admin
    Szeptember 23, 2008-on 16:58

    Lehet beállít egy helyi DNS szolgáltatást, és a felhasználók használni a hostname (normál esetben mutatott a mester), a hozzáférés a szolgáltató.
    Meghibásodás esetén, egyszerűen megváltoztatni a DNS-nyilvántartás, hogy a hostnév pont a slave gép.
    Felhasználók nem észrevenni a változást, ha változás a vizsgálati időszak hostname elhatározza, hogy.

  3. Robert
    Szeptember 23, 2008-on 13:44

    Genius amit? , Bár lesz változtatni, ahogy a felhasználó csatlakozik az adatbázist annak érdekében, hogy zökkenőmentes átmenetet abban az esetben, ha nem.

  4. admin
    Szeptember 17, 2008-on 1125

    Kedves Robert,
    Mi a helyzet a futó MySQL több szolgáltatást a fogadó slave? Minden lenne fut egy másik porton, és függ egy másik master.

  5. Robert
    Szeptember 17, 2008-on 1049

    Nagy, éppen erre volt szükségem. Most ... Ez lehetséges-hoz készlet több Master eszközök szaporodjanak csak egy szolga kiszolgáló?. Én kérdezem ezt, mert im kipróbálás-hoz létre egy Active-Stanby topológia, amelyben, ha a Masters Megbukik lehetne helyettesíteni ideiglenesen a Slave szerverre. Köszönet

Ez a blog védett Dave \ \ \ \ \ \ \ 's Spam Karma 2 : 14733 spam evett és számolás ...