Comment extraire la sauvegarde des tableaux du fichier de vidage MySQL complet

Comment extraire la sauvegarde des tableaux du fichier de vidage MySQL complet

Mysqltump est un utilitaire fourni par MySQL / MARIADB pour sauvegarder les bases de données et les tables. Généralement, nous prenons régulièrement un vidage complet de la base de données et la maintenons et la maintenons. Mais parfois, nous devons récupérer une seule ou 2-3 tables à partir de la sauvegarde. Ensuite, la question de savoir comment restaurer un tableau spécifique à partir du fichier de sauvegarde complet. Cet article vous aidera à extraire la sauvegarde des tables à partir du fichier de sauvegarde de la base de données complète. De plus, nous pouvons extraire toutes les tables de sauvegarde dans des fichiers individuels par table.

Étape 1 - Téléchargez le script MySQL Dump Split

Pour diviser un fichier de sauvegarde de la base de données MySQLDUmp complète dans la sauvegarde des fichiers spécifiques de table séparés. Créer un fichier nommé Splitdb.shot et copier ci-dessous le script dedans.

#!/ bin / bash #### # Split MySQL Dump SQL Fichier en un fichier par table # basé sur http: // blog.tty.NL / 2011/12/28 / Splitting-a-database-dump #### if [$ # -lt 1]; puis écho "Utilisation 0 $ Dump_file [Table]" Exit fi if [$ # -ge 2]; puis csplit -s -fable 1 $ "/ - structure de table pour le tableau /" "% - structure de table pour la table '2 $%" "/ - Structure de table pour la table /" "% 40103 set time_zone = @ old_time_zone% 1 "else csplit -s -fable 1" / - structure de table pour la table / "* fi [$? -Eq 0] || Exit mv Table00 Head file = "LS -1 Table * | Tail -N 1" If [$ # -ge 2]; puis mv $ file pied else csplit -b '% d' -s -f $ fichier $ fichier "/ 40103 set time_zone = @ old_time_zone /" * mv $ file 1 pied fi pour fichier dans le fichier dans 'ls -1 table * '; Do name = "head -n1 $ fichier | Cut -d $" x60 '-f2' chat head $ file pied> "$ name.SQL "Table du pied de tête RM terminé *
12345678910111213141516171819202122232425262728293031323343536#!/ bin / bash ##### Split MySQL Dump SQL Fichier en un fichier par table # basé sur http: // blog.tty.NL / 2011/12/28 / Splitting-a-database-dump #### if [$ # -lt 1]; puis écho "Utilisation de 0 $ Dump_file [table]" exitfi if [$ # -ge 2]; puis csplit -s -fable 1 $ "/ - structure de table pour le tableau /" "% - structure de table pour la table '2 $%" "/ - Structure de table pour la table /" "% 40103 set [e-mail protégé] _time_zone% 1 "else csplit -s -fable 1 $" / - structure de table pour la table / "* fi [$? -Eq 0] || Exit MV Table00 Head Fichier = 'LS -1 Tableau * | Tail -n 1'if [$ #ge 2]; puis mv $ file footelse csplit -b '% d' -s -f $ file $ file "/ 40103 set [e-mail protégée] _time_zone /" * mv $ file 1 footfi pour le fichier dans la table LS -1 * * ';; Do name = 'head -n1 $ fichier | Cut -d $ 'x60' -f2 'Cat Head $ Fichier Foot> "$ Name.SQL "Table du pied de tête RM terminé *

Ce script tiré de https: // gist.github.com / jasny / 1608062.

Étape 2 - Extraire toutes les tables de Dump

Pour cet exemple, j'ai un fichier de vidage nommé mydb.SQL, que je veux diviser en petites sauvegardes par table. Pour cela, j'ai créé un nouveau répertoire / Opt / SplitDB et copié ci-dessus le script avec nom Splitdb.shot dans ce répertoire. Utilisez maintenant la commande suivante pour extraire toutes les tables dans des fichiers de sauvegarde individuels.

CD / OPT / SPLISSDB CHMOD + X SplitDB.shot ./ Splitdb.sh Mydb.SQL #do n'exécute pas avec la commande 'sh'  

Étape 3 - Extraire une seule table de décharge

Si nous voulons extraire une seule table, nous pouvons utiliser la commande comme ci-dessous. Par exemple, je souhaite diviser uniquement la table nommée my_tbl1 et my_tbl2. il extrait la sauvegarde dans le répertoire actuel avec le nom my_tbl1.SQL et my_tbl2.SQL.

CD / OPT / SPLISSDB CHMOD + X SplitDB.sh sh Splitdb.sh Mydb.SQL MY_TBL1 SH Splitdb.sh Mydb.SQL MY_TBL2