Récupération de base de données. Restauration de pages individuelles dans une base de données

Lire, comment récupérer une base de données MySQL perdue ou supprimée. Comment récupérer les tables de base de données MySQL endommagées à l'aide de myisamchk. La base de données MySQL est installée par défaut sur l'ordinateur dans un dossier sur le lecteur C :

C:\Program Files\MySQL\MySQL Server 5.7

Mais les données du tableau sont stockées dans des fichiers dans un autre dossier sur le lecteur C de l'ordinateur, à savoir :

L'emplacement de ces fichiers est indiqué dans le menu Statut du serveur de l'application MySQL Workbench, dans la section Répertoires du serveur.

Si vous devez restaurer les tables de la base de données, vous serez intéressé par le dossier contenant les données d'une base de données spécifique et les fichiers qui s'y trouvent.

Contenu:

Fichiers de base de données MySQL

MySQL est compatible avec un grand nombre de formats de fichiers, tels que : .sql, .arm, .cnf, .dbs, .ddl, .frm, .ibd, .ism, .mrg, .myd, .myi, .mysql, .opt, .phl, .sal, .sqr, .tmd, .arz, .ibz, .ibc, .qbquery, .rul. Mais cet article ne traite pas de cela. Aujourd'hui, nous nous intéressons précisément aux fichiers dans lesquels sont stockées les données et les tables de bases de données, grâce auxquelles l'utilisateur pourra restituer des informations importantes et éviter leur éventuelle perte à l'avenir.

Les données de chaque base de données sont stockées dans un dossier portant son nom, et selon le type de table, elles sont stockées dans des fichiers avec les extensions suivantes :

  • db.opt– un fichier dans lequel sont stockées les caractéristiques de la base de données spécifiées lors de sa création ;
  • .frm– fichier de structure de table ;
  • .myd– un fichier dans lequel sont stockées les données des tables MyISAM ;
  • .myi– un fichier dans lequel sont stockés les index des tables MyISAM ;
  • .ibd– un fichier dans lequel sont stockés les données et les index des tables InnoDB.

Comment restaurer une base de données MySQL

La restauration d'une base de données MySQL n'est pas un processus techniquement difficile, mais cela dépend de nombreuses conditions. Pour les utilisateurs de MySQL Workbench, il existe une fonction Exporter Et Importer/Restaurer données de la base de données.


De plus, il est possible de créer une sauvegarde et de restaurer une base de données MySQL à l'aide de mysqldump(que nous avons décrit en détail dans l’un de nos articles).


