Управление журналом транзакций. Ms sql журнал транзакций
Как применить резервную копию журналов транзакций (Transact-SQL)
- 04/01/2012
- Время чтения: 2 мин
В этой статье
Для применения резервной копии журнала транзакций к базе данных необходимо выполнение следующих условий.
Перед созданием самой последней полной или разностной резервной копии базы данных необходимо, чтобы в базе данных использовалась модель полного восстановления (или модель восстановления с неполным протоколированием).
В последовательности восстановления должен указываться параметр WITH NORECOVERY, если восстанавливаются ранние резервные копии.
Резервные копии журналов необходимо применять в порядке их создания, без разрывов в цепочке журналов. За исключением последней резервной копии журналов, необходимо использовать параметр WITH NORECOVERY следующим образом:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;При применении последней резервной копии журналов можно сделать следующее.
Восстановить базу данных в составе последней инструкции BACKUP LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY; GOПодождать, а затем восстановить базу данных отдельной инструкцией RESTORE DATABASE:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; RESTORE DATABASE <database_name> WITH RECOVERY; GOВ последнем случае можно проверить, восстановлены ли все нужные резервные копии журналов. Такой подход часто полезен при выполнении восстановления на момент времени.
Во избежание неоднозначности в каждой инструкции WITH RECOVERY рекомендуется явное задание параметра WITH NORECOVERY или WITH RECOVERY. Это особенно важно учитывать при написании сценариев. |
Использование резервной копии журнала транзакций
Чтобы применить резервную копию журналов транзакций, выполните инструкцию RESTORE LOG, указав при этом:
имя базы данных, к которой будет применен журнал транзакций;
устройство резервного копирования, с которого будет восстановлена резервная копия журналов транзакций;
предложение NORECOVERY.
В этой инструкции применяется следующая основная синтаксическая конструкция:
RESTORE LOG имя_базы_данных FROM <устройство_резервного_копирования> WITH NORECOVERY.
Здесь имя_базы_данных — имя базы данных, а <устройство_резервного_копирования> — имя устройства, на котором содержится восстанавливаемая резервная копия журнала.
Повторите шаг 1 для каждой резервной копии журналов транзакций, которые необходимо применить.
После восстановления из последовательности восстановления последней резервной копии базу данных следует восстановить при помощи следующей инструкции:
RESTORE имя_базы_данных WITH RECOVERY

Важно!При создании зеркальной базы данных этап восстановления можно пропустить. Зеркальная база данных должна остаться в состоянии RESTORING.
Пример
По умолчанию, база данных База данных AdventureWorks2008R2 пользуется простой моделью восстановления. В следующем примере для перехода на модель полного восстановления требуется изменить базу данных следующим образом:
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULLА. Применение единичной резервной копии журналов транзакций
В следующем примере база данных AdventureWorks2008R2 восстанавливается с помощью полной резервной копии базы данных, которая находится на устройстве резервного копирования с именем AdventureWorks2008R2_1. Затем применяется первая резервная копия журнала транзакций, находящаяся на устройстве с именем AdventureWorks2008R2_log. В заключение происходит восстановление базы данных.
RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2_1 WITH NORECOVERY GO RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2_log WITH FILE = 1, WITH NORECOVERY GO RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY GO
Б. Применение нескольких резервных копий журналов транзакций
В следующем примере база данных AdventureWorks2008R2 восстанавливается с помощью полной резервной копии базы данных, которая находится на устройстве резервного копирования с именем AdventureWorks2008R2_1. Затем последовательно применяются первые три копии журнала транзакций, находящиеся на устройстве с именем AdventureWorks2008R2_log. В заключение происходит восстановление базы данных.
RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2_1 WITH NORECOVERY GO RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2_log WITH FILE = 1, NORECOVERY GO RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2_log WITH FILE = 2, WITH NORECOVERY GO RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2_log WITH FILE = 3, WITH NORECOVERY GO RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY GOСм. также
Задания
Справочник
Основные понятия
Управление журналом транзакций | Microsoft Docs
- 04/01/2012
- Время чтения: 2 мин
В этой статье
Каждая база данных SQL Server содержит журнал, в который записываются все транзакции и все изменения базы данных, выполняемые каждой транзакцией. Журнал транзакций — это важная составляющая базы данных, и понимание и управление этим журналом является важной частью роли администратора базы данных. Это особенно верно для модели полного восстановления и модели восстановления с неполным протоколированием, которые требуют регулярного резервного копирования журналов.
В разделе также содержатся важные сведения о базовой архитектуре журналов транзакций и о том, как ими управлять.
Рекомендуется размещать журнал транзакций в отказоустойчивом хранилище, таком как зеркальные диски, чтобы уменьшить риск повреждения журнала транзакций. |
В этом разделе
Общие сведения о журналах транзакцийПредставляет журнал транзакций и поддерживаемые им действия, содержит ссылки на дополнительные сведения о журналах транзакций.
Модели восстановления и управление журналом транзакцийОбъясняет роль модели восстановления базы данных в управлении журналом транзакций, рассказывает, как выбрать модель восстановления базы данных, какие транзакции минимально протоколируются в простой модели восстановления и модели восстановления с неполным протоколированием, и содержит руководство по переключению моделей восстановления.
Управление журналом транзакцийОбъясняет управление пространством журнала, длительными транзакциями и факторы, которые могут задержать усечение журнала.
См. также
Основные понятия
msdn.microsoft.com
Шринк (Shrink) лога транзакций MS SQL 2008/2012 -
Когда при подключении к базе MS SQL появляются ошибки:или
Ошибка СУБД: Microsoft OLE Provider for SQL Server: The transaction log for database “ReportServer” is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column is sys.database HRESULT=80040E14, SQLSTATE=4 2000, native=9002
это значит, что на диске, где расположен лог транзакций закончилось место и теперь СУБД некуда записывать данные о новых транзакциях. Чаще всего такое происходит, когда не установлено никаких ограничений на размер лога и в MS SQL не создано соответствующих планов обслуживания.
В таком случае нужно уменьшить размер самого файла транзакций (*.ldf), другими словами сделать шринк (сжатие) лога. Для этого можно использовать как запрос, так и сжатие лога вручную.
Рассмотрим сжатие лога транзакций вручную:


