Backup und Restore
Ziele
- In diesem Projekt werden Sie eine Datenbank Cluster erstellen.
- Sie werden die Datenbank mit Daten befüllen.
- Sie werden Daten aus der Datenbank löschen und dann ein Backup mithilfe von Backtracking einspielen.
Hilfsmittel
- Sollten Sie Probleme haben die Aufgaben zu lösen, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.
- Versuchen Sie die Aufgaben erst einmal ohne die Lösungshilfen zu bearbeiten.
Vorbereitung - Datenbank erstellen
- Erstellen Sie eine Amazon Aurora MySQL Datenbank mit Multi-AZ Deployment
- Name:
multi-az-db
- Instanz:
db.t3.medium
- Name:
- Denken Sie an den Admin-Nutzer und die Netzwerkeinstellungen
-
Konfigurieren Sie zusätzlich eine Backup Retention Period und aktivieren sie Backtracking
Backup Konfiguration
- Backup retention period: Wählen Sie 1 Day
- Enable Backtrack: Aktivieren Sie die Option indem die auf die Checkbox klicken.
- Target Backtrack window: Schreiben Sie 2 in die Textbox.
Lösung (Klicken Sie auf den Pfeil für eine Schritt für Schritt Anleitung)
- Suchen Sie in der Management Console nach RDS
- Klicken Sie auf "Create database"
Datenbank Instanz Einstellungen
- Type: Amazon Aurora
- Edition: Amazon Aurora MySQL-Compatible Edition
- Capacity Type: Provisioned
- DB cluster identifier: multi-az-db
- Master username:
admin
- Master password: Vergeben Sie ein Passwort und notieren Sie es sich.
- DB instance class: Burstable classes (includes t classes)
- Dropdown: db.t3.medium
Multi AZ deployment: Create an Aurora Replica or Reader ... auswählen.
- Virtual private cloud (VPC): None-labs-vpc
- Subnet Groups: Wählen Sie die Subnetz Gruppe None-labs-rds-subnet-group aus.
- VPC security groups: Wählen Sie die Security Gruppe None-labs-rds-sec-group aus und entfernen Sie die Gruppe
default.
- Backup retention period: Wählen Sie 1 Day
- Enable Backtrack: Aktivieren Sie die Option.
- Target Backtrack window: Schreiben Sie 2 in die Textbox.
Aufgabe 1 - multi-az-db
- Snapshots.
- Prüfen Sie, dass Sie sich von der VSCode Umgebung mit der Datenbank
multi-az-db
verbinden können - Verwenden Sie folgenden Befehl und ersetzten Sie die Felder
${USER}
und${URL_TO_DB}
mysql -u ${USER} -p -h ${URL_TO_DB}
Lösung (Klicken Sie auf den Pfeil für eine Schritt für Schritt Anleitung)
- Die URL zur Datenbank finden Sie in der Management Console
- Klicken Sie auf das Regional cluster mit dem Namen
multi-az-db
- Im Tab Connectivity & security unter Endpoints
- Kopieren Sie die URL der Writer instance
- Führen Sie anschließend den Befehl im Terminal im VSCode aus
- Laden Sie die Daten mit dem Script
run_load_data.sh
in die Datenbank - Sie müssen vorher noch die Variablen anpassen
Lösung (Klicken Sie auf den Pfeil für eine Schritt für Schritt Anleitung)
- Öffnen Sie in der linken Navigation die Datei
run_load_data.sh
- Passen Sie die Variablen an (Zeile 4-6, ohne Leerzeichen)
- Speichern Sie die Datei
- Führen Sie im Terminal folgenden Befehl aus:
cd scripts && ./run_load_data.sh
- Dies dauert ein paar Sekunden. Sie sollten zum Schluss eine kleine Tabelle
mit zwei Einträgen sehen
+--------+----------+ | gender | count(*) | +--------+----------+ | M | 179973 | | F | 120051 | +--------+----------+
- Öffnen Sie in der Management Console Ihr Datenbank-Cluster.
- Klicken Sie auf den Reiter Maintenance & Backup.
- Klicken Sie am Ende der Website unter Snapshots auf Take Snapshot.
- Geben Sie dem Snapshot den Namen first-snapshot.
- Klicken Sie nun "Take Snapshot".
- Es wird nun ein Snapshot der Daten Ihres Datenbank-Clusters erzeugt, dies kann einige Minuten dauern.
Aufgabe 2 - multi-az-db
- Löschen von Daten.
- Starten Sie einen Befehl, der alle 2 Sekunden eine Query an die Datenbank sendet
- Verwenden Sie dafür das Script
run_read_every_2_sec.sh
- Sie müssen vorher noch die Variablen anpassen
Lösung (Klicken Sie auf den Pfeil für eine Schritt für Schritt Anleitung)
- Passen Sie im Script
run_read_every_2_sec.sh
ebenfalls die Variablen an - Führen Sie das Script aus:
./run_read_every_2_sec.sh
- Öffnen sie nun ein neues Terminal, dies können Sie tun indem Sie rechts in der Navigationsleiste Ihres Terminals auf "+" drücken.
- Starten Sie nun einen Befehl, der Daten aus der Datenbank löscht.
- Verwenden Sie dafür das Script
run_erase_data.sh
. - Sie müssen vorher noch die Variablen anpassen.
Lösung (Klicken Sie auf den Pfeil für eine Schritt für Schritt Anleitung)
- Passen Sie im Script
run_erase_data.sh
ebenfalls die Variablen an - Führen Sie das Script aus:
./run_erase_data.sh
- Es werden nun alle Männer aus der Datenbank gelöscht.
- Wenn das Script beendet wurde, wird ein Zeitstempel ausgegeben, beispielsweise "17.03.2022 13:37", notieren Sie sich diesen, da er für eine spätere Aufgabe höchst wichtig ist.
- Beobachten Sie nun den Output des Scripts
run_read_every_2_sec.sh
- Nachdem das Löschen erfolgreich beendet wurde, sollten Sie folgenden Output sehen:
+--------+----------+ | gender | count(*) | +--------+----------+ | F | 120051 | +--------+----------+
Aufgabe 3 - multi-az-db
- Backtracking.
- Sie haben in Aufgabe 2 erfolgreich Daten aus Ihrer Datenbank gelöscht.
- Sie wollen nun die Datenbank zurückspulen.
- Öffnen Sie in der Management Console Ihr Datenbank Cluster.
- Klicken Sie oben rechts auf "Actions".
- Wählen Sie "Backtrack".
- Wählen Sie einen Zeitstempel aus, der Kurz vor dem Löschen der Daten liegt, den Zeitstempel dafür sollten Sie sich notiert haben. Wenn das löschen Ihrer Daten beispielsweise um "17.03.2022 13:37" beendet wurde, könnten sie "17.03.2022 13:35" wählen.
- Klicken Sie nun "Backtrack DB Cluster".
- Nun wird Ihr Datenbank-Cluster zurückgespult, dieses Vorgang kann ein paar Minuten dauern. Sie erkennen dies daran, dass der Status Ihres Datenbank-Clusters backtracking ist.
- Beobachten Sie während dem Backtracking nun den Output des Scripts
run_read_every_2_sec.sh
- Sie sollten beobachten können, dass Ihr Datenbank Cluster für kurze Zeit nicht erreichbar ist und dann wieder folgenden Output sehen:
+--------+----------+ | gender | count(*) | +--------+----------+ | M | 179973 | | F | 120051 | +--------+----------+
- Sie haben erfolgreich Ihr Datenbank-Cluster Zurückgespult.
Ende
- Löschen Sie das Datenbank-Cluster