Как восстановить удаленную таблицу на сервере sql после полного резервного копирования - PullRequest
0 голосов
/ 15 января 2019

Мне нужно восстановить удаленную таблицу из базы данных SQL Server, которая работает в SQL Server 2016 Standard Edition. База данных находится в режиме полного восстановления.

После удаления таблицы я сделал полную резервную копию базы данных, а затем дважды сделал резервную копию журнала транзакций. Теперь я могу восстановить свою удаленную таблицу с использованием дорогих инструментов сторонних производителей или без них?

Я попробовал эту ссылку и получил ошибку в последней команде.

Результат запроса STOPBEFOREMARK:

Обработано 2104752 страниц для базы данных «databasecopy», файл «databasefilename» в файле 1. Обработано 6 страниц для базы данных «datebasecopy», файл «database_log» в файле 1. RESTORE DATABASE успешно обработал 2104758 страниц за 123,259 секунды (133,405 МБ / с). Msg 4335, уровень 16, состояние 2, строка 15 Указанное время STOPAT слишком рано. Вся или часть базы данных уже перенесена за пределы этой точки. Сообщение 3013, уровень 16, состояние 1, строка 15 RESTORE LOG завершается ненормально. RESTORE DATABASE успешно обработал 0 страниц за 0,544 секунды (0,000 МБ / с).

Когда я нажимаю опцию Восстановить исходную базу данных и нажимаю опцию Временной шкалы, я получаю экран ниже

enter image description here

Время отбрасывания таблицы из fun_dblog:

enter image description here

1 Ответ

0 голосов
/ 15 января 2019

Хорошо, чтобы избежать долгих разговоров об этом, вот что я предлагаю:

  1. Восстановите полную резервную копию, которую вы взяли 4 месяца назад, а НЕ ту, которую вы взяли сегодня:

    ВОССТАНОВИТЬ БАЗУ ДАННЫХ [databasecopy] ИЗ DISK = N'OLD_BACKUP.bak 'С MOVE N'database' TO N'C: \ SQLskills \ database2.mdf ', MOVE N'database_log' TO N'C: \ SQLskills \ database2_log .ldf ', ЗАМЕНА, NORECOVERY; GO

  2. Затем запустите RESTORE до этого LSN:

    RESTORE LOG [databasecopy] FROM DISK = N'D: \ SQLskills \ database_Log2.bak 'WITH STOPBEFOREMARK =' lsn: 3420000002597000001 ', NORECOVERY; ИДТИ ВОССТАНОВИТЬ БАЗУ ДАННЫХ [databasecopy] С ВОССТАНОВЛЕНИЕМ; GO

Это не будет работать, если вы используете текущую полную резервную копию, потому что все в журнале на тот момент уже было зафиксировано, и вы пытаетесь вернуться назад во времени. Восстановление только идет вперед во времени. Вот причина вашей ошибки.

...