Инструкция backup log недопустима в модели восстановления simple

If you get an error that reads The statement BACKUP LOG is not allowed while the recovery model is SIMPLE when trying to back up a database in SQL Server or Azure SQL Edge, it’s because you’re trying to back up the transaction logs on a database that uses the simple recovery model.

To fix this, change the recovery model to either full or bulk logging.

The Error

Here’s an example of T-SQL code that results in the error:

BACKUP LOG Music 
TO DISK = '/var/opt/mssql/backups/Music.trn';

Result:

Msg 4208, Level 16, State 1, Line 1
The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.

The Cause

As mentioned, the error is caused when you try to back up the transaction logs on a database that uses the simple recovery model.

The simple recovery model doesn’t support log backups.

The Solution

To overcome this issue, set the database recovery model to either FULL or BULK_LOGGED:

USE master;  
ALTER DATABASE Music 
SET RECOVERY FULL;

That example set the database to full recovery mode.

However, you will also need to perform at least one full database backup before you start backing up your transaction logs. If you don’t do this, you’ll get error 4214, which states that BACKUP LOG cannot be performed because there is no current database backup.

Here’s an example of performing a full database backup:

BACKUP DATABASE Music 
    TO DISK = '/var/opt/mssql/backups/Music.bak' 
    WITH FORMAT;

Now the transaction logs can be backed up as required:

BACKUP LOG Music 
TO DISK = '/var/opt/mssql/backups/Music.trn';

Result:

Processed 3 pages for database 'Music', file 'Music_log' on file 1.

Using Azure SQL Edge?

If you use Azure SQL Edge, you might find this issue happens a lot. That’s probably because databases created with SQL Edge use the simple recovery model by default. And that’s because the model database uses the simple recovery model.

You can always change the recovery model on the model database to FULL, which will result in subsequent databases using full recovery mode by default.

Skip to content

DPM cannot backup SQL database with transactions log while recovery model of database is SIMPLE. You have to just change “Recovery model” of your DB in SQL Server Management Studio.

1) Log on SQL Server Management Studio
2) Right click on database – Properties
3) In the left pane choose Options
4) Set the recovery model to Full

OR

Create a new SQL Query (use “New query” button on the standart bar):

USE YourDBNameHere ;
ALTER DATABASE YourDBNameHere  SET RECOVERY FULL ;

5) Open your DPM Console and run Consistency Check on all databases with the same error.

Article ID: kb1128Last Modified: 29-Aug-2024

Situation

An MS SQL Backup Plan terminates with the following info message:

Cause

Transaction Log backups are only supported using the Full and Bulk-Logged recovery models.

A transaction log backup features the backup of the active part of the transaction log. So after you issue a Full or Differential backup the transaction log backup will have any transactions that were created after those other backups completed. After the transaction log backup is issued, the space within the transaction log can be used for other processes. If a transaction log backup is not taken, the transaction log will continue to grow.

Recovery models are designed to control transaction log maintenance. A recovery model is a database property that controls how transactions are logged, whether the transaction log requires (and allows) backing up, and what kinds of restore operations are available. Three recovery models exist: simple, full, and bulk-logged. Typically, a database uses the full recovery model or simple recovery model. A database can be switched to another recovery model at any time.

Solution

Switch Simple recovery mode to Full or Bulk-Logged.

  1. Connect to the required instance of the SQL Server Database Engine.
  2. In Object Explorer, click the server name to expand the server tree.
  3. Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.
  4. Right-click the database that was listed as skipped, then click Properties.
  5. In the Database Properties dialog box, in the Select a page group, click Options.
  1. In the Recovery model, select Full or Bulk-logged.
  2. Click OK.
  3. Restart your backup plan.


0 / 0 / 0

Регистрация: 15.05.2020

Сообщений: 12

Инкрементальный бэкап

10.01.2023, 21:11. Показов 4659. Ответов 8


