Published on

July 22, 2017

Восстановление удаленных записей в SQL Server

Вы когда-нибудь случайно удаляли важные записи из базы данных SQL Server? Это может быть неприятным опытом, но к счастью, есть способы восстановить эти удаленные записи. В этой статье мы рассмотрим концепцию восстановления SQL-журнала и как он может помочь вам восстановить удаленные данные в SQL Server.

Роль транзакционных журналов

Транзакционные журналы отвечают за все операции журналирования базы данных в SQL Server. Они отслеживают каждое изменение, сделанное в базе данных, включая удаления. Используя неопубликованную функцию “fn_dblog” и концепцию номеров последовательности журнала (LSN), мы можем идентифицировать и восстановить удаленные записи.

Идентификация удаленных записей

Перед попыткой восстановить удаленные записи, важно знать, когда и кем были удалены данные. Найдя конкретный LSN, под которым произошло удаление, мы можем откатить удаленные записи в SQL Server до этого LSN.

Восстановление удаленных записей с помощью LSN

Вот шаги для восстановления удаленных записей в SQL Server с использованием восстановления SQL-журнала:

  1. Создайте базу данных и таблицу, на которой будет выполняться оператор DELETE.
  2. Вставьте несколько строк в таблицу.
  3. Удалите несколько строк из таблицы.
  4. Найдите транзакционный журнал SQL Server и получите информацию о удаленных транзакциях с помощью функции “fn_dblog”.
  5. Определите LSN операции LOP_BEGIN_XACT, когда оператор DELETE начал свою транзакцию.
  6. Преобразуйте шестнадцатеричное значение LSN в десятичный формат.
  7. Выполните резервное копирование журнала транзакций, если оно не было выполнено после удаления данных.
  8. Восстановите базу данных в другое место или на том же сервере с другим именем до определенного LSN.
  9. Импортируйте и восстановите удаленные данные из восстановленной базы данных в рабочую базу данных.
  10. Проверьте восстановленные данные.

Когда восстановление SQL-журнала становится сложным

Хотя вышеуказанные шаги могут быть полезны в большинстве случаев, есть ситуации, когда восстановление удаленных данных с помощью восстановления SQL-журнала становится сложным. Эти ситуации включают:

  • Изменения, сделанные после операторов DELETE, TRUNCATE или DROP.
  • Невозможность выключить SQL Server.
  • Новые транзакции, выполненные после потери данных.
  • Отсутствие недавнего полного резервного копирования базы данных.

В таких ситуациях пользователи могут рассмотреть возможность использования сторонних инструментов для восстановления SQL-журнала, чтобы успешно восстановить удаленные записи данных в SQL Server.

Заключение

Случайное удаление записей из базы данных SQL Server может быть стрессовым опытом. Однако, с помощью восстановления SQL-журнала, вы можете восстановить эти удаленные записи и восстановить их в вашу базу данных. Независимо от того, используете ли вы SQL Server 2016, 2014, 2012 или более старые версии, процесс остается тем же. Помните всегда тестировать любые изменения в среде с низким жизненным циклом перед их внедрением в производство.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.