PITR (Point-in-Time Recovery) в базе данных SQL Server: Методы и Лучшие практики

Узнайте о восстановлении на момент времени (PITR) в SQL Server, включая модели восстановления, методы, такие как SSMS, T-SQL, и лучшие практики.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
elena-zhang

Обновлено Elena Zhang 2024/08/08

Оглавление
  • Предпосылки восстановления на момент времени в SQL Server

  • Выполнение восстановления на момент времени с помощью SSMS

  • Выполнение восстановления на момент времени с помощью Transact-SQL

  • Профессиональное решение для восстановления на момент времени SQL Server

  • Заключение

Вы ищете надежное решение для PITR? Попробуйте Vinchin Backup & Recovery!↘ Загрузите Бесплатную Пробную Версию

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

Восстановление на момент времени (PITR: Point-in-Time Recovery) в SQL Server — это важный процесс, который включает восстановление базы данных на определенный предыдущий момент времени. Эта операция обеспечивает целостность и согласованность данных, минимизируя возможную потерю данных.

Предпосылки восстановления на момент времени в SQL Server

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

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

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

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

Модель Bulk-Logged: Этот режим требует создания резервных копий журнала транзакций. Он является дополнением к режиму полной восстановления, но не позволяет выполнять восстановление на определённый момент времени.

Для выбора модели восстановления вы можете легко выполнить следующие шаги в SSMS: щелкните правой кнопкой мыши базу данных > выберите Properties > в окне Option выберите Recovery model.

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

В следующем разделе будут рассмотрены три инструмента восстановления, включая SSMS и T-SQL.

Выполнение восстановления на момент времени с помощью SSMS

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

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

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

В SSMS подключитесь к инстансу > разверните базу данных > щёлкните правой кнопкой мыши базу данных > выберите Task > выберите Back Up > Выберите Backup type > Нажмите ОК

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

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

1. В SSMS подключитесь к инстансу> Разверните базу данных

2. Щёлкните правой кнопкой мыши нужную базу данных > выберите Task > выберите Restore > нажмите Database

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

4. В разделе Destination Database box автоматически заполняется именем базы данных для восстановления. Чтобы изменить имя базы данных, введите новое имя в Database box.

5. В разделе Restore выберите Specific Date и Time > Установите точку во времени, к которой необходимо вернуться > Выберите ОК

Выполнение восстановления на момент времени с помощью Transact-SQL

Еще одним подходом является использование команд Transact-SQL (T-SQL), который является языком программирования SQL Server.

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

Безусловно, выполнение восстановления резервной копии в SQL Server предполагает ряд шагов, которые могут быть сложными. Для подробных инструкций и всестороннего руководства по резервному копированию SQL Server с использованием T-SQL настоятельно рекомендуется обратиться к sql-server-backup-compression. Самое главное, что следует помнить при выполнении восстановления базы данных на определенный момент времени, это всегда иметь полную резервную копию и резервную копию журнала транзакций базы данных.

Для восстановления SQL Server до конкретного момента времени, вы можете следовать этим шагам:

1. Подключитесь к инстансу сервера

2. Нажмите New Query> выполните оператор RESTORE DATABASE с параметром NORECOVERY

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

RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY

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

RESTORE DATABASE database_name FROM <backup_device> WITH STOPAT = time , RECOVERY

Примечание: Обязательно замените "database_name" на фактическое название базы данных, которую вы восстанавливаете, "backup_device" на соответствующее устройство резервного копирования (например, диск или магнитную ленту), а "time" - на конкретное время или точку, которую вы хотите восстановить.

Профессиональное решение для восстановления на момент времени SQL Server

Кроме того, можно использовать сторонние инструменты, такие как Vinchin Backup & Recovery, для восстановления базы данных SQL Server на любой момент времени..

Vinchin Backup & Recovery, профессиональное решение для резервного копирования предприятий, является более простым и удобным, предлагая пользовательский интерфейс и продвинутые функции резервного копирования и восстановления, которые помогают пользователям восстанавливать данные более гибко, поддерживая резервное копирование SQL Server 2019/2017/2016/2014/2012/2008 и других баз данных, таких как MySQL, Oracle Database, PostgreSQL, MariaDB и т. д.

Для выполнения резервного копирования с использованием Vinchin Backup & Recovery в SQL Server следуйте нижеуказанным шагам:

1. Выберите Physical Backup > выберите Database Backup > нажмите Backup > выберите SQL Server > нажмите Next

2. Выберите Backup destination > нажмите Next

3. Выберите Backup strategies. И выберите Full Backup and Log Backup> нажмите Next

4. Нажмите Submit

После успешного создания резервной копии вы можете приступить к процессу восстановления. Для выполнения восстановления SQL Server на определённый момент времени можно следовать этим шагам:

1. Выберите Physical Backup > нажмите Database Backup > нажмите Restore > выберите Reduction Point > нажмите Next

PITR-1

2. Отметьте Target Instance> нажмите Next

PITR-2

3. Настройте Restore Strategy> нажмите Next 

PITR-3

4. Выберите Submit

PITR-4

Для Vinchin Backup & Recovery предусмотрён бесплатный пробный период в 60 дней, так что вы можете свободно скачать и протестировать его в своей среде. Если у вас возникнут какие-либо вопросы или опасения, вы можете непосредственно связаться с Vinchin или обратиться к нашим локальным партнёрам. Наша команда будет рада предоставить вам необходимую поддержку и помощь.

Заключение

Наконец, восстановление на определенный момент критично для аварийного восстановления SQL Server, что помогает восстановить базу данных до указанного момента в прошлом при сохранении целостности данных и снижении потерь данных. Методы, такие как SSMS, команды T-SQL и приложения, такие как Vinchin Backup & Recovery, предлагают удобные варианты выполнения этого. Каждый метод имеет свои шаги и преимущества, обеспечивая гибкость для пользователей в выборе подходящего подхода.

поделиться:

Категории:Бэкап базы данных