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

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

Опрос

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

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

РКФ

 

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


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

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

Задача «Очистка журнала» (план обслуживания)History Cleanup Task (Maintenance Plan). Очистка журнала транзакций sql 2008


Как просматривать журналы транзакций в SQL Server 2008 MS SQL Server

Вы можете использовать недокументированные

DBCC LOG(databasename, typeofoutput)

где typeofoutput:

0: Return only the minimum of information for each operation -- the operation, its context and the transaction ID. (Default) 1: As 0, but also retrieve any flags and the log record length. 2: As 1, but also retrieve the object name, index name, page ID and slot ID. 3: Full informational dump of each operation. 4: As 3 but includes a hex dump of the current transaction log row.

Например, DBCC LOG (база данных, 1)

Вы также можете попробовать fn_dblog.

Чтобы отменить транзакцию с использованием журнала транзакций, я бы посмотрел на транзакцию транзакций Stack Overflow после транзакции, используя журнал транзакций .

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

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

Функции SQL:

DBCC LOG и fn_dblog – подробнее здесь и здесь .

Сторонние инструменты:

Жаба для SQL Server и журнала ApexSQL .

Вы также можете проверить несколько других тем, где это обсуждалось:

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

  • Проводник / анализатор транзакций SQL Server

  • Прочитайте файл журнала (* .LDF) в SQL Server 2008

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

Поскольку я одновременно паниковал и искал решение, я пошел на первое, что я увидел – ApexSQL Logs , который составлял 2000 долларов, что было приемлемой ценой.

Тем не менее, с тех пор я узнал, что Toad для Sql Server может генерировать отменить сценарии из журналов транзакций, и это всего лишь 655 долларов.

Наконец, нашел еще более дешевый вариант SysToolsGroup Log Analyzer, и это всего лишь 300 долларов.

ru.msqlserver.com

Как работает репликация транзакций | Microsoft Docs

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

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

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

На следующем рисунке показаны основные компоненты репликации транзакций.

Компоненты репликации транзакций и потоки данных

Исходная база данных

Прежде чем новый подписчик репликации транзакций сможет получить добавочные изменения от издателя, на подписчике должны находиться таблицы со схемой и данными, совпадающими со схемой и данными в таблицах на издателе. Исходный набор данных обычно является моментальным снимком, созданным агентом моментальных снимков, который распространяется и применяется агентом распространителя. Исходный набор данных может также предоставляться через резервную копию или другим способом, например службами SQL Server Integration Services. Дополнительные сведения см. в разделе Инициализация подписки.

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

Параллельная обработка моментальных снимков

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

Агент моментальных снимков

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

После создания файлов моментальных снимков их можно просмотреть в папке моментальных снимков, используя проводник Microsoft Windows.

Изменение данных и агент чтения журналов

Агент чтения журналов выполняется на распространителе; обычно он выполняется непрерывно, но может также запускаться согласно задаваемому расписанию. При выполнении агент чтения журнала сначала читает журнал транзакций публикации (тот же самый журнал базы данных используется для отслеживания и восстановления данных во время выполнения обычных операций компонента SQL Server Database Engine) и выявляет все инструкции INSERT, UPDATE и DELETE или другие изменения данных в транзакциях, отмеченных для репликации. Далее агент копирует эти транзакции в пакетах в базу данных распространителя на стороне распространителя. Агент чтения журнала использует внутреннюю хранимую процедуру sp_replcmds для получения из журнала следующего набора команд, отмеченных для репликации. После этого база данных распространителя становится очередью с функциями хранения и переадресации, из которой изменения отправляются подписчикам. В базу данных распространителя отправляются только зафиксированные транзакции.

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

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

Агент распространителя

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

См. также

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

msdn.microsoft.com

