Когда-нибудь вам приходилось восстанавливать часть данных в 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 и исследуем более сложные сценарии.
Счастливого запроса!