Back-ups maken van MySQL-databases en deze herstellen (Windows-versie)

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Werkomgeving

Mijn SQL
  • MySQL 8.0 Community-editie
Ramen
  • Vensters 11

Voorwaarden

Mijn SQL
  • MySQL 8.0
Ramen
  • Vensters 11
  • Vensters 10
Windows Server
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2

voorwaarde

  • Er is een database voor MySQL geïnstalleerd.
  • De database waarvan een back-up moet worden gemaakt, bestaat al.
  • U hebt omgevingsvariabelen ingesteld zodat u mysql kunt uitvoeren vanaf de opdrachtprompt.

Wat zijn de soorten back-ups?

Hoewel MySQL hier niet in detail wordt besproken, heeft het de volgende soorten back-ups:

Back-upopdrachtenBack-upgegevenstypenOpmerkingen
mysqldump Logische back-ups Een eeuwenoude back-upmethode. De GUI maakt hier ook gebruik van
mysqlpump Logische back-ups Verbeterde versie van mysqldump
MySQL Shell Instance Dump Utility en Dump Loading Utility Logische back-ups De meest recente logische back-up op dit moment
Percona XtraBackup Fysieke back-ups Ondersteuning van derden voor fysieke back-up
KLOON PLUG-IN Fysieke back-ups MySQL officiële fysieke back-ups. U moet echter wel een plug-in toevoegen.

Back-ups maken van databases met de GUI (MySQL Workbench)

Als u veilig in de GUI wilt werken zonder opdrachten te gebruiken, kunt u een back-up maken met MySQL Workbench. Het type back-up dat door MySQL Workbench wordt uitgevoerd, is "mysqldump".

Start MySQL Workbench.

Selecteer de verbinding met de database waarvan u een back-up wilt maken.

Selecteer met de database waarvan u een back-up wilt maken het tabblad Beheer in de navigator aan de linkerkant en selecteer vervolgens Gegevensexport.

Het scherm Gegevens exporteren wordt geopend. Het scherm is redelijk breed, dus vouw het venster uit tot je rechtsonder de knop "Start Export" ziet.

Selecteer eerst de databases waarvan u een back-up wilt maken. U kunt er ook meer dan één selecteren.

In "Te exporteren objecten" kunt u ervoor kiezen om ook een back-up te maken van procedures en triggers. Dit veld is optioneel.

In "Exportopties" kunt u de volgende twee opties selecteren.

Type omschrijving
Exporteren naar projectmap dumpen Uitvoer naar een opgegeven map als een tabel- of procedurebestand.
Exporteren naar zelfstandig bestand Sluit alles in één bestand in en voer het uit.

Het maakt niet uit op welke manier je uitvoert. De bovenstaande selectie is eenvoudig te verwijderen als u alleen een specifieke tabel wilt herstellen. De onderstaande selectie wordt uitgevoerd naar één bestand, waardoor het gemakkelijker wordt om bestanden te verplaatsen en te beheren als een database-eenheid. In dit geval heb ik het volgende geselecteerd.

Klik na het instellen van de instellingen op de knop "Start Export" in de rechterbenedenhoek om de export te starten.

De export start en wordt voltooid.

Als u het als een enkel bestand uitvoert, ziet het er als volgt uit:

Als u naar een map exporteert, ziet het er als volgt uit:

Een database herstellen met de GUI (MySQL Workbench)

Open MySQL Workbench, selecteer een verbinding, selecteer het tabblad Beheer in de Navigator aan de linkerkant en selecteer Gegevens importeren/herstellen. Omdat er "Import/Restore" staat, kunt u een nieuwe database maken van het geëxporteerde bestand of de oorspronkelijke database overschrijven.

Vouw het venster uit totdat u de knop "Start Import" in de rechterbenedenhoek ziet.

Selecteer "Importopties" volgens het geëxporteerde bestandsformaat. Omdat ik deze keer als één bestand heb geëxporteerd, heb ik hieronder "Importeren uit zelfstandig bestand" geselecteerd en het geëxporteerde bestand opgegeven.

Selecteer het schema (database) waarnaar u wilt herstellen. U kunt een bestaande database herstellen of deze herstellen als een nieuwe database via de knop "Nieuw" aan de rechterkant.

Nadat u de specificaties hebt opgegeven, klikt u rechtsonder op de knop "Import starten" om het herstel te starten.