Выполнить сжатие (Shrink) лога транзакций. Правой кнопкой на базе — Задачи(Tasks) — Сжать(Shrink) — Файлы(Files) 
Установить Тип файла(File type) — Журнал(Log) — в Операция сжатия(Shrink action) — выбрать Реорганизовать страницы, перед тем освоить неиспользуемое место(Reorganize pages before releseasing unused space) — Сжать файл (Shrink file to)указать приемлемый размер лога.

Установить модель восстановления Полная(Full). Правой кнопкой на базе — Свойства(Properties) — Параметры(Options) — 4-й сверху пункт Модель восстановления(Recovery model) — Полная(Full) — OK.

Вконтакте
Одноклассники
Мой мир
www.itworkroom.com
MS SQL 2008 журнал транзакций
Вопрос: Бэкап базы данных SQL и усечение журнала транзакций
Добрый день!Вопрос очень элементарный, но прошу тапками не кидать, я в SQL-е новичек.
Есть БД, котораяет работает на SQL-express.Точнее - Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)Aug 19 2014 12:21:34Copyright (c) Microsoft CorporationExpress Edition with Advanced Services (64-bit) on Windows NT 6.3 <X64>(Build 9600: ). Экземпляр по умолчанию, единственный на сервере.
Модель восстановления - полная, размер журнала транзакций ограничен.База создана не мной, и сейчас возникла необходимость ее бэкапить + усекать журнал (до настоящего времени бэкапы тоже не делались). В случае заполнения журнала, бэкап и шринк выполнялся вручню, через студио, и не мной.
Если у кого-нибудь есть готовый скриптик по бэкапу и шринку журнала - поделитесь, плиз.Можно самый простой - чтобы делать полный бэкап БД, полный бэкап журнала и обрезать журнал.Планирую делать раз в сутки.
Планируется выполнять через виндовый планировщик, и sqlcmd, и стандартные команды типа "SQLCMD -S (local) -E -Q "BACKUP DATABASE My_BD TO DISK... BACKUP LOG... DBCC SHRINKFILE"В принципе, менеджмент студио показывает, как будут выглядеть эти команды в виде кода, но как их увязать, чтобы они запускались поочередно через sqlcmd?
И такой вопрос - если при бэкапе указать параметр noinit, то все последующие бэкапы будут дозаписываться в тот же файл, если не ошибаюсь? То есть через некоторое время файл бэкапа тоже выростет до огромного размера?
Заранее благодарен.
Ответ:| и буду регулярно делать бэкап БД + бэкап лога, его размер останеться примерно таким же? |
| Завершенные транзакции при бэкапе лога будут переноситься в БД, а на их место будут записываться новые, но сам файл лога будет расти несуществеено? |
forundex.ru



Важно! 





