MySQL-tietokannan varmuuskopiointi ja palautus
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.
Mysqldump-asiakasohjelma
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.
Syntaksi
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
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
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
SQL-syntaksia noudattavien varmuuskopiotiedostojen palauttaminen tapahtuu mysql-asiakasohjelman kautta.
Esimerkki varmuuskopion palauttamisesta. Huomioi ohjausmerkin suunta:
shell> mysql tietokanta < kopio.sql
Esimerkkejä
Tietokannan db_nimi kopionti tiedostoon nimeltä varmuus-kopio.sql:
shell> mysqldump db_nimi > varmuus-kopio.sql
Samaisen tietokannan palauttaminen:
shell> mysql db_nimi < varmuus-kopio.sql
Toinen toimiva tapa palauttaa varmuuskopio:
shell> mysql -e "source /hakemisto-polku-tiedostoon/varmuus-kopio.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