Oktatóanyagok > Hogyan lehet nagy MySQL adatbázisokat exportálni és importálni Linux rendszerre?

Hogyan lehet nagy MySQL adatbázisokat exportálni és importálni Linux rendszerre?

Közzétéve: 21 július 2020

Database Linux

Bevezetés

A MySQL adatbázisok kezelésekor különösen nagy figyelmet kell fordítania az adatvesztés elkerülésére, kiváltképp nagyméretű adatbázisok esetén.

Ezen információk exportálásához használja a "dump" parancsot, hogy az adatok másolatát biztonsági mentési fájlban tárolja. Ez a biztonsági mentési fájl felhasználható az adatbázis helyreállítására az eszköz meghibásodása esetén, vagy ugyanazok az adatok átvitelére egyik gépről a másikra.

Az oktatóanyagunkból megtudhatja, hogyan lehet nagy MySQL adatbázisokat (vagy MariaDB-t) exportálni, és hogyan importálhatja azokat egy másik adatstruktúrába.

Előkészületek

A művelet végrehajtásához ennek a 3 feltételnek kell teljesülnie:

  • Hozzáférés (közvetlenül vagy SSH-n keresztül) a Linux szerverhez, ahol a MySQL (vagy MariaDB) telepítve van;
  • Az exportálandó adatbázis nevének ismerete;
  • Hozzáférési adatok ehhez az adatbázishoz (ha rendelkezésre áll).
Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.

Az adatbázis exportálása

A MySQL és a MariaDB sem nyújt olyan eszközt, amely lehetővé teszi az adatbázis közvetlen másolatának elkészítését. Ennélfogva az adatbázis "dump" végrehajtásával "mentse" az adatbázist. Az adatbázis "dump" művelete lehetővé teszi, hogy a táblák összes tartalmát .SQL fájlba mentse.

Pontosan azért, mert a dump fájl sok helyet foglalhat el a lemezen a mentendő adatmennyiségtől függően, jó gyakorlat a tartalmát egy zip archívumba tömöríteni.

Ezután lépjen a mappába, ahová az adatbázist menteni kívánja:

cd /path/your_folder

Megjegyzés: Cserélje le az "/ path / your_folder"-t a mappa elérési útjára.

Ezután írja be a következő parancsot az adatbázis exportálásának megkezdéséhez:

mysqldump -u username -p my_big_database | gzip > backup.sql.gz

Ezzel a "mysqldump" klienst fogják használni. A "mysqldump" kliens kibontja az adatbázisban tárolt adatokat.

Megjegyzés: Az utasításban feltétlenül cserélje le a "felhasználónév" mezőt annak a felhasználónak a nevére, aki hozzáférhet az adatbázishoz, a "my_big_database" mezőt pedig az exportálandó adatbázis nevére, a "backup" mezőt pedig a biztonsági másolat fájlhoz társítandó névre. Javasoljuk, hogy adja meg a biztonsági másolat dátumát a a backup fájl nevében.

A parancs végrehajtása után meg kell adnia a jelzett felhasználó számára biztosított MySQL (vagy MariaDB) hozzáférési jelszót. A művelet több-kevesebb időt vehet igénybe az exportálandó információ mennyisége alapján.

A művelet befejezése után az összes adatot exportáljuk a "backup.sql.gz" archívumba.

Az Adatbázis importálása

A korábban mentett adatbázis importálásához csomagolja ki az archívumot. A korábbiakhoz hasonlóan menjen arra az útvonalra, ahová ki kívánja csomagolni az archívumot, és írja be:

gzip -d backup.sql.gz

Megjegyzés: Ha a "biztonsági másolatot" más névre cserélte, mindenképpen változtassa meg a helyes tömörített fájl megjelölése érdekében.

Ezen a ponton csak annyit kell tennie, hogy beírja a MySQL-t (vagy MariaDB-t), létrehozza az új adatbázist és importálja annak tartalmát. Ezután írja be a következőt:

mysql -u user -p

Megjegyzés: Cserélje ki a "felhasználó" mezőt annak a felhasználónak a nevére, aki jogosult hozzáférni a shellhez, és aki jogosult egy új adatbázis létrehozására. Alternatív megoldásként jelentkezzen be rootként (ha megengedett):

sudo mysql

Most, hogy belépett a shellbe, kezdje el létrehozni az új adatbázist, ahová az adatokat importálni szeretné. Ezután írja be:

CREATE DATABASE restored_db;

Ez a parancs létrehozza a "restored_db" adatbázist: cserélje le egy kívánt névre. Más ilyen nevű adatbázis azonban nem létezhet. Ebben az esetben hibaüzenet érkezik, és az összes műveletet meg kell ismételni egy új név megadásával.

A már meglévő adatbázisok ellenőrzéséhez használja az alábbi parancsot:

SHOW DATABASES;
Most utasítsa a MySQL-t (vagy a MariaDB-t), hogy minden jövőbeni műveletet az adatbázisban kell végrehajtani.
USE restored_db;

Végül importálja az adatokat a következőn keresztül:

SOURCE /path/file.sql;
Import Backup

Megjegyzés: cserélje ki a "/path/file.sql"-t a kibontott fájl pontos elérési útjával.

A következő parancsok használatával ellenőrizze, hogy az adatokat helyesen másolta-e:

USE your_old_db;
SHOW TABLES
USE your_new_db;
SHOW TABLES

Megjegyzés: Cserélje le a "your_old_db" és "your_new_db" kifejezéseket a forrás és a cél adatbázis nevére.

Figyelje meg, hogy az összes tábla manuális importálása nélkül a táblák mind a régi, mind az új adatbázisban megtalálhatók.

Összegzés

Ha végigvette az útmutató összes lépését, megtanulta, hogyan készítsen biztonsági másolatot a MySQL adatbázisról, és hogyan importálja azt egy új adatstruktúrába.

Javasoljuk, hogy rendszeresen készítsen ilyen típusú biztonsági másolatot, hogy ne kockáztassa meg a fontos adatok elvesztését. Ebben az esetben használhatkja a Hogyan lehet irányítani az ütemezett műveleteket a Crontab segítségével? útmutatónkban bemutatott módszert.