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

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)  — LinuxПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) - Linux

Вы можете создавать резервные копии баз данных из SQL Server 2017 в Linux различными способами.You can take backups of databases from SQL Server 2017 on Linux with many different options. На сервере Linux можно использовать sqlcmd для подключения к SQL Server и создания резервных копий.On a Linux server, you can use sqlcmd to connect to the SQL Server and take backups. Из Windows можно подключиться к SQL Server в Linux и создать резервные копии с помощью пользовательского интерфейса.From Windows, you can connect to SQL Server on Linux and take backups with the user interface. Функция резервного копирования одинакова для разных платформ.The backup functionality is the same across platforms. Например, можно выполнять резервное копирование баз данных локально, на удаленные диски или в службу хранилища BLOB-объектов Microsoft Azure.For example, you can backup databases locally, to remote drives, or to Microsoft Azure Blob storage service.

Важно!

SQL Server на Linux поддерживает резервное копирование в Хранилище BLOB-объектов Azure только с использованием блочных BLOB-объектов.SQL Server on Linux only supports backing up to Azure Blob storage using block blobs. Использование ключа хранилища для резервного копирования и восстановления приведет к использованию страничного BLOB-объекта, что не поддерживается.Using a storage key for backup and restore will result in a page blog being used, which isn't supported. Используйте вместо этого подписанный URL-адрес.Use a Shared Access Signature instead. Сравнение блочных и страничных BLOB-объектов см. в разделе Резервное копирование в блочные и страничные BLOB-объекты.For information on block blogs versus page blogs, see Backup to block blob vs. page blob.

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

В следующем примере sqlcmd подключается к локальному экземпляру SQL Server и создает полную резервную копию пользовательской базы данных demodb.In the following example sqlcmd connects to the local SQL Server instance and takes a full backup of a user database called 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 запросит пароль.When you run the command, SQL Server will prompt for a password. После ввода пароля оболочка возвратит результаты выполнения резервного копирования.After you enter the password, the shell will return the results of the backup progress. Пример:For example:

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).

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

Если база данных находится в модели полного восстановления, то можно также создать резервные копии журналов транзакций для получения более детальных вариантов восстановления.If your database is in the full recovery model, you can also make transaction log backups for more granular restore options. В следующем примере sqlcmd подключается к локальному экземпляру SQL Server и создает резервную копию журнала транзакций.In the following example, sqlcmd connects to the local SQL Server instance and takes a transaction log backup.

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"

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

В следующем примере sqlcmd подключается к локальному экземпляру SQL Server и восстанавливает базу данных demodb.In the following example sqlcmd connects to the local instance of SQL Server and restores the demodb database. Обратите внимание на то, что используется параметр NORECOVERY для обеспечения дополнительного восстановления резервных копий файлов журнала.Note that the NORECOVERY option is used to allow for additional restores of log file backups. Если вы не планируете восстанавливать дополнительные файлы журналов, удалите параметр NORECOVERY.If you do not plan to restore additional log files, remove the NORECOVERY option.

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 без дополнительных параметров.If you accidentally use NORECOVERY but do not have additional log file backups, run the command RESTORE DATABASE demodb with no additional parameters. При этом восстановление завершается, а база данных остается в рабочем состоянии.This finishes the restore and leaves your database operational.

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

Следующая команда восстанавливает предыдущую резервную копию журнала транзакций.The following command restores the previous transaction log backup.

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

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

Среду SSMS можно использовать с компьютера Windows для подключения к базе данных Linux и резервного копирования через пользовательский интерфейс.You can use SSMS from a Windows computer to connect to a Linux database and take a backup through the user-interface.

Примечание

Используйте последнюю версию SSMS для подключения к SQL Server.Use the latest version of SSMS to connect to SQL Server. Чтобы скачать и установить последнюю версию, см. статью Скачивание SSMS.To download and install the latest version, see Download SSMS. Дополнительные сведения об использовании SSMS см. в статье Управление SQL Server на Linux с помощью SSMS.For more information on how to use SSMS, see Use SSMS to Manage SQL Server on Linux.

Ниже приведены пошаговые инструкции по резервному копированию с помощью SSMS.The following steps walk through taking a backup with SSMS.

  1. Запустите SSMS и подключитесь к серверу в SQL Server 2017 в Linux.Start SSMS and connect to your server in SQL Server 2017 on Linux.

  2. В обозревателе объектов щелкните правой кнопкой мыши базу данных, выберите пункт Задачи и затем Создать резервную копию...In Object Explorer, right-click on your database, Click Tasks, and then click Back Up....

  3. Проверьте параметры в диалоговом окне Резервное копирование базы данных и нажмите кнопку ОК.In the Backup Up Database dialog, verify the parameters and options, and click OK.

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

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

Ниже приведены пошаговые инструкции по восстановлению базы данных с помощью SSMS.The following steps walk you through restoring a database with SSMS.

  1. В SSMS щелкните правой кнопкой мыши элемент Базы данных и выберите пункт Восстановить базы данных...In SSMS right-click Databases and click Restore Databases....

  2. В разделе Источник щелкните Устройство: и многоточие (...).Under Source click Device: and then click the ellipses (...).

  3. Выберите файл резервной копии базы данных и нажмите кнопку ОК.Locate your database backup file and click OK.

  4. В разделе План восстановления проверьте параметры и файл резервной копии.Under Restore plan, verify the backup file and settings. Нажмите кнопку ОК.Click OK.

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

См. такжеSee also