Ero sivun ”MySQL-tietokannan varmuuskopiointi ja palautus” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (luokka)
p (lisää oikolukua)
 
(3 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
MySQL tietokantojen varmuuskopiointia ja kopioiden palauttamista hallinoidaan sen omien asiakasohjelmien kautta. Graafiset käyttöliittymät muuttuvat toistuvissa rutiineissa raskaiksi käyttää, joten lähes ainoa tapa hoitaa automaattinen varmuuskopiointi on käyttö komentoriviltä. Tässä artikkelissa käsitellään mysqldump- ja mysql-asiakasohjelmia.  
[[MySQL]]-tietokantojen varmuuskopiointia ja kopioiden palauttamista hallinnoidaan MySQL:n omien asiakasohjelmien kautta. Graafiset käyttöliittymät tulevat toistuvissa rutiineissa raskaiksi käyttää, joten lähes ainoa tapa hoitaa automaattinen varmuuskopiointi on käyttö [[komentorivi]]ltä. Tässä artikkelissa käsitellään <tt>mysqldump</tt>- ja <tt>mysql</tt>-asiakasohjelmia.  


== Mysqldump-asiakasohjelma ==
== Mysqldump-asiakasohjelma ==
Rivi 5: Rivi 5:
Mysqldump on komentoriviltä kutsuttava asiakasohjelma, joka tulostaa määritellyt tietokannat haluttuun tiedostoon SQL-syntaksissa. Mysqldump ei käsittele dataa binäärimuodossa, kuten datatiedostoina, vaan selväkielisenä syötteenä. Mysqldump mahdollistaa myös syötteen lukemisen ja jopa sen muokkaamisen ennen tallennusta.  
Mysqldump on komentoriviltä kutsuttava asiakasohjelma, joka tulostaa määritellyt tietokannat haluttuun tiedostoon SQL-syntaksissa. Mysqldump ei käsittele dataa binäärimuodossa, kuten datatiedostoina, vaan selväkielisenä syötteenä. Mysqldump mahdollistaa myös syötteen lukemisen ja jopa sen muokkaamisen ennen tallennusta.  


Mysqldump ohjelmaa ei ole tarkoitettu tietokantojen varmuuskopiointiin jotka sisältävät valtavan määrän dataa. Suuret datamäärät voivat varmuuskopiota tehdessä vielä tapahtua siedettävässä ajassa, mutta niiden palauttaminen voi viedä aikaa ja palvelimen suorituskykyä johtuen yksittäisistä SQL-komennoista, palvelimen levylle tallentamisesta ja indeksien luomisesta. Tuotantoympäristöön tarkoitettu mysqlbackup-asiakasohjelmalla (maksullisen Enterprise-version mukana) kyetään kopioimaan tehokkaasti suuriakin määriä dataa kuitenkaan rajoittamatta tietokannan antamia palveluita.
Mysqldump ohjelmaa ei ole tarkoitettu valtavan määrän dataa sisältävien tietokantojen varmuuskopiointiin. Suuret datamäärät voivat varmuuskopiota tehdessä vielä tapahtua siedettävässä ajassa, mutta niiden palauttaminen voi viedä aikaa ja palvelimen suorituskykyä johtuen yksittäisistä SQL-komennoista, palvelimen levylle tallentamisesta ja indeksien luomisesta. Tuotantoympäristöön tarkoitetulla mysqlbackup-asiakasohjelmalla (maksullisen Enterprise-version mukana) kyetään kopioimaan tehokkaasti suuriakin määriä dataa kuitenkaan rajoittamatta tietokannan antamia palveluita.


=== Syntaksi ===
=== Syntaksi ===
Rivi 19: Rivi 19:
Otettaessa yhteyttä MySQL-palvelimeen on muistettava antaa tarvittavat käyttäjäoptiot (muista esimerkeistä jätetty tarkoituksella pois):
Otettaessa yhteyttä MySQL-palvelimeen on muistettava antaa tarvittavat käyttäjäoptiot (muista esimerkeistä jätetty tarkoituksella pois):


<pre>shell>mysqldump -u root -psalasana db_nimi [taulu_nimi...]</pre>
<pre>shell> mysqldump -u root -psalasana db_nimi [taulu_nimi...]</pre>


Jos lyhyet optiotunnukset eivät toimi:
Jos lyhyet optiotunnukset eivät toimi:
Rivi 31: Rivi 31:


<pre>shell>mysqldump [optiot] db_nimi [taulut] > tallennettavan-tiedoston-nimi.sql</pre>
<pre>shell>mysqldump [optiot] db_nimi [taulut] > tallennettavan-tiedoston-nimi.sql</pre>


== Mysql-asiakasohjelma ==
== Mysql-asiakasohjelma ==
Rivi 43: Rivi 42:
== Esimerkkejä ==
== Esimerkkejä ==


Tietokannan db_nimi kopionti tiedostoon nimeltä varmuus-kopio.sql:
Tietokannan db_nimi kopionti tiedostoon nimeltä varmuuskopio.sql:


<pre>shell> mysqldump db_nimi > varmuus-kopio.sql</pre>
<pre>shell> mysqldump db_nimi > varmuuskopio.sql</pre>


Samaisen tietokannan palauttaminen:
Samaisen tietokannan palauttaminen:


<pre>shell> mysql db_nimi < varmuus-kopio.sql</pre>
<pre>shell> mysql db_nimi < varmuuskopio.sql</pre>


Toinen toimiva tapa palauttaa varmuuskopio:
Toinen toimiva tapa palauttaa varmuuskopio:


<pre>shell> mysql -e "source /hakemisto-polku-tiedostoon/varmuus-kopio.sql" db_nimi</pre>
<pre>shell> mysql -e "source /hakemisto-polku-tiedostoon/varmuuskopio.sql" db_nimi</pre>


mysqldumpia voidaan käyttää tietokannan kopioimiseen toisesta MySQL-palvelimesta toiseen:
mysqldumpia voidaan käyttää tietokannan kopioimiseen toisesta MySQL-palvelimesta toiseen:
Rivi 66: Rivi 65:


<pre>shell> mysqldump --all-databases > ihan_kaikki_kannat.sql</pre>
<pre>shell> mysqldump --all-databases > ihan_kaikki_kannat.sql</pre>


== Katso myös ==
== Katso myös ==


*[[MySQL:n_käyttöönotto | MySQL:n käyttöönotto]]
*[[MySQL:n käyttöönotto]]
*[[Putkitus]]
*[[Putkitus]]
*[[Komentojen_ajastaminen | Komentojen ajastaminen]]
*[[Komentojen ajastaminen]]





Nykyinen versio 13. elokuuta 2016 kello 22.09

MySQL-tietokantojen varmuuskopiointia ja kopioiden palauttamista hallinnoidaan MySQL:n omien asiakasohjelmien kautta. Graafiset käyttöliittymät tulevat toistuvissa rutiineissa raskaiksi käyttää, joten lähes ainoa tapa hoitaa automaattinen varmuuskopiointi on käyttö komentoriviltä. Tässä artikkelissa käsitellään mysqldump- ja mysql-asiakasohjelmia.

Mysqldump-asiakasohjelma[muokkaa]

Mysqldump on komentoriviltä kutsuttava asiakasohjelma, joka tulostaa määritellyt tietokannat haluttuun tiedostoon SQL-syntaksissa. Mysqldump ei käsittele dataa binäärimuodossa, kuten datatiedostoina, vaan selväkielisenä syötteenä. Mysqldump mahdollistaa myös syötteen lukemisen ja jopa sen muokkaamisen ennen tallennusta.

Mysqldump ohjelmaa ei ole tarkoitettu valtavan määrän dataa sisältävien tietokantojen varmuuskopiointiin. Suuret datamäärät voivat varmuuskopiota tehdessä vielä tapahtua siedettävässä ajassa, mutta niiden palauttaminen voi viedä aikaa ja palvelimen suorituskykyä johtuen yksittäisistä SQL-komennoista, palvelimen levylle tallentamisesta ja indeksien luomisesta. Tuotantoympäristöön tarkoitetulla mysqlbackup-asiakasohjelmalla (maksullisen Enterprise-version mukana) kyetään kopioimaan tehokkaasti suuriakin määriä dataa kuitenkaan rajoittamatta tietokannan antamia palveluita.

Syntaksi[muokkaa]

Mysqldumpin syntaksi on lyhyesti seuraava:

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

Käyttäjätiedot[muokkaa]

Otettaessa yhteyttä MySQL-palvelimeen on muistettava antaa tarvittavat käyttäjäoptiot (muista esimerkeistä jätetty tarkoituksella pois):

shell> mysqldump -u root -psalasana db_nimi [taulu_nimi...]

Jos lyhyet optiotunnukset eivät toimi:

--user=user_name
--password[=password]

Tiedostoon tallentaminen[muokkaa]

Varsinainen tiedostoon tallennus on hyvin yksinkertaista, varsinkin jos syötteen ohjaaminen on tuttua entuudestaan:

shell>mysqldump [optiot] db_nimi [taulut] > tallennettavan-tiedoston-nimi.sql

Mysql-asiakasohjelma[muokkaa]

SQL-syntaksia noudattavien varmuuskopiotiedostojen palauttaminen tapahtuu mysql-asiakasohjelman kautta.

Esimerkki varmuuskopion palauttamisesta. Huomioi ohjausmerkin suunta:

shell> mysql tietokanta < kopio.sql

Esimerkkejä[muokkaa]

Tietokannan db_nimi kopionti tiedostoon nimeltä varmuuskopio.sql:

shell> mysqldump db_nimi > varmuuskopio.sql

Samaisen tietokannan palauttaminen:

shell> mysql db_nimi < varmuuskopio.sql

Toinen toimiva tapa palauttaa varmuuskopio:

shell> mysql -e "source /hakemisto-polku-tiedostoon/varmuuskopio.sql" db_nimi

mysqldumpia voidaan käyttää tietokannan kopioimiseen toisesta MySQL-palvelimesta toiseen:

shell> mysqldump --opt db_nimi | mysql --host=etä_palvelin_nimi -C db_nimi

Useiden tietokantojen varmuuskopiointi samalla kertaa:

shell> mysqldump --databases db_nimi1 [db_nimi2 ...] > kaikki_kannat.sql

Kaikkien tietokantojen kopionti optiolla --all-databases:

shell> mysqldump --all-databases > ihan_kaikki_kannat.sql

Katso myös[muokkaa]


Lähteet[muokkaa]

  1. http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html
  2. http://dev.mysql.com/doc/mysql-enterprise-backup/3.6/en/index.html