Несколько месяцев назад я установил sql server 2005 на одну из своих клиентских машин. Я дал ему возможность сделать резервную копию вовремя, но он никогда не делал резервных копий.
Сегодня он позвонил мне и сказал, что «я не могу увидеть свои записи». Я зашел в свою клиентскую систему и увидел, что на столах нет ни одной записи. Ни в одной из таблиц не было ни одной строки. Затем я проверил, есть ли у него какой-либо файл резервной копии, который, как я обнаружил, отсутствует.
Я спросил его, в чем может быть возможная причина. Он сказал, что это могло быть связано с вирусом.
После этого я проверил размер файлов mdf и ldf и обнаружил, что он должен быть таким, какой есть. когда я создавал его серверный mdf файл ldf имел 2 МБ базы данных, теперь это 83 МБ и 193 МБ mdf / ldf соответственно.
Это показывает, что данные все еще присутствуют в нем, но не отображаются.
В чем может быть возможная причина и как я могу восстановить все данные обратно в свои таблицы?
По размеру файла не судить. Если он сбежал DELETE * FROM table
для каждой таблицы размер базы данных будет одинаковым, пока он не запустит DBCC SHRINKDATABASE
.
Я копировал файл, открывал его в редакторе и смотрел, действительно ли в нем что-нибудь есть. Или вы можете просто попробовать УЖАТЬ его. Если он не сжимается, значит, он пустой. (Снова сделайте резервную копию).
Полная потеря всех данных для меня звучит как проблема пользователя. Нет резервных копий, нет данных, загадочный вирус? МОЖЕТ быть вирусом, но вполне вероятно, что это была ошибка пользователя.
Поскольку структура БД кажется неповрежденной (что вы должны проверить), наиболее вероятной причиной является то, что кто-то возится непосредственно с БД, возможно, чтобы обойти некоторую бизнес-логику в приложении, использующем ее. Вирус? Крайне маловероятно.
Теперь казалось, что данные хранятся только в журнале транзакций. Возможно, вы сможете использовать такой продукт, как Аудит Apex SQL или Litespeed Quest для SQL Server чтобы просмотреть журнал, узнать, что произошло, и возможно восстановить данные.