Mais ces fonctionnalités sont davantage liées à la création de sauvegardes de données MySQL à l'aide d'outils intégrés. Les utilisateurs plus avancés ou ceux qui n'ont pas utilisé la fonction de sauvegarde des données de la base de données MySQL à temps seront également intéressés par la méthode de création de copies et de restauration manuelle des données de la base de données, en remplaçant les fichiers de structure et les données de table décrits ci-dessus :

  • La création d'une copie des données de la table de la base de données MySQL est possible en copiant la structure et les fichiers de données (*.opt, *.frm, *.myd, *.myi pour MyIsam ; *.opt, *.frm, *.ibd pour InnoDB) et en les enregistrant dans un autre dossier.
  • La restauration des données des tables de la base de données MySQL est possible en remplaçant la structure et les fichiers de données précédemment copiés dans les dossiers des bases de données existantes (dans notre cas, il s'agit de deux bases de données : my_db et my_db2).

Récupérer une base de données MySQL perdue ou supprimée

Ainsi, si pour une raison quelconque vous avez supprimé la base de données MySQL, réinstallé Windows ou formaté votre disque dur, vous pouvez la restaurer en utilisant la méthode décrite ci-dessus, en collant les fichiers de base de données précédemment copiés dans le dossier portant le nom de la base de données :

C:\ProgramData\MySQL\MySQL Server 5.7\Data

Si l'utilisateur n'a pas créé au préalable une copie des fichiers de la base de données, ils peuvent être restaurés à l'aide de , puis transférés vers le dossier souhaité en utilisant la méthode décrite ci-dessus.

Pour ce faire :


Récupération des tables de base de données MySQL endommagées à l'aide de myisamchk

Les tables de la base de données MyISAM MySQL peuvent être corrompues à la suite d'une interruption inattendue du processus d'écriture ou d'un arrêt de l'ordinateur, de pannes matérielles ou logicielles, ou si vous tentez de déboguer à l'aide de myisamchk table utilisée par le serveur.

En raison d'une corruption, les données peuvent disparaître de la table ou s'afficher de manière incorrecte, mais le plus souvent, en raison d'une corruption de la table, les utilisateurs rencontrent l'erreur suivante : « Fichier de clé incorrect pour la table : « nom_table ». Essayez de le réparer"

Pour restaurer les tables MyISAM endommagées, vous pouvez utiliser la commande myisamchk.

Myisamchk Il fonctionne en déboguant et en créant une copie du fichier .myd, puis en remplaçant le fichier endommagé par celui-ci. Par conséquent, avant d'utiliser cette commande, il est préférable de créer d'abord une copie de sauvegarde du fichier de table que vous souhaitez restaurer.

Alors, pour restaurer une table endommagée, utilisez la commande :

myisamchk -r -q TABLE_NAME

Où, -r -q– Il s’agit d’un mode de récupération rapide. Dans ce cas, le fichier d'index sera corrigé sans modifier le fichier de données. Si le fichier de données contient tout le nécessaire et que les liens supprimés pointent vers les positions correctes dans le fichier de données, alors cette commande corrigera le tableau.

Si la commande précédente ne donne pas le résultat souhaité, faites une copie de sauvegarde du fichier de données et exécutez la commande :

myisamchk -r TABLE_NAME

Où, -r- c'est juste le mode de récupération. Dans ce cas, les entrées incorrectes et perdues seront supprimées du fichier de données et le fichier d'index sera créé à nouveau (comme décrit ci-dessus).

Veuillez noter. Si vous envisagez de déboguer et de restaurer une table à partir de la ligne de commande, vous devez d'abord arrêter le serveur. Il convient de noter que lors de l'exécution de l'arrêt de mysqladmin à partir d'un serveur distant, mysqld fonctionnera encore pendant un certain temps après l'arrêt de mysqladmin jusqu'à ce que toutes les requêtes soient arrêtées et que toutes les clés soient vidées sur le disque.

Je partagerai mon expérience sur la façon de restaurer la base de données (DB) d’un site Web à partir d’une sauvegarde via phpMyAdmin sur votre hébergement.

Cette chose ne vous sera peut-être jamais utile, mais juste au cas où vous devriez comprendre comment agir dans une situation critique. Comme on dit : « Préparez votre traîneau en été… ».

Il convient de mentionner que les hébergeurs eux-mêmes peuvent restaurer gratuitement votre site Web à partir d’une sauvegarde si vous utilisez les services d’une bonne société d’hébergement. Si la situation est telle qu’il n’y a personne pour vous aider, poursuivez votre lecture.

Comment restaurer une base de données à partir d'une sauvegarde

À ce stade, vous disposez déjà d’une sauvegarde de la base de données sur votre ordinateur. Il ne reste plus qu'à le télécharger dans la base de données actuelle avec un remplacement pour que le site recommence à fonctionner, ou que les modifications que vous avez apportées sur un site local ou un autre site prennent effet. Pour ce faire, vous devez vous connecter à phpMyAdmin sur votre hébergement. Je vais vous montrer avec mon exemple (il sera similaire aux autres dans la partie fonctionnelle).

phpMyAdmin lui-même vous semblera similaire, avec peut-être des différences mineures.

  • Je me tourne vers acc. section - coin supérieur droit de l'image précédente MYSQL
  • En face de la base de données souhaitée (si vous en avez non pas une, mais plusieurs), cliquez sur l'inscription phpMyAdmin (photo ci-dessous)

Cette page s'ouvrira devant vous, où vous devrez cliquer sur le nom de votre base de données :

Vous aurez désormais la possibilité de restaurer le site à partir d'une sauvegarde. Cliquez sur "Importer" dans le panneau supérieur :

Par défaut, tous les sites WordPress sont codés en UTF-8, vous n'avez donc pas besoin de modifier ce paramètre. Si votre site est dans un encodage différent, sélectionnez celui qui convient dans la liste déroulante. Nous laissons le reste tel quel sur la page.

Après avoir cliqué sur OK, le processus de récupération du site commencera. Cela peut prendre quelques secondes ou minutes, selon la taille de la base de données.

Si des problèmes surviennent lors de la récupération au cours du processus, un message correspondant décrivant l'erreur apparaîtra en haut de la page. Ici, vous devrez vous tourner vers l'hébergeur pour obtenir de l'aide, car... les erreurs se produisent le plus souvent en raison des paramètres du serveur (cela n'inclut pas la situation dans laquelle la sauvegarde de votre base de données elle-même est endommagée).

