Varnostno kopiranje in obnavljanje baz podatkov MySQL (različica Windows)

Stran posodobljena :
Datum ustvarjanja strani :

Delovno okolje

MySQL
  • MySQL 8.0 Izdaja skupnosti
Windows
  • Windows 11

Predpogoji

MySQL
  • MySQL 8.0
Windows
  • Windows 11
  • Windows 10
Windows Server
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2

Pogoj

  • Nameščena je baza podatkov za MySQL.
  • Podatkovna zbirka, ki jo je treba varnostno kopirati, že obstaja.
  • Nastavili ste spremenljivke okolja, tako da lahko zaženete mysql iz ukaznega poziva.

Katere so vrste varnostnih kopij?

Čeprav tukaj ni podrobno obravnavano, ima MySQL naslednje vrste varnostnih kopij:

Ukazi za varnostno kopiranjePodatkovni tipiOpombe
mysqldump Logične varnostne kopije Starodavna metoda varnostnega kopiranja. Grafični uporabniški vmesnik uporablja tudi to
MySQLPUMP Logične varnostne kopije Izboljšana različica mysqldump
MySQL Shell Primer odlagališča pripomoček in pripomoček za nalaganje odlagališča Logične varnostne kopije Najnovejša logična varnostna kopija v tem trenutku
Percona XtraBackup Fizične varnostne kopije Podpora tretjih oseb za fizično varnostno kopiranje
VTIČNIK KLONIRANJA Fizične varnostne kopije MySQL uradne fizične varnostne kopije. Vendar pa morate dodati vtičnik.

Varnostno kopiranje zbirk podatkov z grafičnim uporabniškim vmesnikom (MySQL Workbench)

Če želite varno delovati v grafičnem uporabniškem vmesniku brez uporabe ukazov, lahko varnostno kopirate z delovno mizo MySQL. Vrsta varnostne kopije, ki jo izvaja MySQL Workbench, bo "mysqldump".

Zaženite delovno mizo MySQL.

Izberite povezavo, ki vsebuje zbirko podatkov, ki jo želite varnostno kopirati.

Ko želite varnostno kopirati zbirko podatkov, v krmarju na levi izberite zavihek Skrbništvo in nato izberite Izvoz podatkov.

Odpre se zaslon Izvoz podatkov. Zaslon je razmeroma širok, zato razširite okno, dokler v spodnjem desnem kotu ne vidite gumba »Začni izvoz«.

Najprej izberite zbirke podatkov, ki jih želite varnostno kopirati. Izberete lahko tudi več kot enega.

V razdelku »Predmeti za izvoz« lahko izberete tudi varnostno kopiranje postopkov in sprožilcev. To polje ni obvezno.

V "Možnosti izvoza" lahko izberete naslednji dve možnosti.

Opis vrste
Izvoz v mapo »Dump Project« Izhod v določeno mapo kot tabela ali proceduralna datoteka.
Izvoz v samostojno datoteko Vdelajte vse v eno datoteko in izhod.

Ni pomembno, na kakšen način izpisujete. Zgornjo izbiro lahko enostavno odstranite, če želite obnoviti samo določeno tabelo. Spodnji izbor se prikaže v eni datoteki, kar olajša premikanje in upravljanje datotek kot enote zbirke podatkov. V tem primeru sem izbral naslednje.

Ko nastavite nastavitve, kliknite gumb "Začni izvoz" v spodnjem desnem kotu, da začnete izvoz.

Izvoz se začne in konča.

Če ga pošljete kot eno datoteko, bo videti tako:

Če izvozite v mapo, bo videti tako:

Obnovitev zbirke podatkov z grafičnim uporabniškim vmesnikom (MySQL Workbench)

Odprite MySQL Workbench, izberite povezavo, izberite zavihek Skrbništvo v Navigatorju na levi in izberite Uvoz/obnovitev podatkov. Kot piše "Uvoz / obnovitev", lahko ustvarite novo bazo podatkov iz izvožene datoteke ali prepišete izvirno bazo podatkov.

Razširite okno, dokler v spodnjem desnem kotu ne vidite gumba »Začni uvoz«.

Izberite »Možnosti uvoza« glede na izvoženo obliko datoteke. Ker sem tokrat izvozil kot eno datoteko, sem spodaj izbral »Uvozi iz samostojne datoteke« in določil izvoženo datoteko.

Izberite shemo (zbirko podatkov), v katero želite obnoviti. V obstoječo bazo podatkov lahko obnovite ali jo obnovite kot novo bazo podatkov z gumbom »Novo« na desni.

