Ukazi MySQL za varnostno kopiranje in obnovo za upravljanje baz podatkov


Ta članek vam prikazuje nekaj praktičnih primerov, kako izvajati različne operacije varnostnega kopiranja baz podatkov MySQL z uporabo ukaza mysqldump, videli pa bomo tudi, kako jih obnoviti s pomočjo ukazov mysql in mysqlimport v Linuxu.

mysqldump je odjemalski program ukazne vrstice, uporablja se za odlaganje lokalne ali oddaljene baze podatkov MySQL ali zbiranje baz podatkov za varnostno kopiranje v eno ravno datoteko.

Predvidevamo, da imate MySQL že nameščen v sistemu Linux s skrbniškimi pravicami, in predvidevamo, da že imate majhno količino znanja o MySQL. Če MySQL ni nameščen ali niste izpostavljeni MySQL, preberite spodnje članke.

  1. Namestite strežnik MySQL na RHEL/CentOS 6-5, Fedora 17-12
  2. 20 ukazov MySQL za upravljanje baz podatkov

Kako varnostno kopirati bazo podatkov MySQL?

Če želite narediti varnostno kopijo zbirke podatkov ali baz podatkov MySQL, mora baza podatkov obstajati v strežniku baz podatkov in imeti morate dostop do nje. Oblika ukaza bi bila.

# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

Parametri omenjenega ukaza so naslednji.

  1. [uporabniško ime]: veljavno uporabniško ime MySQL.
  2. [geslo]: veljavno geslo MySQL za uporabnika.
  3. [ime_baze]: Veljavno ime zbirke podatkov, ki jo želite varnostno kopirati.
  4. [dump_file.sql]: Ime varnostne kopije datoteke, ki jo želite ustvariti.

Če želite narediti varnostno kopijo posamezne baze podatkov, uporabite ukaz, kot sledi. Ukaz bo odvrgel strukturo baze podatkov [rsyslog] s podatki v eno datoteko izpisa, imenovano rsyslog.sql.

# mysqldump -u root -ptecmint rsyslog > rsyslog.sql

Če želite narediti varnostno kopijo več baz podatkov, zaženite naslednji ukaz. Naslednji primer ukaza vzame varnostno kopijo strukture baz podatkov [rsyslog, syslog] v eno datoteko, imenovano rsyslog_syslog.sql.

# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql

Če želite narediti varnostno kopijo vseh baz podatkov, uporabite naslednji ukaz z možnostjo –all-database. Naslednji ukaz prevzame varnostno kopijo vseh zbirk podatkov z njihovo strukturo in podatki v datoteko, imenovano all-databases.sql.

# mysqldump -u root -ptecmint --all-databases > all-databases.sql

Če želite samo varnostno kopijo strukture baze podatkov brez podatkov, v ukazu uporabite možnost –no-data. Spodnji ukaz izvozi strukturo baze podatkov [rsyslog] v datoteko rsyslog_structure.sql.

# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql

Če želite varnostno kopirati podatke baze podatkov samo brez strukture, nato z ukazom uporabite možnost –no-create-info. Ta ukaz podatke zbirke podatkov [rsyslog] sprejme v datoteko rsyslog_data.sql.

# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql

S spodnjim ukazom lahko naredite varnostno kopijo posamezne tabele ali določenih tabel baze podatkov. Na primer, naslednji ukaz vzame varnostno kopijo tabele wp_posts iz baze podatkov wordpress.

# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql

Če želite iz baze podatkov vzeti varnostno kopijo več ali nekaterih tabel, ločite vsako tabelo s presledkom.

# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql

Spodnji ukaz prevzame varnostno kopijo baze podatkov [galerija] oddaljenega strežnika [172.16.25.126] v lokalni strežnik.

# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql

Kako obnoviti bazo podatkov MySQL?

V zgornji vadnici smo videli, kako narediti varnostno kopijo podatkovnih baz, tabel, struktur in podatkov, zdaj pa bomo videli, kako jih obnoviti v naslednji obliki.

# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]

Če želite obnoviti bazo podatkov, morate na ciljni napravi ustvariti prazno bazo podatkov in jo obnoviti z ukazom msyql. Naslednji ukaz bo na primer obnovil datoteko rsyslog.sql v bazo podatkov rsyslog.

# mysql -u root -ptecmint rsyslog < rsyslog.sql

Če želite obnoviti bazo podatkov, ki že obstaja na ciljnem računalniku, boste morali uporabiti ukaz mysqlimport.

# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql

Na enak način lahko obnovite tudi tabele, strukture in podatke zbirke podatkov. Če vam je bil ta članek všeč, ga delite s prijatelji.