D'après mon expérience, je dirai que le plus souvent, une erreur lors de la restauration d'une base de données se produit en raison de la taille de la base de données elle-même, lorsque le serveur ne peut pas traiter correctement la sauvegarde. Dans ce cas, il existe 2 solutions :

  • Décompressez l'archive de la base de données pour obtenir uniquement un fichier .sql, ou vice versa, compressez-le (selon la situation).
  • Contactez le support technique de l'hébergeur pour obtenir de l'aide.

Dans l'un des articles suivants, je vais vous expliquer quoi faire si votre hébergeur n'a pas accès à phpMyAdmin pour un utilisateur régulier. J'ai rencontré une situation similaire à plusieurs reprises. La solution est assez simple.

Les développeurs et administrateurs de Microsoft SQL Server doivent souvent restaurer une base de données à partir d'une archive(sauvegarde), par exemple, pour créer une copie de la base de données qui servira à tester l'application, ou par exemple, vous avez réinstallé le système d'exploitation et vous devez restaurer la base de données, c'est ce que nous allons faire aujourd'hui.

Dans cet article, nous examinerons la récupération de base de données en utilisant un SGBD comme exemple. Microsoft SQL Server 2000. Afin de restaurer une base de données, vous devez disposer d'une archive de cette base de données. Il est créé avec l'extension *.dat. Je recommande à chacun de créer des archives de ses bases de données, et quotidiennement si quelque chose arrive, vous aurez toujours une archive à restaurer.

Description du processus de restauration d'une base de données à partir d'une sauvegarde

Commençons, ouvrez Enterprise Manager, sélectionnez la base de données que vous souhaitez restaurer, ou si vous venez d'installer le SGBD et qu'il n'y a pas encore de bases de données, créez simplement une base de données et restaurez-la à partir de l'archive. Ouvrez le menu " Outils->Restaurer la base de données" et la fenêtre suivante s'ouvrira :

Sélectionner " Depuis l'appareil" et cliquez sur " Sélectionnez les appareils».

