Published on

August 17, 2023

Понимание опции Standby в SQL Server

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

Сценарий

Допустим, у вас есть сценарий, в котором вы восстанавливаете серию журналов транзакций и хотите проверить данные, чтобы найти определенное значение, которое могло быть удалено. Например, предположим, что кто-то удалил множество данных между 10:00 и 11:00 из таблицы поставщиков, и вы знаете, что они добавили “Acme” в эту таблицу перед удалением. Вам может потребоваться восстановиться до 10:00 и проверить таблицу поставщиков на наличие старых данных и поиск “Acme”. Если его там нет, вы можете восстановить резервную копию журнала 10:05 и проверить снова. Этот процесс позволяет точно определить момент, когда данные были удалены.

Опция Standby

SQL Server предоставляет возможность запроса восстановленной, но не восстановленной базы данных с использованием опции standby. Используя опцию standby, вы можете выполнять запросы к данным восстановленной базы данных, не препятствуя будущим восстановлениям. Однако, если вы используете опцию NORECOVERY, вы не сможете выполнять запросы к данным.

Настройка восстановления

Давайте пройдемся по процессу настройки восстановления с опцией standby. Сначала создайте базу данных и выполните резервное копирование. Например, вы можете создать базу данных “sandbox” и выполнить резервное копирование. Затем выберите новое имя для восстановления, так как вы ищете конкретные данные. Используйте оператор RESTORE DATABASE для восстановления базы данных с опцией standby. Вот пример:

USE [master]
RESTORE DATABASE [sandbox4] FROM DISK = N'D:SQLBackupNew foldersandbox_20210308.bak'
WITH FILE = 1, 
MOVE N'Sandbox' TO N'D:SQLServerDataSQL2017Sandbox4.mdf', 
MOVE N'Sandbox_log' TO N'D:SQLServerDataSQL2017Sandbox4_log.ldf', 
STANDBY = N'D:SQLBackupNew foldersandbox_RollbackUndo_2023-08-07_11-51-39.bak',
NOUNLOAD, 
STATS = 5
GO

Вместо того, чтобы вводить все пути и синтаксис, вы можете использовать SQL Server Management Studio (SSMS) для настройки восстановления. Просто перейдите в диалоговое окно восстановления базы данных, выберите устройство резервного копирования и измените необходимые параметры, включая опцию standby.

Восстановление и запросы

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

Вывод

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

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

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

Счастливого запроса!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.