Всем привет, перерыл множество ссылок, книг, но так и не нашел как создавать инкрементальный бэкап, везде только определения, либо программы по автоматическому созданию бэкапа, а мне нужен скрипт на скюле(
Я почти год делаю диф (разностный) бэкап, но как я понял, есть его тип -> Инкрементальный бэкап (инкрементный бэкап) — тип разностной резервной копии, когда копируются не все файлы источника, а только новые и измененные с момента создания предыдущей копии — полной или добавочной.
Хотел скрин вставить, но почему-то не вставляется, нельзя походу, суть такая:

вс ФУЛЛ — 60 гигов

пн дифф — 26 гигов

вт дифф — 37 гигов

ср дифф — 38 гигов

чт дифф — 40 гигов

пт дифф — 45 гигов

сб дифф — 48 гигов

И как я понимаю инкрементный бэкап писал бы только разницу между диффами (ну и в пн разницу с фулла), то есть существенно меньше (примерно 11, 1, 2, 5, 3).
ОБЪЯСНИТЕ ПОЖАЛУЙСТА, ТАК ЛИ ЭТО? И ЕСЛИ МОЖНО СКРИПТ К MSSQL НА ИНКРЕМЕНТНЫЙ БЭКАП.



0



IT_Exp

Эксперт

34794 / 4073 / 2104

Регистрация: 17.06.2006

Сообщений: 32,602

Блог

10.01.2023, 21:11

Ответы с готовыми решениями:

Бэкап MS SQL БД
Здравствуйте! Нужен совет спецов.. Есть два совершенно одинаковых системника, один используется как Windows Server 2012 R2 + 1C клиент +…

Бэкап базы…
Здравствуйте друзья.

Не могли бы Вы (у кого из вас конечно она есть) выложить бэкап базы данных Northwind.
Есть приложение которое Я…

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

8

1236 / 345 / 93

Регистрация: 14.10.2022

Сообщений: 1,046

11.01.2023, 11:39

Эээ… Инкрементальный бэкап, в терминах MSSQLSERVER — и есть разностный.
Вначале делаешь полный (опорный) бэкап, потом — дифференциальные бэкапы.
Пара из полного бэкапа и ближайшего снизу по времени дифференциального бэкапа — и есть тот бэкап, который вам нужно восстановить на нужный момент времени.
Если вам нужно приблизиться к моменту времени, на который вы хотите получить восстановленную копию базы как можно ближе к какому то моменту (напр. вам нужно состояние восстанавливаемой базы на определенный момент времени или на определенный LSN транзакции) — ваша база должна была быть в full recovery mode, и вы должны регулярно производить бэкапы логов.
Тогда вашим набором для восстановления будет:
1. Пара из опорного полного бэкапа, ближайший снизу по времени дифференциальный бэкап — их нужно восстановить в режиме Norecovery
2. Все бекапы лога, начиная с последнего LSN, зафиксированного в дифбэкапе (на практике просто берешь все бэкапы лога с момента начала дифбэкапа, или если нет дифбэкапа — фулбекапа и не паришься).
Их нужно последовательно ВСЕ восстановить в WITH NORECOVERY, STOPAT = ‘Необходимое_вам_время_на которое_будут_актуальны_данные_в_восстан овленной_копии’, а потом сделать restore log with recovery.

Всё, больше никаких чудес.

Можно, конечно, делать бэкапы отдельных файловых групп и т.д., но вам это не нужно.
Т.к. необходимость в этом возникает, если у вас бэкап на десятки терабайт, а база, соответственно, на сотни, и т.д. и т.п.
Не ваш случай, короче.
(был бы ваш, вы б подобных вопросов не задавали).



1



136 / 103 / 35

Регистрация: 27.07.2022

Сообщений: 336

11.01.2023, 12:41

Сообщение от uaggster

Эээ… Инкрементальный бэкап, в терминах MSSQLSERVER — и есть разностный.

А разве не бэкап лога, по сути?



1



Даниил001

0 / 0 / 0

Регистрация: 15.05.2020

Сообщений: 12

11.01.2023, 13:57

 [ТС]

Да, похоже действительно это бэкап лога, спасибо!
Я накидал скрипт, но возникает ошибка из-за BACKUP LOG: Инструкция BACKUP LOG недопустима в модели восстановления SIMPLE. Используйте инструкцию BACKUP DATABASE или измените модель восстановления с помощью инструкции ALTER DATABASE.


САМ СКРИПТ:

T-SQL
1
2
3
4
5
6
7
8
9
10
DECLARE @BDName NVARCHAR(512) = 'primer';
DECLARE @pathName NVARCHAR(512) 
DECLARE @h NVARCHAR(512) = DATEPART ( hh , GETDATE() ); 
DECLARE @m NVARCHAR(512) = DATEPART ( mi , GETDATE() );
DECLARE @s NVARCHAR(512) = DATEPART ( ss , GETDATE() ); 
DECLARE @myTime NVARCHAR(512) = @h + '-' + @m + '-' + @s;
SET @pathName = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\' + @BDName + '_' + Convert(varchar(10), GETDATE(), 121) + '[' + @myTime + ']' +  '.bak'
 
BACKUP LOG @BDName TO  DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'@BDName-log', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

Ведь если я заменю на BACKUP DATABASE, получится просто бэкап базы данных, а не ее лога. Поможет ли если изменить модель восстановления с помощью инструкции ALTER DATABASE, как рекомендует скюль?



0



646 / 285 / 119

Регистрация: 12.04.2022

Сообщений: 985

11.01.2023, 14:13

Да.



0



1236 / 345 / 93

Регистрация: 14.10.2022

Сообщений: 1,046

11.01.2023, 14:15

Сообщение от katamoto

А разве не бэкап лога, по сути?

Да черт его знает. Нет такого понятия.
Полный, дифференциальный, бекап лога.
Нет такого понятия, как инкрементальный.
Это в Windows backup есть. И по смыслу он соответствует как раз диффбэкапу. В инкрементальный бэкап помещаются:
1. Новые файлы.
2. Изменившиеся файлы.
Бэкап лога… это запись операций, которые применялись к данным. Соответственно, если их последовательно применить к исходным данным — получим итоговое состояние на какой то момент.
А диффбэкап — это как раз сумма добавленных данных, измененных данных и отметок об удалении данных между данными в базе на момент полного бэкапа и данными в базе на момент окончания диффбэкапа.
ИМХО, это как раз и есть инкрементальный?



0



0 / 0 / 0

Регистрация: 15.05.2020

Сообщений: 12

11.01.2023, 14:49

 [ТС]

Alter database ведь изменяет саму базу данных, производит манипуляции с ней, вроде вот этого
Синтаксис
ИЗМЕНИТЬ БАЗУ ДАННЫХ
{ ДОБАВИТЬ ФАЙЛ < спецификация файла > [ ,…n ] [ В ФАЙЛОВУЮ ГРУППУ имя_файла]
| ДОБАВИТЬ ФАЙЛ ЖУРНАЛА < спецификация файла > [ ,…n ]
| УДАЛИТЬ ФАЙЛ logical_file_name
| ДОБАВИТЬ ФАЙЛОВУЮ ГРУППУ имя_файла_группы
| УДАЛИТЬ ФАЙЛОВУЮ ГРУППУ имя_файла_группы
| ИЗМЕНИТЬ ФАЙЛ < спецификация файла >
| ИЗМЕНИТЬ ИМЯ = new_dbname
| ИЗМЕНИТЬ ФАЙЛОВУЮ ГРУППУ имя_файла {filegroup_property | NAME = new_filegroup_name }
| УСТАНОВИТЬ < optionspec > [ ,…n ] [ С < завершением > ]
| СОПОСТАВИТЬ < имя_файла >}

Если сделать так с имеющимися БД, продолжат ли они нормально функционировать
ALTER DATABASE MyDatabase SET RECOVERY BULK-LOGGED;
Или лучше уже забить на это дело? Просто места жуть как не хватает на дисках, а каждый день пишется диф приблизительно для 100 баз. На одних серверах их по 25, на других меньше.



0



1236 / 345 / 93

Регистрация: 14.10.2022

Сообщений: 1,046

11.01.2023, 15:34

Сообщение от Даниил001

ALTER DATABASE MyDatabase SET RECOVERY BULK-LOGGED;

Будьте осторожны.
Режим BULK_LOGGED имеет очень своеобразные особенности. Он полностью тождественен режиму FULL, но все операции BULK INSERT и тому подобные (например аналогичные BULK операции, произведенные с помощью data tier application) не отражаются в логе, и соответственно, если вы произвели массовую загрузку после full копии базы — вы не сможете восстановиться на любой момент времени после этой массовой загрузки только с помощью бэкапов лога.

Вы должны будете:
Сделать полную копию.
Сделать полную или дифференциальную копию перед массовой загрузкой
Выполнить массовую загрузку
Сделать полную или дифференциальную копию после массовой загрузки
Ну и независимо от этого делать бэкапы лога.
Ну и соответственно, следить за всем этим и хранить эти разные бэкапы до и после загрузки.

Не используйте BULK_LOGGED.
Вам это не нужно.

Используйте simple, если вы собираетесь восстанавливаться по состоянию на момент создания бэкапа, или используйте FULL, если вы хотите иметь возможность восстановиться на любой момент времени.



1



0 / 0 / 0

Регистрация: 15.05.2020

Сообщений: 12

11.01.2023, 19:17

 [ТС]

Спасибо, учту!



0



BasicMan

Эксперт

29316 / 5623 / 2384

Регистрация: 17.02.2009

Сообщений: 30,364

Блог

11.01.2023, 19:17

Помогаю со студенческими работами здесь

Не удалось выполнить бэкап БД
при задании резервной копии бд через SQL MS выходит сообщение об ошибке &quot;Не удалось выполнить резервное копирование для следующего объекта…

Бэкап средствами SQL?
Подскажите как сделать бэкапы по времени средствами SQL?
Заранее благодарен…

Бэкап с другого сервера
Здравствуйте!
Microsoft SQL Server 2012

Раньше с этим не работал.
Задача такая:
На сервере (1) установлен Microsoft SQL Server…

Бэкап и запуск скрипта
Всем Привет.

Я новенький в этой теме, помогите пожалуйста, возможно ли после выполнения резервного копирование, SQl автоматом…

Бэкап на удаленные файловые шары
Привет!
В организации есть SQL сервер 2008R2. Для сайта крутиться база размером 60 гб, бекап делаю руками, при этом:
После снятия…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

9

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

Понимание моделей восстановления SQL Server

Каждая база данных на SQL Server имеет установку модели восстановления. SQL Server имеет три различных модели восстановления: простая (Simple), полная (Full) и с неполным протоколированием (Bulk-Logged). Установка модели восстановления определяет, какие варианты создания резервных копий и восстановления доступны для базы данных, а также то, каким образом ядро базы данных обрабатывает сохранение записей в журнале транзакций.

Журнал транзакций представляет собой подробный файл, который используется для записи обновлений, выполняемых в каждой транзакции. Ядро SQL Server использует этот журнал для поддержания целостности базы данных. В случае, если транзакция требует отката, или база данных повреждается по какой-то причине, журнал транзакций используется для восстановления базы данных в согласованное состояние. Модель восстановления для базы данных определяет, как много данных требуется записать SQL Server в журнал транзакций, и может ли быть выполнено восстановление к некоторой точке во времени. Начальная установка модели восстановления для новой базы данных определяется моделью восстановления системной базы данных model. Настройка модели восстановления базы данных может быть легко изменена либо с помощью SSMS, либо кодом T-SQL. Чтобы лучше понять детали каждой модели восстановления и то, как они влияют на доступные варианты резервирования и восстановления, позвольте мне сделать обзор каждой из имеющихся моделей восстановления.

Простая модель восстановления

Simple recovery model является самой простой из моделей восстановления. Когда используется эта модель, каждая транзакция по-прежнему записывается в журнал транзакций. Записи журналов транзакций будут автоматически удаляться , если используется простая модель восстановления. Этот процесс удаления происходит для всех завершенных транзакций, когда устанавливается контрольная точка. Поскольку записи журнала удаляются при возникновении контрольной точки, резервирование журналов транзакций не поддерживается при использовании простой модели восстановления. Это означает, что восстановление к заданному моменту времени не может быть выполнено, если для базы данных модель восстановления установлена в SIMPLE. Поскольку в данном режиме журнал транзакций автоматически очищается, это позволяет сохранять его малый размер и избежать контроля над его ростом.

Используя простую модель восстановления, вы можете делать только полные и дифференциальные резервные копии. Поскольку эта модель не поддерживает использование резервирования журналов транзакций, вы можете восстанавливать базу данных только к моменту времени, когда было выполнено полное или дифференциальное резервирование. Если требуется обеспечить восстановление базы данных к какому-нибудь другому моменту времени, необходимо использовать другую модель восстановления.

Полная модель восстановления

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

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

Помимо транзакций вставки и обновления, в журнал записывается множество информации, связанной с другими операциями, подобными созданию/изменению индекса и массовой загрузки. Если вы обнаружили, что ваш журнал транзакций заполняется вследствие операций с индексами или массовой загрузки (например, SELECT INTO), вы можете рассмотреть вариант перехода на модель восстановления с неполным протоколированием, пока эти операции выполняются.

Модель восстановления с неполным протоколированием

Модель восстановления с неполным протоколированием минимизирует использование пространства журнала транзакций при операциях с неполным протоколированием, подобных BULK INSERT, SELECT INTO или CREATE INDEX. Функцилнальность этой модели подобна полной модели восстановления за исключением того, что записи в журнал транзакции минимально протоколируются при выполнении указанных операций. Минимальное протоколирование помогает поддерживать журнал меньших размеров, но при этом журнализируется не так много информации.

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

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

Модель восстановления с неполным протоколированием является отличным способом минимизировать объем журнала транзакций и улучшить производительность массовых операций с неполным протоколированием. Однако следует иметь в виду, что во время, когда была выполнена операция массовой загрузки, восстановление к определенному моменту времени не может быть выполнено. Следовательно, чтобы минимизировать потерю данных при использовании операций массовой загрузки, вам нужно сделать бэкап журнала транзакций непосредственно перед этой операцией, а затем еще один сразу после завершения операции. При этом восстановление к определенному моменту времени может быть выполнено при использовании любых бэкапов журнала транзакций, как сделанных до операции массовой загрузки, так и выполненных после специальной резервной копии журнала, выполненной после завершения операции массовой загрузки.

Какая модель восстановления используется?

Существует много способов для определения того, какая модель восстановления для базы данных используется. Одним вариантом определения модели восстановления является SQL Server Management Studio. Для этого сначала щелкните правой кнопкой на базе данных и выберите пункт «Properties» (свойства) из меню. В окне свойств выберите пункт «Options» (опции) в левом контекстном меню. Выполнив эти действия, вы увидите нижеприведенное окно.

Рис.1: Опция Recovery Model

Рисунок 1 показывает, что для базы данных AdventureWorks2017 модель восстановления установлена в значение Simple.

Другим способом отображения свойств восстановления базы данных является выполнение кода T-SQL, показанного в листинге 1.

Листинг 1: Код для отображения модели восстановления

SELECT name, recovery_model_desc  
FROM sys.databases
WHERE name = 'AdventureWorks2017' ;

Изменение модели восстановления

С течением времени может потребоваться изменить модель восстановления. Это может произойти, когда приложению требуется больше или меньше вариантов восстановления базы данных. Если требуется изменить модель восстановления, это можно легко сделать с помощью кода в листниге 2.

Листинг 2: Изменение модели восстановления с помощью кода T-SQL

USE master; 
GO
ALTER DATABASE AdventureWorks2017 SET RECOVERY FULL;
GO

В листинге 2 модель восстановления для базы данных AdventureWorks2017 была изменена на FULL. Кроме того, вы можете изменить модель восстановления базы данных с помощью страницы свойств SSMS, показанного на рисунке 1. Для этого просто выберите требуемый вариант в поле Recovery Model, а затем щелкните OK.

Восстановление баз данных для каждой модели восстановления

Модель восстановления определяет вид резервных копий, которые могут быть сделаны для базы данных, который, в свою очередь, определяет имеющиеся варианты для восстановления поврежденной базы данных. Давайте рассмотрим то, как каждая модель восстановления может повлиять на варианты восстановления для типичной проблемы, приводящей к повреждению базы данных. Типичная проблема, которую я рассмотрю, заключается в некорректном обновлении программистом T-SQL базы данных, который затем просит администратора баз данных восстановить базы данных к некоторому моменту времени, предшествующему ошибочному процессу обновления, повредившего базу данных. В реальных условиях администратору чаще приходится восстанавливать базу данных в результате выполнения некорректного кода, чем в результате повреждения из-за аппаратных сбоев. Ниже я исследую, по крайней мере, один вариант, который может быть использован для восстановления поврежденной базы данных в результате программной ошибки для каждой из различных моделей восстановления.

Простая модель восстановления

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

Полная модель восстановления

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

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

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

Имеются и другие варианты, которые могут быть использованы для восстановления к определенному моменту времени после полного бэкапа. Одним из таких вариантов может быть использование дифференциального бэкапа. Дифференциальный бэкап — это бэкап, который содержит все изменения с базой данных, произошедшие после последнего полного бэкапа.

Модель восстановления в неполным протоколированием

Подобно полной модели восстановления, модель восстановления с неполным протоколированием поддерживает восстановление к определенному моменту времени, если момент времени восстановления не содержится в бэкапе журнала транзакций, содержащего операции неполного протоколирования. Таким образом, если база данных повреждается в результате программной ошибки при использовании модели восстановления с неполным протоколированием, администратор по-прежнему может восстановить базы данных , если повреждение произошло до или после бэкапа журнала транзакций, который содержит операции с неполным протоколированием. Если обновление происходит, когда выполняется операция с неполным протоколированием, то лучшее, что может сделать администратор, это восстановить к моменту времени последнего бэкапа журнала транзакций, выполненного до операции с неполным протоколированием. Даже если администратор не сможет восстановить базу к моменту времени, входящему в бэкап журнала транзакций, когда он содержит операцию с неполным протоколированием, он, по крайней мере, может это сделать, если журнал транзакций не содержит каких-либо операций с неполным протоколированием.

Модели восстановления

Модель восстановления базы данных определяет доступные варианты резервирования/восстановления. Она также сообщает SQL Server, как должен обслуживаться журнал транзакций. Модель восстановления также определяет доступные варианты восстановления для базы данных. При простой модели восстановления база данных может быть восстановлена только к моменту времени последнего полного бэкапа или дифференциального. Для полной модели и модели восстановления с неполным протоколированием возможно восстановление базы данных к моменту времени после полного бэкапа с помощью восстановления к определенному моменту времени. Важно убедиться, что каждая база данных на экземпляре имеет установку модели восстановления, соответствующую требованиям приложения, использующего эту базу данных, к резервированию и восстановлению. Только понимание этих требований позволит правильно выбрать модель восстановления. Если вы хотите больше узнать о резервировании и восстановлении базы данных, обратитесь к документации Майкрософт.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Лего парижский ресторан инструкция
  • Гриль steakmaster redmond rgm m801 инструкция
  • Slap chop инструкция по применению измельчитель
  • Основа для разработки инструкции по охране труда для работника
  • Амоксиклав порошок 250 инструкция