Как применить резервную копию журналов транзакций (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

Создание резервной копии журнала транзакций (SQL Server)

  • 06/13/2017
  • Время чтения: 14 мин
  • Соавторы
    • Jennifer Hubbard
    • olprod

В этой статье

В этом разделе описано, как создать резервную копию журнала транзакций в SQL Server 2014SQL Server 2014 с помощью среды Среда SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLили PowerShell.This topic describes how to back up a transaction log in SQL Server 2014SQL Server 2014 by using Среда SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell.

В этом разделеIn This Topic

Перед началомBefore You Begin

ОграниченияLimitations and Restrictions

  • Инструкция BACKUP не разрешена в явных и неявных транзакциях.The BACKUP statement is not allowed in an explicit or implicit transaction.

РекомендацииRecommendations

  • Если в базе данных используется полная модель восстановления или модель восстановления с неполным протоколированием, то необходимо регулярно создавать резервную копию журнала транзакций, чтобы защитить данные и предотвратить переполнение журнала транзакций.If a database uses either the full or bulk-logged recovery model, you must back up the transaction log regularly enough to protect your data and to keep the transaction log from filling. При этом журнал усекается и поддерживает восстановление базы данных на определенный момент времени.This truncates the log and supports restoring the database to a specific point in time.

  • По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок служб SQL ServerSQL Server и в журнал системных событий.By default, every successful backup operation adds an entry in the SQL ServerSQL Server error log and in the system event log. Если создание резервной копии журналов производится очень часто, это приводит к быстрому накоплению сообщений об успешном завершении. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений.If back up the log very frequently, these success messages accumulate quickly, resulting in huge error logs that can make finding other messages difficult. Если работа существующих скриптов не зависит от этих записей, то их можно отключить с помощью флага трассировки 3226.In such cases you can suppress these log entries by using trace flag 3226 if none of your scripts depend on those entries. Дополнительные сведения см. в разделе Флаги трассировки (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

безопасностьSecurity

PermissionsPermissions

Разрешения BACKUP DATABASE и BACKUP LOG назначены по умолчанию членам предопределенной роли сервера sysadmin и предопределенным ролям базы данных db_owner и db_backupoperator .BACKUP DATABASE and BACKUP LOG permissions default to members of the sysadmin fixed server role and the db_owner and db_backupoperator fixed database roles.

Проблемы, связанные с владельцем и разрешениями у физических файлов на устройстве резервного копирования, могут помешать операции резервного копирования.Ownership and permission problems on the backup device's physical file can interfere with a backup operation. SQL ServerSQL Server должен иметь возможность считывать и записывать данные на устройстве; учетная запись, от имени которой выполняется служба SQL ServerSQL Server , должна иметь разрешения на запись. must be able to read and write to the device; the account under which the SQL ServerSQL Server service runs must have write permissions. Однако процедура sp_addumpdevice, добавляющая запись для устройства резервного копирования в системные таблицы, не проверяет разрешения на доступ к файлу.However, sp_addumpdevice, which adds an entry for a backup device in the system tables, does not check file access permissions. Проблемы физического файла устройства резервного копирования могут не проявляться до момента доступа к физическому ресурсу во время операции резервного копирования или восстановления.Such problems on the backup device's physical file may not appear until the physical resource is accessed when the backup or restore is attempted.

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Создание резервной копии журнала транзакцийTo back up a transaction log
  1. После подключения к соответствующему экземпляру компонента Компонент SQL Server Database EngineSQL Server Database Engineв обозревателе объектов разверните дерево сервера, щелкнув его имя.After connecting to the appropriate instance of the Компонент SQL Server Database EngineSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Раскройте узел Базы данныхи в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.

  3. Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем команду Создать резервную копию.Right-click the database, point to Tasks, and then click Back Up. Откроется диалоговое окно Резервное копирование базы данных .The Back Up Database dialog box appears.

  4. В списке База данных проверьте имя базы данных.In the Database list box, verify the database name. При необходимости можно выбрать другую базу данных из списка.You can optionally select a different database from the list.

  5. Убедитесь в том, что используется либо модель восстановления FULL , либо BULK_LOGGED.Verify that the recovery model is either FULL or BULK_LOGGED.

  6. Выберите Журнал транзакций в списке Тип резервного копирования.In the Backup type list box, select Transaction Log.

  7. Также можно выбрать вариант Резервная копия только для копирования , чтобы создать резервную копию только для копирования.Optionally, you can select Copy Only Backup to create a copy-only backup. Резервная копия только для копирования — это резервная копия SQL ServerSQL Server, которая не зависит от обычной последовательности создания традиционных резервных копий SQL ServerSQL Server.A copy-only backup is a SQL ServerSQL Server backup that is independent of the sequence of conventional SQL ServerSQL Server backups. Дополнительные сведения см. в разделе Резервные копии только для копирования (SQL Server).For more information, see Copy-Only Backups (SQL Server).

    Примечание

    Если выбран параметр Разностная , то резервную копию только для копирования создать не удастся.When the Differential option is selected, you cannot create a copy-only backup.

  8. Оставьте имя резервного набора данных, предложенное по умолчанию в текстовом поле Имя , или введите другое имя резервного набора данных.Either accept the default backup set name suggested in the Name text box, or enter a different name for the backup set.

  9. При необходимости можно ввести описание резервного набора данных в текстовом поле Описание .Optionally, in the Description text box, enter a description of the backup set.

  10. Укажите, когда истекает срок действия резервного набора данных.Specify when the backup set will expire:

    • Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания.To have the backup set expire after a specific number of days, click After (the default option), and enter the number of days after set creation that the set will expire. Это значение может быть задано в диапазоне от 0 до 99 999 дней. Значение 0 означает, что срок действия резервного набора данных не ограничен.This value can be from 0 to 99999 days; a value of 0 days means that the backup set will never expire.

      Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней) диалогового окна Свойства сервера (страницаПараметры базы данных ).The default value is set in the Default backup media retention (in days) option of the Server Properties dialog box (Database Settings page). Для этого щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите его свойства, затем страницу Параметры базы данных .To access this dialog box, right-click the server name in Object Explorer and select properties; then select the Database Settings page.

    • Чтобы указать дату истечения срока действия резервного набора данных, выберите пункт Наи введите дату истечения срока действия резервного набора данных.To have the backup set expire on a specific date, click On, and enter the date on which the set will expire.

  11. Чтобы выбрать тип назначения резервной копии, выберите пункт Диск, URL-адрес или Лента.Choose the type of backup destination by clicking Disk, URL or Tape. Чтобы выбрать пути к 64 (или менее) дискам или накопителям на магнитной ленте, содержащим один набор носителей, нажмите кнопку Добавить.To select the paths of up to 64 disk or tape drives containing a single media set, click Add. Выбранные пути отображаются в списке Создать резервную копию в .The selected paths are displayed in the Backup to list box.

    Чтобы удалить носитель резервной копии, выберите его и нажмите кнопку Удалить.To remove a backup destination, select it and click Remove. Чтобы просмотреть содержимое носителя резервной копии, выберите его и щелкните Содержимое.To view the contents of a backup destination, select it and click Contents.

  12. Чтобы просмотреть или выбрать дополнительные параметры, нажмите кнопку Параметры на панели Выбор страницы .To view or select the advanced options, click Options in the Select a page pane.

  13. Выберите параметр Переписать носитель , указав один из следующих вариантов:Select an Overwrite Media option, by clicking one of the following:

    • Создать резервную копию в существующем наборе носителейBack up to the existing media set

      Для этого параметра выберите вариант Добавить в существующий резервный набор данных или Перезаписать все существующие резервные наборы данных.For this option, click either Append to the existing backup set or Overwrite all existing backup sets. Дополнительные сведения см. в разделах Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).For more information, see Media Sets, Media Families, and Backup Sets (SQL Server).

      При необходимости выберите Проверить имя набора носителей и срок действия резервного набора данных , чтобы при выполнении операции резервного копирования производилась проверка срока действия набора носителей и резервного набора данных.Optionally, select Check media set name and backup set expiration to cause the backup operation to verify the date and time at which the media set and backup set expire.

      При необходимости введите имя в текстовое поле Имя набора носителей .Optionally, enter a name in the Media set name text box. Если имя не указано, создается набор носителей с пустым именем.If no name is specified, a media set with a blank name is created. Если имя набора носителей указано, то для носителя (ленточного или дискового) проверяется совпадение введенного и существующего имени.If you specify a media set name, the media (tape or disk) is checked to see whether the actual name matches the name you enter here.

      Если оставить имя носителя пустым и установить рядом с ним флажок для проверки, имя носителя при успешном завершении также станет пустым.If you leave the media name blank and check the box to check it against the media, success will equal the media name on the media also being blank.

    • Создать резервную копию в новом наборе носителей и удалить все существующие резервные наборы данныхBack up to a new media set, and erase all existing backup sets

      Для этого параметра введите имя в текстовом поле Имя нового набора носителей и при необходимости введите описание набора носителей в текстовое поле Описание нового набора носителей .For this option, enter a name in the New media set name text box, and, optionally, describe the media set in the New media set description text box. Дополнительные сведения см. в разделе Наборы носителей, семейства носителей и резервные наборы данных Sets (SQL Server).For more information, see Media Sets, Media Families, and Backup Sets (SQL Server).

  14. В разделе Надежность можно установить следующие флажки.In the Reliability section, optionally, check:

  15. В разделе Журнал транзакций можно установить следующие флажки.In the Transaction log section:

    • Для повседневного резервного копирования журналов оставьте вариант по умолчанию Обрезать журнал транзакций путем удаления неактивных записей.For routine log backups, keep the default selection, Truncate the transaction log by removing inactive entries.

    • Для создания резервной копии заключительного фрагмента журнала (т. е. активного журнала) отметьте параметр Выполнять резервное копирование заключительного фрагмента журнала, оставляя базу данных в состоянии восстановления.To back up the tail of the log (that is, the active log), check Back up the tail of the log, and leave database in the restoring state.

      Резервное копирование заключительного фрагмента журнала выполняется после сбоя, чтобы предотвратить потерю сделанной работы.A tail-log backup is taken after a failure to back up the tail of the log in order to prevent work loss. Резервное копирование активного журнала (резервное копирование заключительного фрагмента журнала) следует выполнять как после сбоя, так и перед началом восстановления базы данных, а также при сбое базы данных-получателя.Back up the active log (a tail-log backup) both after a failure, before beginning to restore the database, or when failing over to a secondary database. Выбор этого параметра равносилен применению параметра NORECOVERY в инструкции BACKUP LOG языка Transact-SQL.Selecting this option is equivalent to specifying the NORECOVERY option in the BACKUP LOG statement of Transact-SQL. Дополнительные сведения о резервных копиях заключительного фрагмента журнала см. в разделе Резервные копии заключительного фрагмента журнала (SQL Server).For more information about tail-log backups, see Tail-Log Backups (SQL Server).

  16. При резервном копировании на накопитель на магнитной ленте (как указано в разделе Назначение страницы Общие ) активен параметр Выгрузить ленту после резервного копирования .If you are backing up to a tape drive (as specified in the Destination section of the General page), the Unload the tape after backup option is active. Щелкните этот параметр, чтобы активировать параметр Перемотать ленту перед выгрузкой .Clicking this option activates the Rewind the tape before unloading option.

  17. SQL Server 2008 EnterpriseSQL Server 2008 Enterprise и более поздние версии поддерживают сжатие резервных копий. and later supports backup compression. По умолчанию сжатие резервных копий зависит от значения параметра конфигурации сервера backup-compression default .By default, whether a backup is compressed depends on the value of the backup-compression default server configuration option. Однако независимо от текущего значения по умолчанию на уровне сервера можно сжать резервные копии, установив параметр Сжимать резервные копии, или отказаться от сжатия резервных копий, установив параметр Не сжимать резервные копии.However, regardless of the current server-level default, you can compress a backup by checking Compress backup, and you can prevent compression by checking Do not compress backup.

    Просмотр текущих значений параметров по умолчанию для сжатия резервных копийTo view the current backup compression default

    ШифрованиеEncryption

    Для шифрования файла резервной копии установите флажок Зашифровать файл резервной копии .To encrypt the backup file check the Encrypt backup check box. Выберите алгоритм шифрования файла резервной копии и выберите сертификат или асимметричный ключ.Select an encryption algorithm to use for encrypting the backup file and provide a Certificate or Asymmetric key. Доступны следующие алгоритмы шифрования:The available algorithms for encryption are:

  • AES 128AES 128

  • AES 192AES 192

  • AES 256AES 256

  • Triple DESTriple DES

