Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Начини за възстановяване на данни от регистрационния файл на транзакциите на SQL Server

Резюме: Много пъти администраторът на базата данни на SQL търси начини за възстановяване на данни от регистрационните файлове за транзакции на SQL Server. Потребителят може да прочете тази статия, за да изпълни тази задача. Ние дадохме най-добрия възможен и най-лесният начин за възстановяване на данни от (.ldf) файл. В случай, че се сблъсквате с проблеми с повреда на базата данни и искате да възстановите обекти от база данни, опитайте товаВъзстановяване на SQL база данни софтуер. За допълнителна информация, потребителят може да прочетете тази статия.

Има моменти, когато клиентите се сблъскват с плачевни обстоятелства в базата данни на SQL Server. Ситуациите могат да възникнат по време на администрирането и поддръжката на техните файлове с база данни. Понякога обектите на базата данни се изтриват неволно, поради което администраторите на базата данни се сблъскват с множество проблеми. Впоследствие, за да се върнете към обикновения работен процес, файловете трябва да бъдат възстановени обратно в базата данни на SQL Server.

Регистърът на транзакциите на SQL Server играе важна роля при възстановяването на изтрити данни в случай, че погрешно изпълните операция DELETE или UPDATE с неподходящо условие или без условие за филтриране. Това може да се постигне чрез прослушване на записите, поставени вътре в тази черна кутия, известна като регистрационния файл на транзакциите на SQL Server.

Как да възстановим данни от регистрационния файл на транзакциите на SQL Server

За да анализираме различните техники, които можем да използваме за възстановяване на данни от регистрационния файл на SQL Server на транзакциите, ще създадем друга база данни с една таблица, използвайки скрипта отдолу:

След като създадем базата данни и таблицата, ще попълним тази таблица с 30 записа, като използваме оператора INSERT INTO T-SQL отдолу:

Тъй като все още не е взето архивно копие от базата данни, как бихме могли да възстановим данните на таблицата, ако командата UPDATE отдолу се изпълнява над тази таблица с израз „никъде“, използван за филтриране на данните, които трябва да бъдат променени?

Използване на вградени методи

1.) fn_dblog: Съдържанието на дневника на транзакциите на SQL Server може да се чете онлайн, като се използват различни неявни функции. Първата функция, която ще се опитаме да използваме, за да възстановим загубените данни, е fn_dblog . Това е недокументирана рамкова функция с таблична стойност, използвана за прехвърляне на дневника на транзакциите на SQL Server и преглед на съдържанието на динамичния сегмент на този файл.

За да използвате fn_dblog() функция, трябва да дадете два параметъра, началния и крайния LSN на дневника. За да видите всички регистрационни файлове, достъпни в динамичния сегмент на файла SQL Transaction Log, можете да предадете стойността NULL за тези два параметъра. Тъй като резултатът се върна от работата на fn_dblog() съдържа 129 колони, по-добре е да изберете само сегментите, които съдържат данните, които ви интересуват, и да филтрирате резултата, за да покажете само операцията, която възнамерявате да възстановите. Например, операцията LOP_INSERT_ROWS се регистрира, когато е вграден друг запис, операцията LOP_DELETE_ROWS се записва, когато нов запис се изтрие, а операцията LOP_MODIFY_ROW се регистрира, когато текущият запис се актуализира. Долният скрипт може да се използва за проверка на операторите за актуализиране, които се изпълняват в тази база данни:

2.) fn_dump_dblog(): Следващата рамка работеше във функция, fn_dump_dblog(), има едно предимство пред работата на fn_dblog() е, че много добре може да се използва за четене на архивния дневник на транзакциите на SQL Server, независимо от възможността да се чете онлайн файла на регистрационния файл на транзакциите. След това отново, за да използвате функцията fn_dump_dblog(), трябва да дадете 68 задължителни параметъра, както е показано в скрипта по-долу:

3.) Команда за страница DBCC: SQL Server ни дава безброй DBCC команди, които могат да се използват за изпълнение на различни видове административни задачи на SQL Server. Една от тези недокументирани команди е командата DBCC Page, която може да се използва за четене на съдържанието на данните от базата данни и за регистриране на онлайн файлове. За да видите съдържанието на регистрационния файл на базата данни, трябва да дадете името на базата данни и идентификатора на регистрационния файл на транзакциите. Идентификационният номер на регистрационния файл на транзакциите може да бъде възстановен от заявката по-долу.

Ограничения на ръчните методи за възстановяване на данни от регистъра на транзакциите на SQL Server

  1. Трудно за изпълнение.
  2. Изисква сериозни технически познания.
  3. Висок риск от загуба на данни.

Експертно решение за Възстановяване на данни от регистрационния файл на SQL Server

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

SysTools SQL Log File Reader инструмент, който може да се използва удобно за четене на съдържанието на онлайн файла SQL Transaction Log. С помощта на този софтуер потребителят може лесно да чете и анализира регистрационните файлове на SQL Server на транзакциите INSERT / UPDATE / DELETE операции. Това професионално приложение на ниво Enterprise може да работи както в офлайн, така и в онлайн среда на база данни. Също така, това приложение предлага опция за динамични филтри за експортиране на селективен регистрационен файл на транзакциите. Този софтуер поддържа версията на SQL Server 2019.

Стъпки за възстановяване на данни от дневника на транзакциите на SQL Server

  1. Изтеглете и инсталирайте SQL Log Analyser.

2. Сега изберете опцията за база данни

3. Визуализирайте данните на регистрационния файл на транзакциите на SQL Server.

4. Щракнете върху бутона Експортиране, за да експортирате данните на регистрационния файл.

Заключение

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Осигуряване на SQL Server срещу множествено присъединяване

  2. Естествено присъединяване в SQL Server

  3. Вземете текущия идентификатор за влизане в SQL Server (T-SQL)

  4. Как мога да изброя всички външни ключове, препращащи към дадена таблица в SQL Server?

  5. Първи поглед към новия оценител на мощността на SQL Server