Поделиться через


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

Область применения: SQL Server — Linux

Вы можете создавать файлы резервных копий баз данных из SQL Server на Linux различными способами. На сервере Linux можно использовать sqlcmd для подключения к SQL Server и создания резервных копий. Из Windows можно подключиться к SQL Server в Linux и создать резервные копии с помощью пользовательского интерфейса. Функция резервного копирования одинакова для разных платформ. Например, вы можете выполнять локальное резервное копирование баз данных на удаленные диски или резервное копирование SQL Server по URL-адресу для 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. Чтобы скачать и установить последнюю версию, см. статью "Скачать SQL Server Management Studio (SSMS)". Дополнительные сведения об использовании SSMS см. в статье "Использование SQL Server Management Studio в Windows для управления SQL Server на Linux".

Ниже приведены пошаговые инструкции по резервному копированию с помощью 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.