Использование Transact-SQLUsing Transact-SQL

Создание резервной копии журнала транзакцийTo back up a transaction log
  1. Выполните инструкцию BACKUP LOG для создания резервной копии журнала транзакций, указав следующее:Execute the BACKUP LOG statement to back up the transaction log, specifying the following:

    • имя базы данных, которой принадлежит журнал транзакций, резервную копию которого необходимо создать;The name of the database to which the transaction log that you want to back up belongs.

    • Устройство резервного копирования, на которое записывается резервная копия журнала транзакций.The backup device where the transaction log backup is written.

Примеры (Transact-SQL)Example (Transact-SQL)

Важно!

В этом примере используется база данных AdventureWorks2012AdventureWorks2012 , которая опирается на простую модель восстановления.This example uses the AdventureWorks2012AdventureWorks2012 database, which uses the simple recovery model. Чтобы разрешить создание резервных копий журналов, перед созданием полной резервной копии база данных должна быть настроена на использование модели полного восстановления.To permit log backups, before taking a full database backup, the database was set to use the full recovery model. Дополнительные сведения см. в разделе Просмотр или изменение модели восстановления базы данных (SQL Server).For more information, see View or Change the Recovery Model of a Database (SQL Server).

В этом примере создается резервная копия журнала транзакций для базы данных AdventureWorks2012AdventureWorks2012 на созданном ранее устройстве резервного копирования, имеющая имя MyAdvWorks_FullRM_log1.This example creates a transaction log backup for the AdventureWorks2012AdventureWorks2012 database to the previously created named backup device, MyAdvWorks_FullRM_log1.

