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

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

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

Important

SQL Server на Linux поддерживает только резервное копирование в Хранилище BLOB-объектов Azure с блочных блоков. Использование ключа хранения для резервного копирования и восстановления использует блоб страницы, который не поддерживается. Вместо этого используйте подпись общего доступа (SAS). Для получения информации о блочных BLOB-объектах и страничных BLOB-объектах см. Резервное копирование на блочные 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"

Tip

Если вы случайно используете 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)

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

Note

Установите последнюю версию SQL Server Management Studio (SSMS). Дополнительные сведения об использовании SSMS см. в статье "Использование SQL Server Management Studio в Windows для управления SQL Server на Linux".

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

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

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

  3. В диалоговом диалоге «Резервное копирование базы данных» проверьте параметры и опции и выберите OK.

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Редактирование документации Microsoft Learn.