Pravidelné zálohování databáze je jedním z klíčových kroků po uvedení projektu do provozu. Frekvence zálohování může být jednou za den nebo týden. Denní záloha je upřednostňována pro aplikace, ve kterých jsou změny databáze častější. V případě databází s vysokou dostupností je třeba zvážit vhodné nastavení clusteru namísto vertikálního škálování. Tento výukový program vysvětluje použití
Poznámky :Tento výukový program pokrývá pouze nejběžnější možnosti používané s
Místní zálohování
Záloha - Tato část vysvětluje vytvoření místní zálohy v souboru exportem jedné nebo více databází.
Oprávnění -
- SELECT – pro výpis tabulek
- ZOBRAZIT ZOBRAZENÍ – vypíše zobrazení
- TRIGGER – pro výpis spouštěčů
- ZAMKNOUT TABULKY – v případě, že není použita možnost --single-transaction
Příkaz – Níže je uvedeno použití
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Příklady použití běžného příkazu jsou uvedeny níže. Tyto ukázkové příkazy používají uživatele enterprise pořizovat zálohy databáze podniku . V případě, že uživatelský účet používá auth_socket, není nutné zadávat uživatele a heslo. algoritmus pro přihlášení k serveru MySQL. Uživatel systému má přímý přístup k databázi. Další informace o algoritmech hesel naleznete v části Jak používat nativní heslo s MySQL 5.7 a Jak nainstalovat MySQL 8 na Ubuntu.
Poznámky :Není nutné používat volbu -p v případě, že uživateli není přiděleno žádné heslo.
Níže jsou uvedeny příklady zálohování jedné databáze s uživatelským jménem, hostitelem a portem. Heslo nesmí být poskytnuto s těmito příkazy z bezpečnostních důvodů. Můžete zadat heslo pro
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Níže jsou uvedeny příklady zálohování více databází s uživatelským jménem, hostitelem a portem.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Níže je uveden příklad zálohování všech databází s uživatelským jménem, hostitelem a portem.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Uživatelé PowerShellu ve Windows budou potřebovat jiný příkaz, jak je uvedeno níže.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
Výše uvedené příkazy exportují vybranou databázi a tabulky do umístění souboru zadaného v příkazu.
Zálohování databáze
Tato část vysvětluje přenesení zálohy databáze do jiné databáze používané pro účely zálohování pomocí Shell Pipes. Můžeme buď exportovat databázi do místního souboru a pak tento soubor použít k importu do jiné databáze nebo přímo exportovat do jiné databáze pomocí shell pipe.
Níže uvedený příkaz lze použít k exportu databáze přímo do jiné databáze. Před provedením příkazu se také ujistěte, že máte přístup k oběma serverům.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
Takto můžeme exportovat nebo zálohovat databázi.