BACKUP LOG AdventureWorks2012 TO MyAdvWorks_FullRM_log1; GO

Использование PowerShellUsing PowerShell

  1. Используйте командлет Backup-SqlDatabase и укажите Log в качестве значения параметра -BackupAction.Use the Backup-SqlDatabase cmdlet and specify Log for the value of the -BackupAction parameter.

    В следующем примере создается полная резервная копия журналов базы данных MyDB в заданном по умолчанию расположении резервного копирования на экземпляре сервера Computer\Instance.The following example creates a log backup of the MyDB database to the default backup location of the server instance Computer\Instance.

    --Enter this command at the PowerShell command prompt, C:\PS> Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Log

    Настройка и использование поставщика SQL Server PowerShellTo set up and use the SQL Server PowerShell provider

См. такжеSee Also

BACKUP (Transact-SQL) BACKUP (Transact-SQL) Применение резервных копий журналов транзакций (SQL Server) Apply Transaction Log Backups (SQL Server) Планы обслуживания Maintenance Plans Полные резервные копии файлов (SQL Server)Full File Backups (SQL Server)

msdn.microsoft.com

Задача "Очистка журнала" (план обслуживания)

  • 06/13/2017
  • Время чтения: 3 мин
  • Соавторы
    • Jennifer Hubbard
    • olprod

В этой статье

Используйте диалоговое окно Задача «Очистка журнала» , чтобы исключить устаревшие данные предыстории из таблиц в базе данных msdb.Use the History Cleanup Task dialog to discard old historical information from tables in the msdb database. Эта задача поддерживает удаление и восстановление журнала резервного копирования, журнала заданий агента SQL ServerSQL Server , а также журнала плана обслуживания.This task supports deleting backup and restore history, SQL ServerSQL Server Agent Job history, and maintenance plan history.

Эта инструкция применяет инструкции sp_purge_jobhistory и sp_delete_backuphistory .This statement uses the sp_purge_jobhistory and sp_delete_backuphistory statements.

Список элементов пользовательского интерфейсаUIElement List

СоединениеConnectionВыберите соединение с сервером, которое будет использоваться для выполнения этой задачи.Select the server connection to use when performing this task.

СоздатьNewСоздать новое соединение с сервером для его использования при выполнении этой задачи.Create a new server connection to use when performing this task. Диалоговое окно Создать соединение описано ниже в этом разделе.The New Connection dialog box is described later in this topic.

Журнал резервного копирования и восстановленияBackup and restore historyХранение записей о том, когда были созданы последние резервные копии, может помочь SQL ServerSQL Server в создании плана восстановления, когда потребуется восстановить базу данных.Retaining records of when recent backups were created can help SQL ServerSQL Server create a recovery plan when you want to restore a database. Срок хранения должен быть не меньше периода создания полных резервных копий базы данных.The retention period should be at least the frequency of full database back ups.

Журнал заданий агента SQL ServerSQL Server Agent Job historyЭтот журнал может помочь устранить ошибки, возникшие при выполнении заданий, или определить, почему были выполнены операции с базой данных.This history can help you troubleshoot failed jobs, or determine why database actions occurred.

Журнал плана обслуживанияMaintenance plan historyЭтот журнал может помочь устранить ошибки, возникшие при выполнении заданий плана обслуживания, или определить, почему были выполнены операции с базой данных.This history can help you troubleshoot failed maintenance plan jobs, or determine why database actions occurred.

Удалить из журнала записи старшеRemove historical data older thanУкажите возраст элементов, которые следует удалить.Specify age of items that you want to delete.

Просмотр T-SQLView T-SQLПросмотрите инструкции Transact-SQLTransact-SQL , выполняемые для данной задачи по отношению к серверу, на основе выбранных параметров.View the Transact-SQLTransact-SQL statements performed against the server for this task, based on the selected options.

Примечание

Если количество затронутых объектов велико, построение этого отображения может занять значительное время.When the number of objects affected is large, this display can take a considerable amount of time.

Диалоговое окно «Создание соединения»New Connection Dialog Box

Имя соединенияConnection nameВведите имя нового соединения.Enter a name for the new connection.

Выберите или введите имя сервераSelect or enter a server nameВыберите сервер для подключения при выполнении этой задачи.Select a server to connect to when performing this task.

ОбновитьRefreshОбновите список доступных серверов.Refresh the list of available servers.

Введите данные для входа на серверEnter information to log on to the serverУкажите способ проверки подлинности на сервере.Specify how to authenticate against the server.

Использовать встроенную безопасность WindowsUse Windows integrated securityПодключитесь к экземпляру компонента SQL Server Компонент Database EngineDatabase Engine с помощью проверки подлинности Microsoft Windows.Connect to an instance of the SQL Server Компонент Database EngineDatabase Engine with Microsoft Windows Authentication.

Использовать указанные имя пользователя и парольUse a specific user name and passwordПодключитесь к экземпляру компонента SQL Server Компонент Database EngineDatabase Engine с помощью проверки подлинности SQL Server.Connect to an instance of the SQL Server Компонент Database EngineDatabase Engine using SQL Server Authentication. Этот параметр недоступен.This option is not available.

Имя пользователяUser nameУкажите имя входа, используемое при проверке подлинности SQL ServerSQL Server .Provide a SQL ServerSQL Server login to use when authenticating. Этот параметр недоступен.This option is not available.