Ko določite specifikacije, kliknite gumb »Začni uvoz« v spodnjem desnem kotu, da začnete obnovo.

Ko je obnovitev končana, se prepričajte, da so podatki nazaj.

Ustvarjanje računa za varnostno kopiranje zbirke podatkov z ukazom

Ni problema, če izvedete en sam ukaz in ga varnostno kopirate, toda na primer, če vnaprej pripravite ukaz kot datoteko in ga izvedete, morate geslo napisati v navadnem besedilu, zato je varneje ustvariti ločen račun za izvajanje varnostne kopije.

Nekatera dovoljenja, potrebna za varnostno kopiranje, se lahko povečajo ali zmanjšajo, odvisno od zahtevanih informacij.

  • DOGODEK
  • ZAKLEPANJE TABEL
  • IZBRATI
  • POKAŽI POGLED

Če ga ustvarite z ukazom, bo izgledal takole. Uporabite orodje ukazne vrstice MySQL.

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

primer

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

Dovoljenja za mapo za cilj varnostnega kopiranja

Dovoljenja mape, v kateri je shranjena datoteka varnostne kopije, morajo biti nastavljena na enak način kot dovoljenja za izvajanje ukaza. Če ukaz zaženete s skrbniškimi pravicami, vam ni treba nastaviti dodatnih dovoljenj za mapo.

Varnostno kopiranje zbirke podatkov z ukazom (mysqldump)

Obstaja več varnostnih kopij po ukazu, vendar bomo tokrat varnostno kopirali z "mysqldump", ki se že dolgo uporablja in je stabilen.

Z desno miškino tipko kliknite meni Start, da zaženete Terminal (ukazni poziv). Upoštevajte, da to ni "MySQL 8.0 Command Line Client".

Varnostno ga lahko varnostno kopirate z naslednjim ukazom:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

primer

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 Če določite isto kodo znaka kot pri varnostnem kopiranju v grafičnem uporabniškem vmesniku, bo enaka kot pri varnostnem kopiranju v grafičnem uporabniškem vmesniku. Tako ga lahko uvozite tudi v grafičnem uporabniškem vmesniku.
  • Med polje za geslo in -p geslom ne vključite presledka.
  • Če želite izpisati tudi informacije o prostoru za tabele, --no-tablespaces odstranite . V tem primeru morajo biti dovoljenja delujočega uporabnika . PROCESS

Na določenem mestu bo ustvarjena datoteka varnostne kopije.

Obnovitev baze podatkov z ukazom (mysqldump)

Datoteke, ki jih varnostno kopira mysqldump, so v obliki, ki jo je mogoče izvesti v SQL, zato morate le izvesti ciljni SQL. Mislim, da se večina obnovitev opravi ročno, zato ni problema, če ga zaženete kot korenski račun.

Če ga želite zagnati iz ukaza, ga zaženite v ukaznem pozivu namesto v lupini PowerShell. To je zato, ker simbola ni mogoče uporabiti v < lupini PowerShell.

Zaženite naslednji ukaz:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

primer

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

Samodejne varnostne kopije zbirk podatkov

V operacijskem sistemu Windows je običajno, da uporabljate razporejevalnik opravil. Najprej ustvarite paketno datoteko. Ustvarite datoteko bat, vnesite vsebino, kot je bila varnostno kopirana z ukazom, in jo shranite. Kodiranje znakov se shrani s funkcijo Shift-JIS. Mesto in ime datoteke paketne datoteke sta poljubna.

Registrirajte se z razporejevalnikom opravil. Z desno miškino tipko kliknite meni Start in izberite Upravljanje računalnika.

V meniju na levi izberite Upravljanje računalnika > sistemska orodja > razporejevalnik opravil > knjižnica razporejevalnika opravil. V meniju na desni izberite »Ustvari nalogo ...«.

Konfigurirajte zavihek Splošno. "Ime" se bo pojavilo na seznamu nalog, zato vnesite ime, ki je lahko razumljivo. V varnostnih možnostih označite »Zaženi ne glede na to, ali je uporabnik prijavljen ali ne«.

Na zavihku »Sprožilec« lahko nastavite, kdaj želite izvesti varnostno kopiranje. To nastavitev nastavite glede na svoje delovanje.

Na zavihku »Delovanje« ga nastavite tako, da zažene paketno datoteko, ki ste jo pravkar ustvarili.

Ko nastavite vsakega, potrdite z gumbom OK.

Vnesite geslo, da se registrirate za zagon pod določenim računom.

Po tem preverite, ali bo varnostna kopija izvedena ob določenem času.