LSN и планиране на възстановяване, Microsoft Docs
Този раздел се отнася само за бази данни на SQL Server, които използват модела за пълно възстановяване.
Когато планирате възстановяване, най-важните LSN са първият и последният LSN. Тези LSN могат да бъдат получени от следните места.
Таблицаbackupset вmsdb. Имената на колоните саfirst_lsn иlast_lsn.
Инструкция RESTORE HEADERONLY. Колоните се наричат FirstLSN иLastLSN.
Следните таблици дефинират тези данни за различни архиви.
first_lsn илиFirstLSN
Сериен номер на регистрационната транзакция на първия или най-ранния запис в регистрационния файл в резервния набор.
За данни или диференциални архиви, първият LSN определя най-ранния запис в журнала, необходим за извършване на възстановяване от този архив.
За архивиране на регистрационни файлове първият LSN идентифицира първия запис в журнала, включен в това архивиране.
last_lsn илиLastLSN
Сериен номер на транзакцията в регистрационния запис след резервния набор.
Последният LSN показва записа в журнала след края на архивирането. Данни и диференциални архиви (и архиви на регистрационни файлове, съдържащи групово записани операции) трябва да се превъртят поне към този LSN. В противен случай данните, копирани по време на възстановяване, ще бъдат непоследователни.
За архивиране на регистрационни файлове, съответното архивиране включва записи в журнала до, но не включително, дадения LSN.
LSN и резервни копия на данни или диференциални архиви
За общо и разликаПри резервни копия регистрационните данни междуfirst_lsn иlast_lsn са включени в архива. Това позволява това архивиране да се използва без архивиране на регистрационни файлове за възстановяване наlast_lsn.
За пълно и диференциално архивиране числотоlast_lsn е най-ранната точка за възстановяване при използване на това архивиране в последователността за възстановяване. Ако е необходима по-ранна точка за възстановяване, трябва да се използва по-ранно архивиране.
Когато планирате кое архивиране на регистрационни файлове да използвате за преобръщане след възстановяване от архив на данни или диференциално архивиране, обикновено започвате с първото архивиране след съответното архивиране на данни или диференциален архив. Проверката на свойствата на това архивиране намира резервно копие на регистрационен файл, където числотоfirst_lsn е по-малко или равно на числотоlast_lsn от резервното копие на данните или делта и чийто номерlast_lsn е по-голямо от числотоlast_lsn от резервното копие на данните или делта архивния файл.
LSN и резервни копия на регистрационни файлове в лог верига
Нова верига от регистрационни файлове започва или с първото пълно архивиране на базата данни, след като е създадено, или след превключване от обикновен модел на възстановяване към модел на пълно възстановяване или модел на възстановяване с групово регистриране. В първото архивиране на регистрационния файл във веригата параметърътbackupset.begins_log_chain= е 1.
Числатаfirst_lsn иlast_lsn се използват за обединяване на резервни копия на журнали в последователност (верига на журнали). Последователността на архивиране на регистрационни файлове ви позволява да събирате базата данни от най-новото архивиранеданни, от диференциално архивиране или от по-ранно архивиране, заобикаляйки липсващи или повредени архиви.
При резервни копия на регистрационни файловеfirst_lsn е LSN на първия запис в регистрационния файл в това архивиране и като се започне от този запис, резервното копие на регистрационния файл включва записи в регистрационния файл до, но не включително, записа с LSNlast_lsn. Две архивни копия на регистрационни файлове са последователни тогава и само ако LSN на последния запис в регистрационния файл в по-ранното архивиране (Backup_A) е по-голям или равен на LSN на първия запис в регистрационния файл в последващото архивиране (Backup_B); т.е. Backup_A.last_lsn>= Backup_B.first_lsn. Ако не е, тогава има празнина между тези архиви.
Значението на връзката между тези LSN е следното.
A.last_lsn= B.first_lsn
Ако A.last_lsn= B.first_lsn, B обикновено е резервното копие на регистрационния файл, направено непосредствено след A.
Тази връзка е показана на следващата фигура. Обърнете внимание, че записът n в регистрационния файл, присъстващ в резервно копие на регистрационен файл B, е записан катоlast_lsn в архивно копие на регистрационен файл A и катоfirst_lsn в архивно копие на регистрационен файл B.
A.последен_lsn> B.първи_lsn
Ако A.last_lsn> B.first_lsn, има припокриване. Припокриването обикновено се дължи на резервно копие на регистрационен файл само за копиране или на първото архивиране на регистрационен файл след възстановяване в определен момент. Припокриването може да доведе до различни разклонения за възстановяване. За повече информация вижте Пътища за възстановяване.
Причини за счупени лог вериги
По принцип SQL Server Database Engine предотвратявапоявата на пропуски в последователността от архивиране на регистрационни файлове, поддържане на целостта на веригата на регистрационните файлове. Въпреки това DBA може да прекъсне веригата за регистриране, като промени модела на възстановяване на прост и обратно на пълен или групово регистриран.
Преминаването напред чрез промени в модела за възстановяване с помощта на простия модел за възстановяване не е възможно, тъй като веригата на регистрационните файлове е прекъсната. След превключване към модел на пълно възстановяване или модел на групово регистрирано възстановяване, трябва да премахнете нова диференциална база за архивиране или набор от диференциални бази. Като алтернатива можете да използвате диференциални резервни копия, за да преодолеете тази празнина.