ПарольPasswordУкажите используемый при проверке подлинности пароль.Provide a password to use when authenticating. Этот параметр недоступен.This option is not available.

См. такжеSee Also

sp_purge_jobhistory (Transact-SQL) sp_purge_jobhistory (Transact-SQL) sp_delete_backuphistory (Transact-SQL)sp_delete_backuphistory (Transact-SQL)

msdn.microsoft.com

Как удалить журнал транзакций SQL Server? MS SQL Server

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

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

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

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

ALTER DATABASE testdb SET RECOVERY FULL;

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

DECLARE @path NVARCHAR(255) = N'\\backup_share\log\testdb_' + CONVERT(CHAR(8), GETDATE(), 112) + '_' + REPLACE(CONVERT(CHAR(8), GETDATE(), 108),':','') + '.trn'; BACKUP LOG foo TO DISK = @path WITH INIT, COMPRESSION;

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

ru.msqlserver.com

RESTORE (Transact-SQL) | Microsoft Docs

Синтаксис

--To Restore an Entire Database from a Full database backup (a Complete Restore): RESTORE DATABASE { database_name | @database_name_var }  [ FROM <backup_device> [ ,...n ] ]  [ WITH    {     [ RECOVERY | NORECOVERY | STANDBY =         {standby_file_name | @standby_file_name_var }        ]    | , <general_WITH_options> [ ,...n ]    | , <replication_WITH_option>    | , <change_data_capture_WITH_option>    | , <service_broker_WITH options>    | , <point_in_time_WITH_options—RESTORE_DATABASE>    } [ ,...n ]  ] [;] --To perform the first step of the initial restore sequence -- of a piecemeal restore: RESTORE DATABASE { database_name | @database_name_var }    <files_or_filegroups> [ ,...n ]  [ FROM <backup_device> [ ,...n ] ]    WITH       PARTIAL, NORECOVERY       [  , <general_WITH_options> [ ,...n ]        | , <point_in_time_WITH_options—RESTORE_DATABASE>       ] [ ,...n ]  [;] --To Restore Specific Files or Filegroups: RESTORE DATABASE { database_name | @database_name_var }    <file_or_filegroup> [ ,...n ]  [ FROM <backup_device> [ ,...n ] ]    WITH    {       [ RECOVERY | NORECOVERY ]       [ , <general_WITH_options> [ ,...n ] ]    } [ ,...n ] [;] --To Restore Specific Pages: RESTORE DATABASE { database_name | @database_name_var }    PAGE = 'file:page [ ,...n ]'  [ , <file_or_filegroups> ] [ ,...n ]  [ FROM <backup_device> [ ,...n ] ]    WITH        NORECOVERY       [ , <general_WITH_options> [ ,...n ] ] [;] --To Restore a Transaction Log: RESTORE LOG { database_name | @database_name_var }  [ <file_or_filegroup_or_pages> [ ,...n ] ]  [ FROM <backup_device> [ ,...n ] ]  [ WITH    {      [ RECOVERY | NORECOVERY | STANDBY =         {standby_file_name | @standby_file_name_var }        ]     | , <general_WITH_options> [ ,...n ]     | , <replication_WITH_option>     | , <point_in_time_WITH_options—RESTORE_LOG>    } [ ,...n ]  ] [;] --To Revert a Database to a Database Snapshot: RESTORE DATABASE { database_name | @database_name_var } FROM DATABASE_SNAPSHOT = database_snapshot_name <backup_device>::= {    { logical_backup_device_name |       @logical_backup_device_name_var }  | { DISK | TAPE } = { 'physical_backup_device_name' |       @physical_backup_device_name_var } } <files_or_filegroups>::= {    FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }  | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }  | READ_WRITE_FILEGROUPS } <general_WITH_options> [ ,...n ]::= --Restore Operation Options    MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]  | REPLACE  | RESTART  | RESTRICTED_USER --Backup Set Options  | FILE = { backup_set_file_number | @backup_set_file_number }  | PASSWORD = { password | @password_variable } --Media Set Options  | MEDIANAME = { media_name | @media_name_variable }  | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }  | BLOCKSIZE = { blocksize | @blocksize_variable } --Data Transfer Options  | BUFFERCOUNT = { buffercount | @buffercount_variable }  | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable } --Error Management Options  | { CHECKSUM | NO_CHECKSUM }  | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } --Monitoring Options  | STATS [ = percentage ] --Tape Options  | { REWIND | NOREWIND }  | { UNLOAD | NOUNLOAD } <replication_WITH_option>::=  | KEEP_REPLICATION <change_data_capture_WITH_option>::=  | KEEP_CDC <service_broker_WITH_options>::=  | ENABLE_BROKER  | ERROR_BROKER_CONVERSATIONS  | NEW_BROKER <point_in_time_WITH_options—RESTORE_DATABASE>::=  | {    STOPAT = { 'datetime'| @datetime_var }  | STOPATMARK = { 'lsn:lsn_number' }                  [ AFTER 'datetime']  | STOPBEFOREMARK = { 'lsn:lsn_number' }                  [ AFTER 'datetime']    } <point_in_time_WITH_options—RESTORE_LOG>::=  | {    STOPAT = { 'datetime'| @datetime_var }  | STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }                  [ AFTER 'datetime']  | STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }                  [ AFTER 'datetime']    }

Замечания

Во время автономного восстановления, если указанная база данных используется, функция RESTORE после короткой задержки принудительно отключает пользователей. Для восстановления в режиме «в сети» непервичной файловой группы база данных может продолжать использоваться, за исключением тех случаев, когда восстанавливаемая файловая группа переводится в режим вне сети. Данные в указанной базе данных заменяются восстановленными данными.

