Une table accidentellement supprimée peut être recupérée de plusieurs façons. Le choix de la technique dépend des ressources disponibles pour la récupération. Le premier choix est habituellement une sauvegarde de base de données. Mais, même si vous n'en avez pas, la table supprimée peut toujours être récupérée (dans certains cas encore plus rapidement que si vous aviez une sauvegarde).
Nous allons voir comment cela peut se faire:
S'il y a une sauvegarde complète, ou une chaîne de sauvegardes différentielles contenant la table supprimée:
Dans SQL Server Management Studio, cliquez-droit sur la base de données, sélectionnez Tasks et puis Generate Scripts
Dans la liste d'objets, sélectionnez la table supprimée
Dans la boîte de dialogue Set Scripting Options, spécifiez le chemin d'accès et le nom
CREATE TABLE [dbo].[Orders]( [Id] [int] NOT NULL, [OrderNo] [int] NOT NULL, [CustomerId] [int] NULL, [OrderDate] [date] NULL ) ON [PRIMARY] GO INSERT [dbo].[Orders] ([Id], [OrderNo], [CustomerId], [OrderDate]) VALUES (1, 1000, 35, CAST(0x2A370B00 AS Date)) ALTER TABLE [dbo].[Orders] ADD DEFAULT (getdate()) FOR [OrderDate] GO
Cette méthode est simple et directe, le seul problème étant que cela ne fonctionne seulement s'il y a une sauvegarde de votre base de données. En outre, si la base de données est volumineuse, la restauration de sauvegarde peut être très longue.
Il s'agit d'une autre méthode où une sauvegarde de base de données est nécessaire, mais il n'a pas à être restauré afin de récupérer des tableaux perdus en raison de l'opération de DROP Table.
ApexSQL Diff est un outil de comparaison et de synchronisation de bases de données SQL Server. Il détecte les différences entre les objets de base de données, génère des rapports complets et synchronise les bases lives et versionnées, les sauvegardes, les snapshots instantanés et les dossiers de scripts.
Sélectionnez la base de données active et le type d'authentification
Dans Object filter, cochez Use filter pour les tables
Pour avoir tous les objets qui dépendent de la table supprimée dans le scénario – triggers, tables, etc. laissent tous types d'objets sélectionnés.
Dans le volet de Tables filter, ne cochez que la table supprimée
Cliquez Compare
ApexSQL Diff affichera les résultats de la comparaison dans la grille principale. La table supprimée et les objets qui en dépendent, le cas échéant, seront montrés dans la grille:
Dans l'étape des Output options, sélectionnez Create a synchronization script comme output action
Le script généré s'affichera dans l'éditeur ApexSQL Diff. Examiner, modifier le si besoin est et exécutez le
La table et les objets dépendants sélectionnés seront recréés.
Puisque ApexSQL Diff peut lire des sauvegardes de base de données SQL Server, la récupération de la table est plus rapide car les sauvegardes ne sont pas d'abord restaurées. Les objets dépendants de la table supprimée sont parfaitement restaurés. La grille principale affiche le script et les différences pour chaque objet, fournissant une granularité qui aide à déterminer quels sont les objets à sélectionner pour la synchronisation.
Si vous n'avez pas de sauvegarde de base de données SQL, cette méthode n'est pas applicable. En outre, seule la structure de la table peut être Récupérée.
Même s'il n'y a aucune sauvegarde de base de données SQL contenant la table supprimée, il est possible de récupérer des tableaux perdus en raison de l'opération de DROP Table.
ApexSQL Log est un viewer du SQL server transaction log qui audite, rétablit ou relit les données et l'objet de modifications. Il restaure les données supprimées et modifiées ainsi que let objets, en capturant les informations sur l'utilisateur, l'application et l'hôte utilisés pour faire les changements.
Dans le paneau Operations, déselectionnez toutes les DML ainsi que toutes led DML et cochez DROP Table dans la liste Schema operations
Sélectionnez la table que vous souhaitez récupérer, sélectionnez l'option Create undo script dans le menu
Une fois le script créé, examinez-le, et exécutez-le
Les avantages de ce procédé sont qu’il n’est pas nécessaire d’avoir une sauvegarde de sa base de données. Comme une instruction DROP TABLE ne crée pas une ligne dans le transaction log, cette méthode peut récupérer seulement la structure de la table.
Notez que si la base de données est en mode SIMPLE RECOVERY, les transactions peuvent être écrasées. Dans ce cas, le plus tôt vous exécutez ApexSQL Log, plus grandes sont vos chances de réussite.
ApexSQL Recover lit les données (MDF) et les fichiers de transaction log (LDF), il peut récupérer une table supprimée même lorsque la transaction n’existe pas dans le fichier LDF.
ApexSQL Recover est un outil de récupération de SQL Server qui récupère les données supprimées, tronquées, corrompues ou endommagées. Il récupère les objets et les données perdues ou supprimées ainsi que les BLOBs sous forme de fichiers.
Sélectionnez la récupération de données de l'option From DROP TABLE operation
Si il ya des backups du transaction log créés après que la table ait été supprimée, ou un transaction log détaché contenant la transaction responsable de la suppressions, cliquez sur Add transaction logs
Dans l’étape suivante, ajoutez les sauvegardes des transactions logs ainsi que les transactions logs individuels
Une fois le script de récupération généré, ouvrez-ler, trouvez les tables que vous souhaitez récupérer et exécutez-le
Grâce à la lecture des deux fichiers : MDF et LDF, ApexSQL Recover a plus de chances de récupération réussie.
Cependant, si les informations sur la table supprimée sont écrasées dans les deux fichiers MDF et LDF, ApexSQL Revoever ne peut pas vous aider.
Avoir des sauvegardes de base de données est un bon point de départ, mais pas nécessairement le plus rapide. Avec les sauvegardes, il existe différentes méthodes - celles qui nécessitent une restauration de la sauvegarde et donc plus de temps, et celles qui peuvent lire des sauvegardes directement.
Si vous ne disposez pas d'une sauvegarde de base de données, vous pouvez récupérer une table supprimée à partir des données de base de données SQL et les transactions logs.
Quant à la récupération d'une base de données dans le modèle SIMPLE RECOVERY, cela peut échouer si la transaction drop table a été écrasée. Même alors, la récupération est possible à partir du fichier MDF.
© ALL RIGHTS RESERVED. Conditions d’utilisation Confidentialité Cookie Preference Center