Ho eliminato per errore circa 2.000.000 di record da una tabella remota di SQL Server 2008. Il server non mi sta concedendo l'accesso ai file di backup sul lato server.
C'è un modo per recuperare questi record?
Ho eliminato per errore circa 2.000.000 di record da una tabella remota di SQL Server 2008. Il server non mi sta concedendo l'accesso ai file di backup sul lato server.
C'è un modo per recuperare questi record?
Risposte:
Il tuo database è in modalità di recupero completo?
In caso affermativo, esegui backup del registro delle transazioni?
In caso negativo (non in modalità di ripristino completo), ripristinare l'ultimo backup completo come database con un nome diverso. (Non sovrascrivere il database che hai già.) Da lì, sarai in grado di ripristinare qualsiasi record online al momento del backup, ma da allora perderai tutte le modifiche.
SQL Server mantiene i registri per ogni record eliminato. È possibile eseguire query su questi registri tramite la fn_dblog
funzione 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' )
;
Ma questo registro è in formato esadecimale ed è necessario convertire questo formato esadecimale nei dati effettivi.
L'articolo seguente ti aiuterà a recuperare i record eliminati nel modo sopra definito:
http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
@user1059637
- Qual è il tuo atteggiamento nei confronti delle persone che aggiungono funzionalità al tuo codice?
Sfortunatamente, non saremo in grado di aiutarti senza molte più informazioni. Ma dalla tua domanda, vedo che hai eliminato quelli che sembrano essere 2 milioni di record dal tuo database. Molto probabilmente non puoi recuperare queste informazioni, a meno che tu non abbia una registrazione completa sul tuo database e acquisti alcuni strumenti molto specifici.
Se riesci a descrivere in modo più dettagliato cosa pensi di aver fatto e perché ritieni di non poter recuperare i record e di descrivere l'organizzazione del tuo database, allora potremmo aiutarti un po 'di più.
Alcuni consigli generali: se pensi di aver eliminato 2 milioni di record, probabilmente sei un po 'fuori di testa in questo momento. Quindi dovresti fare una pausa di cinque minuti, calmarti e rivisitare il problema. Inoltre, dovresti dire subito al tuo capo se è ragionevole (non svegliare qualcuno alle 2 del mattino per dirglielo) e che stai lavorando a una soluzione. Meglio ammettere che cosa è successo che cercare freneticamente di recuperare e potenzialmente peggiorare le cose e nascondere i dettagli. Sapere che il tuo capo può aiutarti in qualche modo, ti aiuta a risolvere il problema. Come ho detto, solo alcuni consigli generali.