Дополнительные сведения о восстановлении базы данных см. в разделе Основные сведения о восстановлении из резервных копий и по журналам в SQL Server и Реализация сценариев восстановления для баз данных SQL Server.

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

После возникновения ошибки инструкция RESTORE может быть запущена вновь. Кроме того, можно указать, чтобы, несмотря на ошибки, инструкция RESTORE продолжала работу и восстановила как можно большее количество данных (см. параметр CONTINUE_AFTER_ERROR). Дополнительные сведения см. в разделе Действия при ошибках восстановления SQL Server, вызванных повреждением резервных копий.

Инструкция RESTORE недопустима в явной или неявной транзакции.

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

Резервные копии, созданные в Microsoft SQL Server, не могут быть восстановлены на более ранних версиях SQL Server.

Восстановление базы данных из копии удаляет кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. В SQL Server 2005 с пакетом обновления 2 (SP2) для каждого удаленного хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение: «SQL Server обнаружил %d экземпляров, записанных на диск хранилищ кэша для хранилища кэша "%s" (части кэша планов) в результате операций по обслуживанию или изменению настройки базы данных». Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого временного интервала.

Восстанавливаемая база данных должна иметь, по крайней мере, версию 80 (SQL Server 2000), чтобы ее можно было восстановить в SQL Server 2008 R2. Для баз данных SQL Server 2000 или SQL Server 2005, имеющих уровень совместимости менее 80, при восстановлении будет установлен уровень совместимости 80.

ПримечаниеПримечание

После восстановления базы данных SQL Server 2005 или SQL Server 2000 в SQL Server 2008 R2 она немедленно доступна для работы, а ее обновление производится автоматически. Если база данных содержит полнотекстовые индексы, то в процессе обновления будут произведены их импорт, сброс или перестроение, в зависимости от значения свойства сервера upgrade_option . Если при обновлении выбран режим импорта (upgrade_option = 2) или перестроения (upgrade_option = 0), полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если при обновлении выбран режим импорта, а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option, используйте процедуру sp_fulltext_service.

Сценарии восстановления

SQL Server поддерживает различные сценарии восстановления.

Неподдерживаемые ключевые слова инструкции RESTORE

В SQL Server 2008 следующие ключевые слова больше не поддерживаются.

Неподдерживаемое ключевое слово

Заменены на...

Пример заменяющего ключевого слова

LOAD

RESTORE

RESTORE DATABASE

TRANSACTION

LOG

RESTORE LOG

DBO_ONLY

RESTRICTED_USER

RESTORE DATABASE ... WITH RESTRICTED_USER

Требование для восстановления зашифрованной базы данных

Чтобы восстановить зашифрованную базу данных, необходимо иметь доступ к сертификату или асимметричному ключу, который использовался для шифрования базы данных. Без сертификата или асимметричного ключа восстановить базу данных нельзя. Поэтому сертификат, который используется для шифрования ключа шифрования базы данных, необходимо сохранять столько времени, сколько будет нужна база данных. Дополнительные сведения см. в разделе Сертификаты SQL Server и асимметричные ключи.

Базы данных с включенным форматом хранения vardecimal

Сравнение параметров RECOVERY и NORECOVERY

Откат контролируется инструкцией RESTORE при помощи параметров [ RECOVERY | NORECOVERY ].

  • Параметр NORECOVERY указывает на то, что откат не производится. Это позволяет продолжать накат при помощи следующей инструкции в последовательности.

    В этом случае последовательность восстановления может восстановить другие резервные копии и выполнить их накат.

  • Параметр RECOVERY (параметр по умолчанию) указывает на то, что откат должен быть выполнен после завершения наката для текущей резервной копии.

    Для восстановления базы данных необходимо, чтобы весь набор восстанавливаемых данных (набор данных наката) был согласован с базой данных. Если набор данных наката, необходимый для согласования с базой данных, достаточно велик и указан параметр RECOVERY, компонент Database Engine формирует ошибку.

Повторное восстановление

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

Последовательность восстановления может быть прервана и перезапущена при восстановлении всего содержимого соответствующих файлов.

Восстановление полнотекстовых данных

Во время полного восстановления полнотекстовые данные восстанавливаются вместе с другими данными базы данных. С помощью обычного синтаксиса RESTORE DATABASE database_name FROM backup_device полнотекстовые файлы восстанавливаются как часть файлов базы данных.

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

ПримечаниеПримечание

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

Настройка базы данных и восстановление

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

ПримечаниеПримечание

В этом состоит отличие от характера действий версий SQL Server до SQL Server 2000.

Однако использование параметра WITH RESTRICTED_USER переопределяет этот режим работы для настройки параметра доступа пользователя. Эта настройка всегда сохраняется, если инструкция RESTORE включает параметр WITH RESTRICTED_USER.

Таблицы журналов резервного копирования и восстановления

SQL Server включает таблицы журналов резервного копирования и восстановления, в которые заносятся данные слежения за резервным копированием и восстановлением для каждого экземпляра сервера. При выполнении восстановления таблицы журнала резервного копирования также изменяются. Сведения об этих таблицах см. в разделе Просмотр сведений о резервных копиях.

RESTORE LOG

Инструкция RESTORE LOG может включать список файлов, создаваемых во время наката. Эта возможность используется, если резервная копия журналов содержит журнальные записи, произведенные во время добавления файла в базу данных.

ПримечаниеПримечание

Для базы данных, использующей модель полного восстановления или модель восстановления с неполным протоколированием, необходимо, чтобы перед восстановлением базы данных была создана резервная копия конца журнала. Восстановление базы данных без создания резервной копии заключительного фрагмента журнала приведет к ошибке, если инструкция RESTORE DATABASE не содержит предложение WITH REPLACE или WITH STOPAT, в котором должно указываться время или транзакция, выполняемая после завершения резервного копирования данных. Дополнительные сведения о резервных копиях заключительного фрагмента журнала см. в разделе Резервные копии заключительного фрагмента журнала.