Zodra het herstel is voltooid, moet u ervoor zorgen dat uw gegevens terug zijn.

Maak een account aan voor databaseback-up op commando

Er is geen probleem als u een enkele opdracht uitvoert en er een back-up van maakt, maar als u de opdracht bijvoorbeeld van tevoren als bestand voorbereidt en uitvoert, moet u het wachtwoord in platte tekst schrijven, dus het is veiliger om een apart account aan te maken voor het uitvoeren van back-ups.

Sommige machtigingen die nodig zijn voor back-ups kunnen toenemen of afnemen, afhankelijk van de vereiste informatie.

  • GEBEURTENIS
  • TAFELS VERGRENDELEN
  • SELECTEREN
  • TOON WEERGAVE

Als je het met een commando maakt, ziet het er als volgt uit. Gebruik het opdrachtregelprogramma MySQL.

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

voorbeeld

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

Mapmachtigingen voor de back-upbestemming

De machtigingen van de map waarin het back-upbestand is opgeslagen, moeten op dezelfde manier worden ingesteld als de machtigingen voor het uitvoeren van de opdracht. Als u de opdracht uitvoert met beheerdersrechten, hoeft u geen extra machtigingen voor de map in te stellen.

Een back-up maken van een database met de opdracht (mysqldump)

Er zijn verschillende back-ups per opdracht, maar deze keer zullen we een back-up maken met "mysqldump", die al heel lang wordt gebruikt en stabiel is.

Klik met de rechtermuisknop op het menu Start om Terminal (opdrachtprompt) te starten. Merk op dat het niet "MySQL 8.0 Command Line Client" is.

U kunt er een back-up van maken met de volgende opdracht:

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

voorbeeld

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 Als u dezelfde tekencode opgeeft als bij het maken van een back-up in de GUI, is deze hetzelfde als bij het maken van een back-up in de GUI. Op deze manier kun je het ook importeren in de GUI.
  • Gebruik geen spatie tussen het wachtwoordveld en -p het wachtwoord.
  • Als u ook tabelruimte-informatie wilt uitvoeren, --no-tablespaces verwijdert u . In dat geval moeten de machtigingen van de actieve gebruiker . PROCESS

Er wordt een back-upbestand gemaakt op de opgegeven locatie.

Een database herstellen met het commando (mysqldump)

De bestanden waarvan een back-up wordt gemaakt door mysqldump hebben een indeling die in SQL kan worden uitgevoerd, dus u hoeft alleen maar de doel-SQL uit te voeren. Ik denk dat de meeste herstelbewerkingen handmatig worden gedaan, dus er is geen probleem als je het als root-account uitvoert.

Als u het wilt uitvoeren vanuit een opdracht, voert u het uit op de opdrachtprompt in plaats van PowerShell. Dit komt omdat het symbool niet kan worden gebruikt in < PowerShell.

Voer de volgende opdracht uit:

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

voorbeeld

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

Geautomatiseerde databaseback-ups

Voor Windows is het gebruikelijk om de Taakplanner te gebruiken. Maak eerst een batchbestand aan. Maak een vleermuisbestand, voer de inhoud in zoals deze is geback-upt door de opdracht en sla het op. Tekencodering wordt opgeslagen met Shift-JIS. De locatie en bestandsnaam van het batchbestand zijn willekeurig.

Registreer u bij Taakplanner. Klik met de rechtermuisknop op het menu Start en selecteer Computerbeheer.

Selecteer in het menu aan de linkerkant Computerbeheer > Systeemwerkset > Taakplanner > Taakplannerbibliotheek. Selecteer "Taak aanmaken..." in het menu aan de rechterkant.

Configureer het tabblad Algemeen. "Naam" verschijnt in de lijst met taken, dus voer een naam in die gemakkelijk te begrijpen is. Vink in de beveiligingsopties "Uitvoeren ongeacht of de gebruiker is aangemeld of niet" aan.

Op het tabblad "Trigger" kunt u instellen wanneer u de back-up wilt uitvoeren. Stel deze instelling in op basis van uw bewerking.

Stel op het tabblad "Bewerking" in om het batchbestand dat u zojuist hebt gemaakt te starten.

Nadat u ze allemaal hebt ingesteld, bevestigt u met de OK-knop.

Voer uw wachtwoord in om u te registreren om onder het opgegeven account te werken.

Controleer daarna of de back-up op het opgegeven tijdstip wordt uitgevoerd.