J'ai supprimé par erreur environ 2 000 000 d'enregistrements d'une table SQL Server 2008 distante. Le serveur ne m'accorde pas l'accès aux fichiers de sauvegarde côté serveur.
Existe-t-il un moyen de récupérer ces enregistrements?
Votre base de données est-elle en mode de récupération complète?
Si oui, effectuez-vous des sauvegardes du journal des transactions?
Si non (pas en mode de récupération complète), restaurez la dernière sauvegarde complète en tant que base de données avec un nom différent. (N'écrasez pas la base de données que vous avez déjà.) À partir de là, vous pourrez restaurer tous les enregistrements en ligne au moment de la sauvegarde, mais vous perdrez toutes les modifications depuis.
SQL Server conserve des journaux pour chaque enregistrement supprimé. Vous pouvez interroger ces journaux via le fn_dblog
Fonction SQL Server.
SELECT [RowLog Contents 0]
FROM sys.fn_dblog(NULL, NULL)
WHERE
AllocUnitName = 'dbo.TableName'
AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' )
AND Operation in ( 'LOP_DELETE_ROWS' )
;
Mais ce journal est au format Hex et vous devez convertir ce format Hex en vos données réelles.
L'article ci-dessous vous aidera à récupérer les enregistrements supprimés de la manière définie ci-dessus:
http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
Malheureusement, nous ne pourrons pas vous aider sans beaucoup plus d'informations. Mais d'après votre question, je constate que vous avez supprimé ce qui semble être 2 millions d'enregistrements de votre base de données. Il est très probable que vous ne puissiez pas récupérer ces informations, sauf si vous avez une connexion complète à votre base de données et que vous achetez des outils très spécifiques.
Si vous pouvez décrire plus en détail ce que vous pensez avoir fait et pourquoi vous pensez que vous ne pouvez pas récupérer les enregistrements et pouvez décrire l'organisation de votre base de données, alors nous pouvons peut-être vous aider un peu plus.
Quelques conseils généraux: si vous pensez avoir supprimé 2 millions d'enregistrements, vous êtes probablement un peu flippé en ce moment. Vous devriez donc faire une pause de cinq minutes, vous calmer et revoir le problème. De plus, vous devriez dire à votre patron tout de suite si c'est raisonnable (ne réveillez pas quelqu'un à 2h du matin pour le lui dire) et que vous travaillez sur une solution. Mieux vaut admettre ce qui s'est passé que d'essayer frénétiquement de récupérer et potentiellement d'aggraver les choses et de cacher les détails. Savoir que votre patron peut vous aider d'une manière ou d'une autre vous aide à résoudre le problème. Comme je l'ai dit, juste quelques conseils généraux.