Восстановление в сети

ПримечаниеПримечание

Восстановление в сети допускается только в выпуске SQL Server 2005 Enterprise Edition и более поздних версиях.

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

Дополнительные сведения см. в разделе Выполнение оперативного восстановления.

Поэтапное восстановление

Поэтапное восстановление (новая возможность SQL Server 2005) расширяет возможности частичного восстановления Microsoft SQL Server 2000. Поэтапное восстановление позволяет восстанавливать файловые группы после начального частичного восстановления первичной и некоторых вторичных файловых групп. Файловые группы, которые не восстанавливаются, помечаются как вне сети и будут недоступны. Однако файловые группы вне сети могут быть восстановлены после восстановления файлов. Чтобы вся база данных могла быть поэтапно восстановлена в разное время, поэтапное восстановление поддерживает проверки, гарантирующие согласованность базы данных по окончании этого процесса.

ПримечаниеПримечание

В SQL Server 2000 частичное восстановление может быть выполнено только из полной резервной копии базы данных. Это ограничение было снято в SQL Server 2005.

Если последовательность частичного восстановления исключает любые файловые группы FILESTREAM, восстановление на момент времени не поддерживается. Можно принудительно продолжить последовательность восстановления. Тем не менее, файловые группы FILESTREAM, не вошедшие в инструкцию RESTORE, больше невозможно восстановить. Для принудительного продолжения восстановления на момент времени укажите параметр CONTINUE_AFTER_ERROR вместе с параметром STOPAT, STOPATMARK или STOPBEFOREMARK, который также необходимо указать в своих последующих инструкциях RESTORE LOG. Если указать параметр CONTINUE_AFTER_ERROR, выполняется последовательность частичного восстановления, а файловая группа FILESTREAM становится невосстановимой.

Дополнительные сведения о поэтапном восстановлении см. в разделе Выполнение поэтапных восстановлений.

Восстановление базы данных к моментальному снимку базы данных

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

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

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

Ограничения на возврат

Возврат не поддерживается в следующих условиях.

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

  • Если какие-либо файлы, работавшие в режиме «вне сети» во время создания моментального снимка, сейчас работают автономно.

  • Если в настоящий момент существует несколько моментальных снимков базы данных.

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

Разрешения

Если восстанавливаемая база данных не существует, для выполнения инструкции RESTORE у пользователя должны быть разрешения CREATE DATABASE. Если база данных существует, разрешения на выполнение инструкции RESTORE по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator, а также владельцу базы данных (dbo) (для параметра FROM DATABASE_SNAPSHOT база данных всегда существует).

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

В операции создания резервной копии могут дополнительно указываться пароли для набора носителей, резервного набора данных или того и другого. Если для набора носителей или резервного набора данных установлен пароль, то в инструкции RESTORE необходимо указывать правильные пароли. Эти пароли предотвращают несанкционированные операции восстановления и присоединения резервных наборов данных к носителю при помощи инструментальных средств SQL Server. Однако защищенный паролем носитель может быть переписан инструкцией BACKUP с параметром FORMAT.

Примечание по безопасностиПримечание по безопасности

Данный пароль не обеспечивает надежную защиту. Он предназначен для предотвращения неверного восстановления при использовании средств SQL Server авторизованными или неавторизованными пользователями. При этом остается возможным чтение данных резервных копий с помощью других средств или замена пароля. В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Рекомендуемым способом защиты резервных копий является хранение лент с резервными копиями в безопасном месте или создание резервных копий на диске в виде файлов, защищенных соответствующими списками управления доступом (ACL). Списки ACL должны располагаться в корневом каталоге, в котором создаются резервные копии.

Примеры

ПримечаниеПримечание

База данных База данных AdventureWorks2008R2 показана для примера. База данных AdventureWorks2008R2 — это один из образцов баз данных, включенных в состав SQL Server. Adventure Works Cycles — это вымышленная производственная компания, которая используется для демонстрации концепций баз данных и сценариев работы с ними.. Дополнительные сведения об этой базе данных см. в разделе Образцы баз данных AdventureWorks2008R2.

Во всех примерах предполагается, что выполнено полное резервное копирование базы данных.

Примеры выполнения инструкции RESTORE.

  • А. Восстановление всей базы данных

  • Б. Восстановление полной и разностной резервных копий базы данных

  • В. Восстановление базы данных с использованием синтаксиса RESTART

  • Г. Восстановление базы данных и перемещение файлов

  • Д. Копирование базы данных с помощью инструкций BACKUP и RESTORE

  • Е. Восстановление на определенный момент времени с помощью предложения STOPAT

  • Ж. Восстановление журнала транзакций до метки

  • З. Восстановление с использованием синтаксиса TAPE

  • И. Восстановление с использованием синтаксиса FILE и FILEGROUP

  • К. Восстановление базы данных из моментального снимка

А. Восстановление всей базы данных

В следующем примере производится восстановление базы данных из полной резервной копии, находящейся на логическом устройстве резервного копирования на магнитной ленте AdventureWorks2008R2Backups. Пример создания этого устройства см. в разделе Устройства резервного копирования.

RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups ПримечаниеПримечание

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

[В начало списка примеров]

Б. Восстановление полной и разностной резервных копий базы данных

В этом примере производится восстановление полной резервной копии базы данных, за которым следует восстановление из разностной резервной копии с устройства резервного копирования Z:\SQLServerBackups\AdventureWorks2008R2.bak, на котором содержатся обе резервные копии. Полная резервная копия базы данных — это шестой резервный набор данных на устройстве (FILE = 6), а разностная резервная копия базы данных — девятый резервный набор данных на устройстве (FILE = 9). База данных будет восстановлена после восстановления разностной резервной копии.

RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' WITH FILE = 6 NORECOVERY; RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' WITH FILE = 9 RECOVERY;

