Regelmæssig backup af databasen er et af de afgørende trin efter at have gjort projektet live. Sikkerhedskopieringsfrekvensen kan enten være én gang om dagen eller ugen. Den daglige backup foretrækkes til de applikationer, hvor databaseændringer er hyppigere. I tilfælde af højtilgængelige databaser skal passende klyngeopsætning overvejes i stedet for vertikal skalering. Denne vejledning forklarer brugen af
Noter :Denne vejledning dækker kun de mest almindelige muligheder, der bruges med
Lokal sikkerhedskopiering
Sikkerhedskopi - Dette afsnit forklarer at tage lokal backup i en fil ved at eksportere enten enkelte eller flere databaser.
Tilladelser -
- VÆLG - for at dumpe tabeller
- VIS VISNING – for at dumpe visninger
- TRIGGER - for at dumpe triggere
- LÅS TABELLER - hvis --single-transaction option ikke bruges
Kommando - Nedenfor nævnt er brugen af
# 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>
Eksemplerne på at bruge den almindelige kommando er som nævnt nedenfor. Disse eksempelkommandoer bruger brugeren enterprise at tage sikkerhedskopier af databasen enterprise . Der er ingen grund til at angive bruger og adgangskode, hvis brugerkontoen bruger auth_socket algoritme til at logge ind på MySQL-serveren. Systembrugeren kan få direkte adgang til databasen. Du kan se Sådan bruger du indbygget adgangskode med MySQL 5.7 og Sådan installeres MySQL 8 på Ubuntu for at lære mere om adgangskodealgoritmer.
Noter :Der er ingen grund til at bruge indstillingen -p, hvis der ikke er tildelt nogen adgangskode til brugeren.
Nedenfor nævnt er eksemplerne på sikkerhedskopiering af en enkelt database med brugernavn, vært og port. Adgangskoden må ikke angives med disse kommandoer af sikkerhedsmæssige årsager. Du kan angive adgangskoden til
# 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
Nedenfor er eksemplerne på sikkerhedskopiering af flere databaser med brugernavn, vært og port.
# 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
Nedenfor nævnt er eksemplet til at sikkerhedskopiere alle databaser med brugernavn, vært og port.
# 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
PowerShell-brugerne på Windows skal bruge en anden kommando som nævnt nedenfor.
# 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
De ovennævnte kommandoer eksporterer den valgte database og tabeller til den filplacering, der er angivet i kommandoen.
Sikkerhedskopiering af database
Dette afsnit forklarer at tage databasesikkerhedskopien til en anden database, der bruges til sikkerhedskopiering ved hjælp af Shell Pipes. Vi kan enten eksportere databasen til den lokale fil og derefter bruge denne fil til at importere til en anden database eller direkte eksportere til en anden database ved hjælp af shell-pipes.
Den nedenstående kommando kan bruges til at eksportere databasen direkte til en anden database. Sørg også for, at du har adgang til begge servere, før du udfører kommandoen.
# 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
Sådan kan vi eksportere eller sikkerhedskopiere en database.