Администрируем
Oracle, SQL Server, PostgreSQL

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

В общем случае под резервным копированием понимается создание копии данных, которая может храниться на отдельном устройстве. В этой публикации мы расскажем о том, что такое резервное копирование данных и как оно настраивается на примере СУБД SQL Server.

Что дает резервное копирование данных

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

Выгрузка данных

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

Как сделать резервное копирование базы данных MS SQL Server?

Существует несколько инструментов для создания резервных копий файлов SQL Server. Хотя они относительно просты, чтобы гарантировать целостность бэкапа лучше обращаться к профессионалам, например — инженерам «ДБ-сервис», которые помогут с администрированием и поддержкой этой СУБД. Однако общее представление о том, как делаются резервные копии баз данных в SQL Server не помешает никому, поэтому рассмотрим подробнее основные способы.

MS SQL Management Studio

Настроить резервное копирование можно в графическом интерфейсе SSMS. Запустите MS SQL Management Studio, выберете нужную базу данных и правой кнопкой мыши вызовите меню, в котором перейдите по пути «Задачи» => «Создать резервную копию». В появившемся окне укажите необходимый тип бэкапа и путь к нему. После успешного создания резервной копии вы увидите соответствующее уведомление.

Командная строка sqlcmd

Второй способ — консоль утилиты sqlcmd, работающая и в Windows и в Linux и позволяющая автоматизировать процесс бэкапирования данных с помощью планировщика, в котором нужно создать задание по запуску согласно расписанию команды sqlcmd -S <server> -U <user> -P <password> -Q "BACKUP DATABASE [<database>] TO DISK = N'<file path>' <options>".

PowerShell

Этот способ создания бэкапов актуален для поздних версий SQL Server, однако именно он рекомендуется профессионалами. Для создания резервной копии БД импортируйте модуль import-module sqlps –DisableNameChecking. Синтаксис здесь следующий: Backup-SqlDatabase -ServerInstance <имя SQL-сервера> -Database <имя базы> -BackupFile <путь к файлу с бэкапом>. Аналогично sqlcmd скрипт можно запускать по расписанию, добавив его в планировщик.

Методы резервного копирования данных

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

Полное копирование данных

Полное копирование (Full Backup) в SQL Server означает, что в бэкап попадают все данные и объекты системных таблиц, а также журнал транзакций. Такой тип бэкапа считается основным, т. к. развернуть из него базу можно в несколько кликов без использования других копий (разностных или инкрементальных). Может быть создан с помощью SSMS, Transact-SQL и PowerShell:
  • Server Management Studio. При создании задачи создайте скрипт T-SQL BACKUP, кликнув на кнопку «Скрипт» и прописав его назначение.
  • Transact-SQL. Выполните инструкцию BACKUP DATABASE, не забыв указать название резервной копии БД и ее желаемое расположение.
  • PowerShell. Выполните командлет Backup-SqlDatabase, задав вместе с Database параметр BackupAction.

Выборочное копирование данных

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

Другие виды резервного копирования

Существуют и другие виды резервного копирования и восстановления данных.
  • Tail-Log. Выполняется с опцией NORECOVERY между созданием резервной копии журнала транзакций и его восстановлением из бэкапа, что позволяет не потерять транзакци, совершавшиеся в этот временной промежуток.
  • Бэкап Copy-only. Резервная копия SQL Server, которая не зависит от последовательности обычных резервных копий SQL Server.
  • Partial backup. Вариант частичного резервного копирования, групп файлов read-only.

Чем архивирование отличается от резервного копирования информации

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

Частые ошибки

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

Эксперт ДБ-сервис

Список литературы:
  1. Особенности резервного копирования баз данных MS SQL. – Текст: электронный // OTUS JOURNAL. – URL: Особенности резервного копирования баз данных MS SQL OTUS – Дата публикации: 22.07.2021
  2. Путеводитель по резервному копированию баз данных. – Текст: электронный // Хабр. – URL: Путеводитель по резервному копированию баз данных / Хабр (habr.com) – Дата публикации: 25.08.2021
  3. 12 типичных ошибок при бэкапе баз данных. – Текст: электронный // Хабр. – URL: 12 типичных ошибок при бэкапе баз данных / Хабр (habr.com) – Дата публикации: 28.09.2018.
  4. Continuous Archiving and Point-in-Time Recovery (PITR) – Текст: электронный // The PostgreSQL Global Development Group. – URL: PostgreSQL: Documentation: 16: 26.3. Continuous Archiving and Point-in-Time Recovery (PITR) – Дата посещения: 18.12.2023.