[В начало списка примеров]

В. Восстановление базы данных с использованием синтаксиса RESTART

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

-- This database RESTORE halted prematurely due to power failure. RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups -- Here is the RESTORE RESTART operation. RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH RESTART

[В начало списка примеров]

Г. Восстановление базы данных и перемещение файлов

В следующем примере производится полное восстановление базы данных и журнала транзакций, после чего восстановленная база данных перемещается в каталог C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data.

RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH NORECOVERY, MOVE 'AdventureWorks2008R2_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.mdf', MOVE 'AdventureWorks2008R2_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.ldf' RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH RECOVERY

[В начало списка примеров]

Д. Копирование базы данных с помощью инструкций BACKUP и RESTORE

В следующем примере с помощью инструкций BACKUP и RESTORE создается копия базы данных База данных AdventureWorks2008R2. Инструкция MOVE восстанавливает файлы данных и журнала в указанные места. Количество и имена восстанавливаемых файлов базы данных можно определить с помощью инструкции RESTORE FILELISTONLY. Новая копия базы данных называется TestDB. Дополнительные сведения см. в разделе Инструкция RESTORE FILELISTONLY (Transact-SQL).

BACKUP DATABASE AdventureWorks2008R2 TO AdventureWorks2008R2Backups ; RESTORE FILELISTONLY FROM AdventureWorks2008R2Backups ; RESTORE DATABASE TestDB FROM AdventureWorks2008R2Backups WITH MOVE 'AdventureWorks2008R2_Data' TO 'C:\MySQLServer\testdb.mdf', MOVE 'AdventureWorks2008R2_Log' TO 'C:\MySQLServer\testdb.ldf'; GO

[В начало списка примеров]

Е. Восстановление на определенный момент времени с помощью предложения STOPAT

В следующем примере база данных восстанавливается в состояние на 12:00 AMApril 15, 2020 и демонстрируется операция восстановления, использующая несколько резервных копий журналов. На устройстве резервного копирования AdventureWorks2008R2Backups полная резервная копия базы данных, подлежащей восстановлению, — это третий резервный набор данных на устройстве (FILE = 3), резервная копия первого журнала — это четвертый резервный набор (FILE = 4), резервная копия второго журнала — это пятый резервный набор (FILE = 5).

RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH FILE=3, NORECOVERY; RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM'; RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM'; RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY;

[В начало списка примеров]

Ж. Восстановление журнала транзакций до метки

В следующем примере восстанавливается журнал транзакций до метки в помеченной транзакции ListPriceUpdate.

USE AdventureWorks2008R2; GO BEGIN TRANSACTION ListPriceUpdate WITH MARK 'UPDATE Product list prices'; GO UPDATE Production.Product SET ListPrice = ListPrice * 1.10 WHERE ProductNumber LIKE 'BK-%'; GO COMMIT TRANSACTION ListPriceUpdate; GO -- Time passes. Regular database -- and log backups are taken. -- An error occurs in the database. USE master GO RESTORE DATABASE AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH FILE = 3, NORECOVERY; GO RESTORE LOG AdventureWorks2008R2 FROM AdventureWorks2008R2Backups WITH FILE = 4, RECOVERY, STOPATMARK = 'UPDATE Product list prices';

[В начало списка примеров]

З. Восстановление с использованием синтаксиса TAPE

В следующем примере производится восстановление базы данных из полной резервной копии, находящейся на устройстве резервного копирования TAPE.

RESTORE DATABASE AdventureWorks2008R2 FROM TAPE = '\\.\tape0'

[В начало списка примеров]

И. Восстановление с использованием синтаксиса FILE и FILEGROUP

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

Резервная копия базы данных представляет собой девятый резервный набор данных в наборе носителей на логическом устройстве резервного копирования с именем MyDatabaseBackups. Затем производится восстановление трех резервных копий журнала из следующих трех резервных наборов данных (10, 11 и 12) на устройстве MyDatabaseBackups с помощью предложения WITH NORECOVERY. База данных будет восстановлена после восстановления последней резервной копии журналов.

ПримечаниеПримечание

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

Обратите внимание на два типа параметров FILE в инструкции RESTORE DATABASE. Параметры FILE, предшествующие имени устройства резервного копирования, указывают логические имена файлов базы данных, которые будут восстановлены из резервного набора данных, например FILE = 'MyDatabase_data_1'. Этот резервный набор данных не является первой резервной копией базы данных в наборе носителей, поэтому его позиция указывается параметром FILE в предложении WITH: FILE=9.

RESTORE DATABASE MyDatabase FILE = 'MyDatabase_data_1', FILE = 'MyDatabase_data_2', FILEGROUP = 'new_customers' FROM MyDatabaseBackups WITH FILE = 9, NORECOVERY; GO -- Restore the log backups. RESTORE LOG MyDatabase FROM MyDatabaseBackups WITH FILE = 10, NORECOVERY; GO RESTORE LOG MyDatabase FROM MyDatabaseBackups WITH FILE = 11, NORECOVERY; GO RESTORE LOG MyDatabase FROM MyDatabaseBackups WITH FILE = 12, NORECOVERY; GO --Recover the database: RESTORE DATABASE MyDatabase WITH RECOVERY; GO

[В начало списка примеров]

К. Восстановление из моментального снимка базы данных

В следующем примере производится восстановление базы данных к моментальному снимку базы данных. В этом примере предполагается, что в базе данных в настоящее время существует только один моментальный снимок. Пример создания этого моментального снимка базы данных см. в разделе Как создать моментальный снимок базы данных (Transact-SQL).

ПримечаниеПримечание

Восстановление до моментального снимка удаляет все полнотекстовые каталоги.

USE master RESTORE DATABASE AdventureWorks2008R2 FROM DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800'; GO

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

[В начало списка примеров]

msdn.microsoft.com


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

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