Резервное копирование и восстановление баз данных SQL Server в Linux

Применимо к:SQL Server — Linux

Вы можете создавать файлы резервных копий баз данных из SQL Server на Linux различными способами. На сервере Linux можно использовать sqlcmd для подключения к SQL Server и создания резервных копий. Из Windows можно подключиться к SQL Server в Linux и создать резервные копии с помощью пользовательского интерфейса. Функция резервного копирования одинакова для разных платформ. Например, можно создавать резервные копии баз данных локально, на удаленные диски или в microsoft Хранилище BLOB-объектов Azure.

Важно!

SQL Server на Linux поддерживает резервное копирование в Хранилище BLOB-объектов Azure только с использованием блочных BLOB-объектов. Использование ключа хранилища для резервного копирования и восстановления приведет к использованию страничного BLOB-объекта, что не поддерживается. Используйте вместо этого подписанный URL-адрес. Сравнение блочных и страничных BLOB-объектов см. в разделе Резервное копирование в блочные и страничные BLOB-объекты.

Резервное копирование базы данных

В следующем примере sqlcmd подключается к локальному экземпляру SQL Server и создает полную резервную копию пользовательской базы данных demodb.

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

При выполнении команды SQL Server запросит пароль. После ввода пароля оболочка возвратит результаты выполнения резервного копирования. Например:

Password:
10 percent processed.
21 percent processed.
32 percent processed.
40 percent processed.
51 percent processed.
61 percent processed.
72 percent processed.
80 percent processed.
91 percent processed.
Processed 296 pages for database 'demodb', file 'demodb' on file 1.
100 percent processed.
Processed 2 pages for database 'demodb', file 'demodb_log' on file 1.
BACKUP DATABASE successfully processed 298 pages in 0.064 seconds (36.376 MB/sec).

Резервное копирование журнала транзакций

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

sqlcmd -S localhost -U SA -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"

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

В следующем примере sqlcmd подключается к локальному экземпляру SQL Server и восстанавливает базу данных demodb. Вариант NORECOVERY используется для обеспечения дополнительного восстановления резервных копий файлов журнала. Если вы не планируете восстанавливать дополнительные файлы журналов, удалите NORECOVERY.

sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

Совет

Если вы случайно используете параметр NORECOVERY, но у вас нет дополнительных резервных копий файлов журнала, выполните команду RESTORE DATABASE demodb без дополнительных параметров. При этом восстановление завершается, а база данных остается в рабочем состоянии.

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

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

sqlcmd -S localhost -U SA -Q "RESTORE LOG demodb FROM DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak'"

Резервное копирование и восстановление с помощью SQL Server Management Studio (SSMS)

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

Примечание.

Используйте последнюю версию SSMS для подключения к SQL Server. Чтобы скачать и установить последнюю версию, см. статью Скачивание SSMS. Дополнительные сведения об использовании SSMS см. в статье Управление SQL Server на Linux с помощью SSMS.

Ниже приведены пошаговые инструкции по резервному копированию с помощью SSMS.

  1. Запустите SSMS и подключитесь к экземпляру SQL Server на Linux.

  2. В обозревателе объектов щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем — Архивировать....

  3. В диалоговом окне Backup Up Database (Создание резервной копии базы данных) проверьте параметры и варианты и выберите ОК.

SQL Server завершает резервное копирование базы данных.

Восстановление с помощью SQL Server Management Studio (SSMS)

Ниже приведены пошаговые инструкции по восстановлению базы данных с помощью SSMS.

  1. В SSMS щелкните правой кнопкой мыши пункт Базы данных и выберите Restore Databases... (Восстановить базы данных...).

  2. В разделе Источник выберите Устройство: и затем выберите многоточие (...).

  3. Найдите файл резервной копии базы данных и выберите ОК.

  4. В разделе План восстановления проверьте параметры и файл резервной копии. Нажмите ОК.

  5. SQL Server восстанавливает базу данных.

Примите участие в разработке документации по SQL

Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.

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