Я помилково видалив близько 2 000 000 записів із віддаленої таблиці SQL Server 2008. Сервер не надає мені доступу до резервних файлів на стороні сервера.
Чи є спосіб повернути ці записи?
Я помилково видалив близько 2 000 000 записів із віддаленої таблиці SQL Server 2008. Сервер не надає мені доступу до резервних файлів на стороні сервера.
Чи є спосіб повернути ці записи?
Відповіді:
Чи перебуває ваша база даних в повному режимі відновлення?
Якщо так, ви робите резервні копії журналу транзакцій?
Якщо ні (не в режимі повного відновлення), відновіть останню повну резервну копію як базу даних з іншим ім'ям. (Не перезаписуйте базу даних, яку ви вже отримали.) Звідти ви зможете відновити всі записи, які були в Інтернеті під час створення резервної копії, але ви втратите всі зміни з тих пір.
SQL Server зберігає журнали для кожної видаленої записи. Ви можете запитувати ці журнали за допомогою функції fn_dblog
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' )
;
Але цей журнал у шістнадцятковому форматі, і вам потрібно перетворити цей шістнадцятковий формат у фактичні дані.
Стаття нижче допоможе відновити видалені записи таким чином, як визначено вище:
http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
@user1059637
- Як ви ставитесь до того, що люди додають функціональність до вашого коду?
На жаль, ми не зможемо допомогти вам без значно більшої інформації. Але з вашого запитання я бачу, що ви видалили з бази даних 2 мільйони записів. Швидше за все, ви не зможете відновити цю інформацію, якщо тільки у вас не буде повного входу в базу даних і ви не придбаєте дуже специфічні інструменти.
Якщо ви можете більш детально описати, що це, на вашу думку, ви зробили, і чому ви вважаєте, що не можете отримати записи, і можете описати організацію вашої бази даних, то ми можемо допомогти вам трохи більше.
Деякі загальні поради: якщо ви думаєте, що ви видалили 2 мільйони записів, ви, мабуть, зараз трохи злякалися. Тож вам слід зробити п’ятихвилинну перерву, заспокоїтись і переглянути проблему. Крім того, ви повинні сказати своєму начальнику відразу, якщо це розумно (не будіть когось о 2 ранку, щоб сказати їм) і що ви працюєте над рішенням. Краще визнати те, що сталося, ніж несамовито намагатися відновитись і потенційно погіршити справи та приховати деталі. Знання того, що ваш начальник може певним чином допомогти, допоможе вам усунути проблему. Як я вже сказав, лише кілька загальних порад.