MySQL adatbázis másolása két szerver között

Előfordulhat, hogy minél gyorsabban át kell másolnunk egy adatbázist egyik szerverről a másikra. Ilyen esetben legtöbbször valamilyen webes kezelőfelület jut elsőre az eszünkbe, mint például a népszerű phpMyAdmin. Belépünk, exportálunk, lementünk, belépünk, importálunk, tallózunk…ha nincs jobb mód, ez is megoldás.

Mit tehetünk akkor, ha fizikai, vagy SSH-hozzáférésünk is van mindkét szerverhez? Például megmutathatjuk a kocka haveroknak, hogy mekkora gurui is vagyunk a parancssornak!


A hagyományos módszer szerint három lépésben kell gondolkodnunk:

1. A mysqldump paranccsal kiexportáljuk a szükséges adatbázist:
szerver1:# mysqldump -u user -p db-name > db-name.out

2. A két szerver között titkosított csatornán másolást végzünk:
szerver1:# scp db-name.out user@szerver2:/backup

3. Az átmásolt adatbázist beimportáljuk az új környezetbe:
szerver2:# mysql -u user -p db-name < db-name.out

Jó-jó, de mi a ProfiTárhelynél szeretjük a gyors és egyszerű megoldásokat, ezért nem szeretünk többet gépelni, mint amennyi szükséges!

A három lépést akár egyetlen sorban is elvégezhetjük az alábbiak szerint:

szerver1:# mysqldump -u username -p db-name | ssh user@szerver2 mysql -u username -p db-name

Megjegyezzük, hogy a parancssoros megoldásoknak további előnyük, hogy nincs mérethatár az importálásnál, így akár több száz megabájtos fájlt is importálhatunk.
Valamint ezt a módszert érdemes választani akkor is, ha minimális leállással szeretnénk költöztetni egy élő rendszert.

Megosztanád? Köszönjük!

Szólj hozzá!