Создание резервной копии журнала транзакций (SQL Server). Журнал транзакций переполнен sql
Устранение неполадок при переполнении журнала транзакций (ошибка SLQ Server 9002)
Эта документация перемещена в архив и не поддерживается.
SQL Server 2012
В этом разделе описаны возможные действия при переполнении журнала транзакций, а также советы о том, как его избежать. Когда журнал транзакций переполняется, в компоненте Компонент SQL Server Database Engine происходит ошибка 9002. Журнал может заполниться, когда база данных работает в режиме «в сети» или находится в процессе восстановления. Если журнал заполняется, когда база данных находится в режиме «в сети», база данных остается в режиме «в сети», но доступной только для чтения, но не для обновления. Если журнал заполняется, когда база данных находится в процессе восстановления, компонент Компонент Database Engine помечает базу данных как RESOURCE PENDING. В любом случае необходимо вмешательство пользователя, чтобы сделать журнал транзакций доступным.
Ответные действия при переполнении журнала транзакций частично зависят от условий, которые вызвали переполнение журнала. Чтобы определить, что препятствует усечению журнала транзакций в конкретном случае, используйте столбцы log_reuse_wait и log_reuse_wait_desc представления каталога sys.database. Дополнительные сведения см. в разделе sys.databases (Transact-SQL). Описание причин, которые могут задержать усечение журнала, см. в разделе Журнал транзакций (SQL Server).
| Если при возникновении ошибки 9002 база данных находилась в состоянии восстановления, то после устранения проблемы восстановите базу данных с помощью инструкции ALTER DATABASE database_name SET ONLINE. |
При переполнении журнала транзакций предусмотрены следующие ответные действия:
-
создание резервной копии журнала;
-
освобождение места на диске, чтобы журнал мог автоматически расти;
-
перемещение файла журнала на диск с достаточным объемом свободного места;
-
увеличение размера файла журнала;
-
добавление файла журнала на другой диск;
-
завершение или уничтожение длительной транзакции.
Эти возможности описаны в следующих разделах. Выберите ответное действие, наиболее подходящее в конкретной ситуации.
Создание резервной копии журнала
Для полных моделей восстановления и моделей с неполным протоколированием резервное копирование может предотвратить усечение журнала транзакций, если оно не было сделано недавно. Если резервная копия журнала создается в первый раз, необходимо сделать вторую резервную копию журнала, чтобы разрешить компоненту Компонент Database Engine усечение журнала до точки последнего резервного копирования. Усечение журнала освобождает пространство для новых записей журнала. Чтобы избежать повторного переполнения журнала, следует чаще выполнять резервное копирование.
Создание резервной копии журнала транзакций
Освободите место на диске
Возможно, следует освободить место на диске, где находится файл журнала транзакций для базы данных. Для этого можно удалить или переместить другие файлы. Освобожденное место на диске позволит системе восстановления автоматически увеличить размер файла журнала.
Перемещение файла журнала на другой диск
Если на текущем диске невозможно освободить достаточное количество места, следует переместить файл на другой диск, где места достаточно.
| Файлы журнала ни в коем случае не следует размещать в файловых системах со сжатием. |
Перемещение файла журнала
Увеличение размера файла журнала
Если на диске, на котором находится журнал, доступно свободное место, можно увеличить размер файла журнала. Максимальный объем файлов журнала составляет 2 терабайта (ТБ) на файл журнала.
Увеличение размера файла
Если автоувеличение отключено, база данных находится в режиме «в сети» и на диске достаточно свободного места, выполните одно из следующих действий.
-
Вручную увеличьте размер файла для получения одного шага роста размера файла.
-
Включить свойство автоматического увеличения при помощи инструкции ALTER DATABASE, чтобы установить отличное от нуля значение шага роста для параметра FILEGROWTH.
| В любом случае, если достигнут текущий предел размера файла, увеличьте значение MAXSIZE. |
Добавление файла журнала на другой диск
Добавьте новый файл журнала базы данных на другом диске, где достаточно места, с помощью инструкции ALTER DATABASE <имя_базы_данных> ADD LOG FILE.
Добавление файла журнала
Справочник
Основные понятия
technet.microsoft.com
Резервные копии журналов транзакций (SQL Server)
Опубликовано: Ноябрь 2016
Этот раздел относится только к тем базам данных SQL Server, которые используют модель полного восстановления или модель восстановления с неполным протоколированием. В этом разделе рассматривается создание резервной копии журнала транзакций базы данных SQL Server.
Перед созданием любой резервной копии журнала необходимо создать как минимум одну полную резервную копию. После этого резервное копирование журнала транзакций может выполняться в любое время, кроме времени другого резервного копирования журнала. Рекомендуется периодически производить резервное копирование журнала для снижения вероятности потери результатов работы и для усечения журнала. Обычно администратор базы данных время от времени создает полную резервную копию базы данных (например, еженедельно) и дополнительно создает разностные резервные копии через более короткие интервалы, например ежедневно. Независимо от резервного копирования базы данных администратор создает резервные копии журнала транзакций через еще более короткие интервалы, например каждые 10 минут. При таком подходе к резервному копированию оптимальный интервал между моментами выполнения резервного копирования зависит от множества факторов: важности данных, размера базы данных и рабочей нагрузки сервера.
В этом разделе.
Последовательность резервных копий цепочки журналов транзакций не зависит от резервных копий данных. Например, предположим, что имеется следующая последовательность событий:
| 8:00 | |
| Полдень | Резервное копирование журнала транзакций. |
| 16:00 | Резервное копирование журнала транзакций. |
| 18:00 | Резервное копирование базы данных. |
| 20:00 | Резервное копирование журнала транзакций. |
Резервная копия журналов транзакций, созданная в 20:00, содержит записи журнала транзакций с 16:00 до 20:00. В этом же временном диапазоне, а именно в 18:00, была создана полная резервная копия базы данных. Последовательность резервных копий журнала транзакций продолжается непрерывно от момента создания начальной полной резервной копии в 8:00 и до создания последней резервной копии журнала транзакций в 20:00. Сведения о применении этих резервных копий журналов приводятся в примере в разделе Применение резервных копий журналов транзакций (SQL Server).
Если журнал транзакций поврежден, будут потеряны все результаты работы, начиная с момента самого последнего действительного резервного копирования. Поэтому настоятельно рекомендуется помещать файлы журнала в отказоустойчивое хранилище.
Если база данных повреждена или требуется восстановить базу данных, рекомендуется создать резервную копию заключительного фрагмента журнала, чтобы можно было восстановить базу данных до текущего момента.
По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок служб SQL Server и в журнал системных событий. Если создание резервной копии журналов производится очень часто, это приводит к быстрому накоплению сообщений об успешном завершении. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений. Если работа существующих скриптов не зависит от этих записей, то их можно отключить с помощью флага трассировки 3226. Дополнительные сведения см. в статье Флаги трассировки (Transact-SQL).
Создание резервной копии журнала транзакций
Описание планирования заданий резервного копирования см. в разделе Использование мастера планов обслуживания.
Нет.
Журнал транзакций (SQL Server)Резервное копирование и восстановление баз данных SQL ServerРезервные копии заключительного фрагмента журнала (SQL Server)Применение резервных копий журналов транзакций (SQL Server)
msdn.microsoft.com
Создание резервной копии журнала транзакций (SQL Server)
Эта документация перемещена в архив и не поддерживается.
SQL Server 2012
В этом разделе описано, как создать резервную копию журнала транзакций в SQL Server 2012 с помощью среды Среда SQL Server Management Studio, Transact-SQL или PowerShell.
В этом разделе
Ограничения
Рекомендации
-
Если в базе данных используется полная модель восстановления или модель восстановления с неполным протоколированием, то необходимо регулярно создавать резервную копию журнала транзакций, чтобы защитить данные и предотвратить переполнение журнала транзакций. При этом журнал усекается и поддерживает восстановление базы данных на определенный момент времени.
-
По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок SQL Server и в журнал системных событий. Если создание резервной копии журналов производится очень часто, это приводит к быстрому накоплению сообщений об успешном завершении. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений. Если работа существующих скриптов не зависит от этих записей, их вы можете отключить с помощью флага трассировки 3226. Дополнительные сведения см. в разделе Флаги трассировки (Transact-SQL).
Безопасность
Разрешения
Разрешения BACKUP DATABASE и BACKUP LOG предоставлены по умолчанию членам предопределенной роли сервера sysadmin, а также членам предопределенных ролей базы данных db_owner и db_backupoperator.
Проблемы, связанные с владельцем и разрешениями у физических файлов на устройстве резервного копирования, могут помешать операции резервного копирования. SQL Server должен иметь возможность считывать и записывать данные на устройстве; учетная запись, от имени которой выполняется служба SQL Server, должна иметь разрешения на запись. Однако процедура sp_addumpdevice, добавляющая запись для устройства резервного копирования в системную таблицу, не проверяет разрешения на доступ к файлу. Проблемы физического файла устройства резервного копирования могут не проявляться до момента доступа к физическому ресурсу во время операции резервного копирования или восстановления.
[В начало]
Создание резервной копии журнала транзакций
-
После соединения с соответствующим экземпляром компонента Компонент SQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув его имя.
-
Раскройте узел Базы данных и в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.
-
Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем выберите команду Создать резервную копию. Откроется диалоговое окно Резервное копирование базы данных.
-
В списке База данных проверьте имя базы данных. При необходимости можно выбрать другую базу данных из списка.
-
Убедитесь в том, что используется либо модель восстановления FULL или BULK_LOGGED.
-
Выберите Журнал транзакций в списке Тип резервного копирования.
-
Также можно выбрать вариант Резервная копия только для копирования, чтобы создать резервную копию только для копирования. Резервная копия только для копирования — это резервная копия, изолированная от обычной последовательности резервных копий SQL Server. Дополнительные сведения см. в разделе Резервные копии только для копирования (SQL Server).
Примечание Если выбран параметр Разностная, то резервную копию только для копирования создать не удастся.
-
Оставьте имя резервного набора данных, предложенное по умолчанию в текстовом поле Имя, или введите другое имя резервного набора данных.
-
При необходимости можно ввести описание резервного набора данных в текстовом поле Описание.
-
Укажите, когда истекает срок действия резервного набора данных:
-
Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания. Это значение может быть задано в диапазоне от 0 до 99999 дней 0 означает, что срок действия резервного набора данных не ограничен.
Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней): диалогового окна Свойства сервера (страница Параметры базы данных). Для этого щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите его свойства, затем выберите страницу Параметры базы данных.
-
Чтобы указать дату истечения срока действия резервного набора данных, выберите пункт На, и введите дату истечения срока действия резервного набора данных.
-
-
Чтобы выбрать тип назначения резервной копии, выберите пункт Диск или Лента. Чтобы выбрать пути к 64 (или менее) дискам или накопителям на магнитной ленте, содержащим один набор носителей, нажмите кнопку Добавить. Выбранные пути отображаются в списке Создать резервную копию в.
Чтобы удалить носитель резервной копии, выберите его и нажмите кнопку Удалить. Чтобы просмотреть содержимое носителя резервной копии, выберите его и щелкните Содержимое.
-
Чтобы просмотреть или выбрать дополнительные параметры, нажмите кнопку Параметры на панели Выбор страницы.
-
Выберите параметр Переписать носитель, указав один из следующих вариантов:
-
Создать резервную копию в существующем наборе носителей
Для этого параметра выберите вариант Добавить в существующий резервный набор данных или Перезаписать все существующие резервные наборы данных. Дополнительные сведения см. в разделе Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).
При необходимости выберите Проверить имя набора носителей и срок действия резервного набора данных, чтобы при выполнении операции резервного копирования производилась проверка срока действия набора носителей и резервного набора данных.
При необходимости введите имя в текстовое поле Имя набора носителей. Если имя не указано, создается набор носителей с пустым именем. Если имя набора носителей указано, то для носителя (ленточного или дискового) проверяется совпадение введенного и существующего имени.
Если оставить имя носителя пустым и установить рядом с ним флажок для проверки, имя носителя при успешном завершении также станет пустым.
-
Создать резервную копию в новом наборе носителей и удалить все существующие резервные наборы данных
Для этого параметра введите имя в текстовое поле Имя нового набора носителей и, при необходимости, введите описание набора носителей в поле Описание нового набора носителей. Дополнительные сведения см. в разделе Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).
-
-
В разделе Надежность можно установить следующие флажки.
-
В разделе Журнал транзакций можно установить следующие флажки.
-
Для повседневного резервного копирования журналов оставьте вариант по умолчанию Усечь журнал транзакций путем удаления неактивных записей.
-
Для создания резервной копии заключительного фрагмента журнала (т.е. активного журнала) отметьте параметр Выполнять резервное копирование заключительного фрагмента журнала, оставляя базу данных в состоянии восстановления.
Резервное копирование заключительного фрагмента журнала выполняется после сбоя, чтобы предотвратить потерю сделанной работы. Резервное копирование активного журнала (резервное копирование заключительного фрагмента журнала) следует выполнять как после сбоя, так и перед началом восстановления базы данных, а также при сбое базы данных-получателя. Выбор этого параметра равносилен применению параметра NORECOVERY в инструкции BACKUP LOG языка Transact-SQL. Дополнительные сведения о резервном копировании заключительного фрагмента журнала см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).
-
-
При резервном копировании на накопитель на магнитной ленте (как указано в разделе Назначение страницы Общие) активен параметр Выгрузить ленту после резервного копирования. Щелкните этот параметр, чтобы активировать параметр Перемотать ленту перед выгрузкой.
-
SQL Server 2008 Enterprise и более поздние версии поддерживают сжатие резервных копий. По умолчанию сжатие резервных копий зависит от значения параметра конфигурации сервера backup-compression default. Однако, независимо от текущего значения по умолчанию на уровне сервера, можно сжать резервные копии, установив параметр Сжимать резервные копии, и отказаться от сжатия резервных копий, установив параметр Не сжимать резервные копии.
Просмотр текущих значений параметров по умолчанию для сжатия резервных копий
[В начало]
Создание резервной копии журнала транзакций
Пример (Transact-SQL)
| В этом примере используется база данных AdventureWorks2012 , которая опирается на простую модель восстановления. Чтобы разрешить создание резервных копий журналов, необходимо перед созданием полной резервной копии настроить в базе данных использование модели полного восстановления. Дополнительные сведения см. в разделе Просмотр или изменение модели восстановления базы данных (SQL Server). |
В этом примере создается резервная копия журнала транзакций для базы данных AdventureWorks2012 на созданном ранее устройстве резервного копирования, имеющая имя MyAdvWorks_FullRM_log1.
BACKUP LOG AdventureWorks2012 TO MyAdvWorks_FullRM_log1; GO
[В начало]
-
Используйте командлет Backup-SqlDatabase и укажите Log в качестве значения параметра -BackupAction.
В следующем примере создается резервная копия журнала для базы данных MyDB в заданном по умолчанию расположении резервных копирований на экземпляре сервера Computer\Instance.
--Enter this command at the PowerShell command prompt, C:\PS> Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Log
Настройка и использование поставщика SQL Server PowerShell
[В начало]
Справочник
Основные понятия
msdn.microsoft.com



Важно!