(bannière de position de chargement3

Cliquez sur OK et dans le champ " Choisissez Restaurer la base de données» cliquez également sur OK. Et dans la fenêtre principale " Restaurer la base de données"Ne vous précipitez pas pour cliquer sur OK, allez dans l'onglet " Possibilités» et cochez la case comme sur l'image.

Ici aussi, définissez le chemin des fichiers de base de données, car il peut être incorrect, et vous pouvez écraser, par exemple, une base de données existante si vous créez une copie de la base de données, et si vous venez de tout installer (SGBD), alors vous il ne faut pas le changer.

Voilà, après cela vous pouvez cliquer sur OK. Après un certain temps, la base de données sera restaurée et vous pourrez l'utiliser.

D'ailleurs, si quelqu'un est intéressé par le langage T-SQL ( est une extension du langage SQL dans Microsoft SQL Server), alors je peux recommander le livre “ Le chemin du programmeur T-SQL. Tutoriel sur le langage Transact-SQL", après avoir lu quoi vous pourrez facilement programmer en T-SQL.

Vous devez apprendre à restaurer des données à partir d'une sauvegarde. Une restauration peut être nécessaire en cas de panne matérielle ou s'il est nécessaire de créer une copie absolument identique de la base de données existante sur un autre serveur.

N'oubliez pas que si vous restaurez une base de données à l'aide du modèle de récupération simple, vous n'aurez qu'à restaurer la dernière copie complète. Si vous utilisez le modèle de récupération complète ou groupée, vous devez restaurer la copie complète, puis la dernière copie différentielle et toutes les copies du journal des transactions. Étudions les processus de récupération plus en détail.

Restauration d'une base de données à partir d'une copie complète.

Quel que soit le modèle de récupération, la première étape consiste toujours à restaurer la dernière sauvegarde complète. Pour restaurer une base de données dans Enterprise Manager, vous devez sélectionner la base de données, double-cliquer dessus avec le bouton droit de la souris et sélectionner « Toutes les tâches > Restaurer la base de données » dans le menu contextuel, après quoi la boîte de dialogue illustrée dans la figure A s'ouvrira.

Figure A.

La boîte de dialogue Restaurer la base de données vous permet d'afficher toutes les sauvegardes récentes par ordre chronologique. Là, vous pouvez sélectionner la base de données que vous souhaitez restaurer. Dans l'onglet Options illustré dans la figure B, vous pouvez sélectionner les options suivantes :

  • Éjectez les bandes après avoir restauré chaque sauvegarde (déchargez la bande après chaque restauration)
  • Invite avant de restaurer chaque sauvegarde (émettez un avertissement supplémentaire avant de commencer à restaurer chaque copie)
  • Forcer la restauration sur une base de données existante (restauration sur une base de données existante), cette option est équivalente à Move dans T-SQL.

Figure B

En bas de la fenêtre se trouvent trois commutateurs qui permettent de déterminer l'état de la base de données après la restauration de la copie :

  • Laissez la base de données opérationnelle. Aucun journal de transactions supplémentaire ne peut être restauré.
    • Si vous sélectionnez cette valeur, après avoir téléchargé la sauvegarde, le processus de restauration sera lancé, ce qui annulera toutes les transactions en attente. Il ne sera plus possible de télécharger des copies supplémentaires du journal des transactions. Les utilisateurs pourront travailler normalement avec la base de données.
  • Laissez la base de données non opérationnelle mais capable de restaurer des journaux de transactions supplémentaires.
    • Une fois la copie téléchargée, la base de données restera temporairement indisponible. Il sera nécessaire de télécharger des copies supplémentaires puis de lancer le processus de récupération.
  • Laissez la base de données en lecture seule et pouvez restaurer des journaux de transactions supplémentaires.
    • La base de données devient en lecture seule. Vous pouvez télécharger des sauvegardes supplémentaires du journal des transactions. Cette option permet de créer un serveur de secours

Pour restaurer la base de données et les journaux de transactions, il vous suffit de cliquer sur OK.

Récupération de base de données à l'aide de T-SQL.

La récupération de base de données peut également être effectuée à l'aide de T-SQL, qui offre plus d'options qu'Enterprise Manager. La syntaxe d'utilisation de la commande T-SQL est la suivante :

    RESTAURER LA BASE DE DONNÉES ( nom_base de données | @ base_de_données_nom_var }
    [ DEPUIS< backup_device > [ , ...n ] ]
    [AVEC
    [RESTRICTED_USER]
    [ [ , ] DÉPOSER = { numéro_fichier | @ numéro_fichier } ]
    [ [ , ] MOT DE PASSE = { mot de passe | @ variable_mot de passe } ]
    [ [ , ]NOMMÉDIA = { nom_média | @ nom_média_variable } ]
    [ [ , ]MOT DE PASSE MEDIA = { mot de passe média | @ mediapassword_variable } ]
    [ [ , ] SE DÉPLACER " nom_fichier_logique" À " nom_fichier_système_d'exploitation" ]
    [ , ...n ]
    [ [ , ] GARDER_REPLICATION ]
    [ [ , ] ( NORECOVERY | RECUPERATION | STANDBY = annuler_nom_fichier } ]
    [ [ , ] ( REMBOBINAGE | REMBOBINAGE ) ]
    [ [ , ] ( NOMCHARGER | DÉCHARGER ) ]
    [ [ , ] REMPLACER ]
    [ [ , ] REDÉMARRAGE ]
    [ [ , ] STATISTIQUES [ = pourcentage ] ]

Pour un aperçu détaillé de chaque option, lisez la description dans la documentation en ligne de SQL Server 2000.

La figure C montre la restauration de la base de données Pubs à partir d'une copie complète d'un périphérique de sauvegarde.

Graphique C.

Restauration d'une base de données à partir d'une copie différentielle.

Si vous utilisez le modèle de récupération complète ou groupée, vous devez d'abord restaurer la sauvegarde complète, puis la dernière sauvegarde différentielle et tous les journaux de transactions. Pour effectuer une restauration de base de données à l'aide d'une copie différentielle, dans Enterprise Manager, vous devez sélectionner la base de données, double-cliquer dessus avec le bouton droit de la souris et sélectionner « Toutes les tâches > Restaurer la base de données » dans le menu contextuel, sélectionner la restauration d'une base de données complète et différentielle. copie de la base de données, puis cliquez sur OK. (Figure D)

Figure D

La syntaxe de la commande Restore permettant d'effectuer une restauration à l'aide de copies différentielles est illustrée dans la Figure E.

Figure E.

Récupération du journal des transactions.

Avant de commencer à restaurer le journal des transactions, vous devez restaurer la copie différentielle complète et la plus récente de la base de données. Vous pouvez ensuite restaurer les journaux de transactions dans l'ordre approprié. Si vous utilisez Enterprise Manager, vous devez sélectionner la base de données, double-cliquer dessus avec le bouton droit de la souris et sélectionner « Toutes les tâches > Restaurer la base de données » dans le menu contextuel, sélectionner toutes les copies nécessaires et, si nécessaire, le point dans l’option Time Restore (restauration à un moment précis) (Figure F).

Figure F.

La syntaxe de la commande Restore pour restaurer un journal de transactions est illustrée dans la figure G.

Figure G.

Résumons. La sauvegarde et la restauration d'une base de données constituent l'une des tâches de base et les plus importantes d'un administrateur de base de données. À tout moment, vous devez avoir confiance dans votre capacité à récupérer votre base de données SQL Server 2000 conformément à votre plan de reprise après sinistre. Si vous n'avez pas de plan de reprise après sinistre, je vous recommande de commencer à y travailler. Si quelque chose se produit et que les données sont perdues, la prochaine perte pour vous pourrait être la perte de votre emploi.

De l'auteur : bon après-midi, mes chers. Il vous est arrivé quelque chose ? Avez-vous encore jeté la mauvaise base de données ? Eh bien, ce n'est pas fatal si vous savez tout sur la récupération MySQL. Nous allons maintenant vous expliquer toutes les subtilités de ce rituel. Cela nécessite un tambourin, une crotte de nez du nez d'un phoque à queue blanche... C'est une blague ! Et tout ce qui est sérieux sur ce sujet sera présenté plus loin.

Le chagrin peut être corrigé si la base de données est supprimée

Il n'existe nulle part sur Internet sans bases de données et systèmes de gestion de bases de données (SGBD). La plupart des CMS modernes et des moteurs faits maison sur lesquels les sites Web sont déployés utilisent MySQL. Par conséquent, il peut être qualifié en toute sécurité de système de gestion de bases de données « tout Internet ».

Dans cet article, nous examinerons tous les principaux moyens de récupérer les informations perdues. Au fur et à mesure que nous rédigeons le matériel, nous « prendrons de l'ampleur » et commencerons par les méthodes les plus simples, et vers la fin, nous aborderons les plus complexes. Nous essaierons d’illustrer chacune des méthodes abordées avec des exemples pratiques. Quant à la syntaxe des requêtes, nous ne nous attarderons pas en détail sur la description des paramètres de chaque commande. Heureusement, il existe suffisamment d’informations de référence sur Internet.

Méthode de récupération rapide

Le plus souvent, travailler avec une base de données sur Internet s'effectue via phpMyAdmin, qui est l'interface Web de ce SGBD. Pour restaurer une base de données MySQL manuellement :

Connectez-vous à phpMyAdmin et sélectionnez la base de données souhaitée.

Accédez à l’onglet « Importer », qui se trouve dans le menu principal supérieur.

Dans la section « Fichier importé », sélectionnez la source de la copie de sauvegarde de la base de données souhaitée.

Cliquez sur le bouton « OK ».

Après cela, au lieu de la version actuelle de la base de données, celle précédemment enregistrée sera chargée. Il convient de noter que cette interface Web n'est pas adaptée à la sauvegarde de grandes quantités de données, car la taille maximale prise en charge de la base de données téléchargée n'est que de 2 Mo.

phpMyAdmin n'implémente pas la fonction de création automatique de sauvegardes, mais uniquement manuellement. L’ensemble du processus de réservation se déroule via l’onglet « Exporter ». Ici, vous pouvez définir le format de copie, la méthode de sortie et d'exportation.

Travailler via MySQLdump

MySQLdump est une application Web côté serveur. Il est conçu pour restaurer les bases de données MySQL à partir de sauvegardes créées à l'aide de l'application. Afin de ne pas trop nous emporter, nous allons démontrer la création d'une sauvegarde simple et la restauration d'une base de données à partir de celle-ci. Comme plate-forme d'expérimentation, nous utilisons le serveur Runet local le plus populaire, Denwer.

Vous devez d'abord télécharger MySQLdump et le placer à l'adresse suivante : F:\Webserver\usr\local\mysql-5.5\bin

MySQLdump est une application console, donc tout travail ultérieur avec elle se fera via la ligne de commande (cmd.exe). Maintenant, étape par étape :

Lançons Denwer.

Via la ligne de commande, accédez au disque virtuel (dans l'exemple, il s'agit du lecteur Z).

Nous allons dans le dossier où se trouve MySQLdump.

Après cela, nous lançons l'utilitaire pour exécution. Avant de restaurer la base de données MySQL, à titre d'exemple, créons une copie de sauvegarde de la base de données my_db1 dans le dossier bin et nommons la sauvegarde « db1 ». Pour cela nous utilisons la commande mysqldump.

Restaurons maintenant une autre base de données à partir de la copie créée (db1). Pour ce faire, nous utilisons la commande mysql.

Exemple de code pour utiliser les deux commandes :

C:\Users\home>Z: Z:\>cd usr\local\mysql-5.5\bin Z:\usr\local\mysql-5.5\bin>mysqldump -uroot my_db1>db1.sql Z:\usr\local \mysql-5.5\bin>mysql -uroot db2

C:\Utilisateurs\accueil>Z :

Z:\>cd usr\local\mysql - 5.5\bin

Z:\usr\local\mysql-5.5\bin>mysqldump -uroot my_db1>db1. SQL

Z:\usr\local\mysql - 5.5\bin > mysql - uroot db2< db1 . sql

Si vous regardez le code d’un peu plus près, vous remarquerez que les deux commandes ont une syntaxe commune. La seule chose qui les distingue sont les noms des sources de données et des copies. Et aussi un signe du sens du mouvement des données («<», «>»).

uroot est le nom d'utilisateur. Il est indiqué immédiatement après le paramètre u (sans espace). De plus, la syntaxe de la commande inclut plusieurs paramètres supplémentaires. Parmi eux : mot de passe, adresse de l'hôte distant. À l'aide de la commande mysqldump, vous pouvez exporter la base de données vers différents formats et compresser les données. C'est également un moyen éprouvé de restaurer une table MySQL.

L'utilitaire MySQLdump (à l'aide de la commande du même nom) permet d'exporter des bases de données dans un format texte simple (.txt). Et comme le texte a un degré élevé de compression, il s'agit d'un moyen efficace de réduire les volumes de sauvegarde dans une situation de « pénurie » d'espace serveur.

Que peut-on faire d'autre

En plus des deux méthodes principales décrites ci-dessus, vous pouvez utiliser plusieurs autres utilitaires de console pour récupérer les données MySQL :

Console MySQL

Mysqlbinlog – pour créer des sauvegardes, le programme importe les données des journaux binaires du serveur. Ils enregistrent toutes les demandes des utilisateurs et du système (en code binaire), après l'exécution desquelles les données de la base de données ont été modifiées.

De nombreux plugins spécialisés ont également été développés pour les CMS populaires. Par exemple, pour WordPress :

Gardez la sauvegarde quotidiennement.

Sauvegarde et restauration UpdraftPlus.

Tableau de bord parfait.

Comme vous pouvez le constater, restaurer MySQL n’est pas une tâche impossible. Toutes les bases de données et tables perdues peuvent être « remises » à leur place. Dans ce cas, des outils « manuels » et des extensions spécialisées pour CMS sont utilisés. Il ne vous reste plus qu’à choisir la solution la plus adaptée. Pour une compréhension plus approfondie du fonctionnement de la base de données MySQL, je vous recommande de consulter la nôtre.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :