So extrahieren Sie Tabellensicherungen aus der Full MySQL Dump -Datei

So extrahieren Sie Tabellensicherungen aus der Full MySQL Dump -Datei

Mysqldump ist ein Dienstprogramm, das von MySQL/Mariadb zur Sicherung von Datenbanken und Tabellen bereitgestellt wird. Im Allgemeinen nehmen wir regelmäßig eine vollständige Datenbank Datenbank. Einige Male mussten wir jedoch ein einzelnes oder 2-3 Tabellen aus der Backup wiederherstellen. Dann die Frage, ob eine bestimmte Tabelle aus der vollständigen Sicherungsdatei wiederhergestellt werden soll. Dieser Artikel hilft Ihnen dabei, die Sicherung von Tabellen aus der vollständigen Datenbanksicherungsdatei zu extrahieren. Außerdem können wir alle Tabellensicherungen in einzelnen Dateien pro Tabelle extrahieren.

Schritt 1 - Download MySQL Dump Split -Skript herunter

So teilen Sie eine vollständige MySQLDUMP -Datenbanksicherungsdatei in separate Tabellenspezifische Dateien -Sicherungs -Sicherungsdateien auf. Erstellen Sie eine Datei mit dem Namen Splitdb.Sch und kopieren Sie das folgende Skript darin.

#!/bin/bash #### # Split MySQL Dump SQL -Datei in einer Datei pro Tabelle # basierend auf http: // blog in eine Datei #.tty.NL/2011/12/28/Spliting-a-database-Dump #### Wenn [$#-LT 1]; dann echo "nutzung $ 0 DUPP_FILE [TABLE]" beenden Sie FI, wenn [$# -ge 2]; dann cSplit -s-fftable $ 1 "/-Tabellenstruktur für Tabelle/" "%-Tabellenstruktur für Tabelle '$ 2'%" "/-Tabellenstruktur für Tabelle/"%40103 Setzen Sie time_zone =@old_time_zone%1 "else cSplit -s -fftable $ 1"/ -Tabellenstruktur für Tabelle/"* fi [$? -Gl 0] || MV TABLE00 HEAD -DATEI = "LS -1 Tabelle* | Tail -n 1" if [$# -ge 2]; Dann mv $ file foot sonst cSplit -b '%d' -s -f $ file $ file "/40103 setzen *'; do name = "head -n1 $ file | cut -d $" x60 '-f2' cat Head $ Datei Fuß> "$ Name.SQL "DER RM -Kopffußtabelle*
123456789101112131415161718192021222324252627282930313233343536#!/bin/bash ##### Split MySQL Dump SQL -Datei in einer Datei pro Tabelle#basierend auf http: // blog in eine Datei#.tty.NL/2011/12/28/Spliting-a-database-Dump #### Wenn [$#-LT 1]; dann echo "nutzung $ 0 DUPP_FILE [TABLE]" exitfi if [$# -ge 2]; dann cSplit -s-fftable $ 1 "/-Tabellenstruktur für Tabelle/" "%-Tabellenstruktur für Tabelle '$ 2'%" "/-Tabellenstruktur für Tabelle/"%40103 Setzen Sie [E-Mail geschützt] _time_zone% 1 "else cSplit -s -fftable $ 1"/ -Tabellenstruktur für Tabelle/"* fi [$? -Gl 0] || MV TABLE00 HEAD File = 'ls -1 Tabelle* | Tail -n 1'if [$# -ge 2]; Dann MV $ Datei Footelse CSplit -b '%d' -s -f $ file $ file $ Datei "/40103 set [E -Mail geschützt] _time_zone/" * mv $ file 1 footfi für Datei in 'ls -1 Tabelle* '; do name = 'head -n1 $ file | Cut -d $ 'x60' -f2 'Cat Head $ Datei Fuß> "$ Name.SQL "DER RM -Kopffußtabelle*

Dieses Skript entnommen von https: // gist.Github.com/jasny/1608062.

Schritt 2 - Extrahieren Sie alle Tabellen aus Dump aus

In diesem Beispiel habe ich eine Dump -Datei mit dem Namen mydb.sql, was ich in kleinen Backups pro Tisch teilen möchte. Dafür habe ich ein neues Verzeichnis erstellt /opt/splitdb und über das obige Skript mit Namen kopiert Splitdb.Sch In diesem Verzeichnis. Verwenden Sie nun den folgenden Befehl, um alle Tabellen in einzelnen Sicherungsdateien zu extrahieren.

cd /opt /splitdb chmod +x splitdb.Sch ./splitdb.Sh mydb.SQL #do nicht mit dem Befehl "sh" ausgeführt  

Schritt 3 - Einzeltabelle aus Dump extrahieren

Wenn wir nur eine Tabelle extrahieren möchten, können wir den Befehl wie unten wie unten verwenden. Zum Beispiel möchte ich nur die genannte Tabelle teilen my_tbl1 Und my_tbl2. Es extrahiert die Sicherung im aktuellen Verzeichnis mit dem Namen my_tbl1.sql Und my_tbl2.sql.

cd /opt /splitdb chmod +x splitdb.sh sh splitdb.Sh mydb.SQL MY_TBL1 SH SPLITDB.Sh mydb.SQL my_tbl2