Это интересно

  • ОКД
  • ЗКС
  • ИПО
  • КНПВ
  • Мондиоринг
  • Большой ринг
  • Французский ринг
  • Аджилити
  • Фризби

Опрос

Какой уровень дрессировки необходим Вашей собаке?
 

Полезные ссылки

РКФ

 

Все о дрессировке собак


Стрижка собак в Коломне

Поиск по сайту

Управление журналом транзакций. 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. Это особенно важно учитывать при написании сценариев.

Использование резервной копии журнала транзакций

  1. Чтобы применить резервную копию журналов транзакций, выполните инструкцию RESTORE LOG, указав при этом:

    • имя базы данных, к которой будет применен журнал транзакций;

    • устройство резервного копирования, с которого будет восстановлена резервная копия журналов транзакций;

    • предложение NORECOVERY.

    В этой инструкции применяется следующая основная синтаксическая конструкция:

    RESTORE LOG имя_базы_данных FROM <устройство_резервного_копирования> WITH NORECOVERY.

    Здесь имя_базы_данных — имя базы данных, а <устройство_резервного_копирования> — имя устройства, на котором содержится восстанавливаемая резервная копия журнала.

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

  3. После восстановления из последовательности восстановления последней резервной копии базу данных следует восстановить при помощи следующей инструкции:

    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

См. также

Задания
Справочник
Основные понятия

msdn.microsoft.com

Управление журналом транзакций | Microsoft Docs

  • 04/01/2012
  • Время чтения: 2 мин

В этой статье

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

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

Важное примечаниеВажно!

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

В этом разделе

  • Общие сведения о журналах транзакцийПредставляет журнал транзакций и поддерживаемые им действия, содержит ссылки на дополнительные сведения о журналах транзакций.

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

  • Управление журналом транзакцийОбъясняет управление пространством журнала, длительными транзакциями и факторы, которые могут задержать усечение журнала.

См. также

Основные понятия

msdn.microsoft.com

Шринк (Shrink) лога транзакций MS SQL 2008/2012 -

Когда при подключении к базе MS SQL появляются ошибки:

Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Журнал транзакций для базы данных «ReportServer» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys. databases HRESULT=80040E14, SQLStvr: Error state=2, Severity=11,native=9002, line=1

или

Ошибка СУБД: 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), другими словами сделать шринк (сжатие) лога. Для этого можно использовать как запрос, так и сжатие лога вручную.

Рассмотрим сжатие лога транзакций вручную:

Шаг 1. Установить модель восстановления Простая (Simple). Правой кнопкой на базе — Свойства(Properties)

выбор свойства базы данных

Далее:  Параметры(Options) — 4-й сверху пункт Модель восстановления(Recovery model) — Простая(Simple) — OK.

выбор модели восстановления

Выполнить сжатие (Shrink) лога транзакций. Правой кнопкой на базе — Задачи(Tasks) — Сжать(Shrink) — Файлы(Files) Сжать файл

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

Reorganize pages before releseasing unused space

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

Модель восстановления(Recovery model)

Вконтакте

Одноклассники

Мой мир

Facebook

E-mail

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, то все последующие бэкапы будут дозаписываться в тот же файл, если не ошибаюсь? То есть через некоторое время файл бэкапа тоже выростет до огромного размера?

Заранее благодарен.

Ответ: mcmurphy
и буду регулярно делать бэкап БД + бэкап лога, его размер останеться примерно таким же?
Еще раз - полный бэкап ничего не делает с журналом. Только бэкап журнала.mcmurphy
Завершенные транзакции при бэкапе лога будут переноситься в БД, а на их место будут записываться новые, но сам файл лога будет расти несуществеено?
Это зависит от того, как часто вы будете делать изменение данных и бэкап журнала

forundex.ru


Смотрите также

KDC-Toru | Все права защищены © 2018 | Карта сайта