- Резервное копирование и восстановление баз данных SQL Server в Linux
- Резервное копирование базы данных
- Резервное копирование журнала транзакций
- Восстановление базы данных
- Восстановление журнала транзакций
- Резервное копирование и восстановление с помощью SQL Server Management Studio (SSMS)
- Восстановление с помощью SQL Server Management Studio (SSMS)
- См. также
- Примите участие в разработке документации по SQL
- Backup and restore SQL Server databases on Linux
- Backup a database
- Backup the transaction log
- Restore a database
- Restore the transaction log
- Backup and restore with SQL Server Management Studio (SSMS)
- Restore with SQL Server Management Studio (SSMS)
- See also
- Contribute to SQL documentation
- Feedback
Резервное копирование и восстановление баз данных 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.
- Запустите SSMS и подключитесь к экземпляру SQL Server на Linux.
- В обозревателе объектов щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем — Архивировать. .
- В диалоговом окне Backup Up Database (Создание резервной копии базы данных) проверьте параметры и варианты и выберите ОК.
SQL Server завершает резервное копирование базы данных.
Восстановление с помощью SQL Server Management Studio (SSMS)
Ниже приведены пошаговые инструкции по восстановлению базы данных с помощью SSMS.
- В SSMS щелкните правой кнопкой мыши пункт Базы данных и выберите Restore Databases. (Восстановить базы данных. ).
- В разделе Источник выберите Устройство: и затем выберите многоточие (. ).
- Найдите файл резервной копии базы данных и выберите ОК.
- В разделе План восстановления проверьте параметры и файл резервной копии. Щелкните ОК.
- SQL Server восстанавливает базу данных.
См. также
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Backup and restore SQL Server databases on Linux
You can take backups of databases from SQL Server on Linux with many different options. On a Linux server, you can use sqlcmd to connect to the SQL Server and take backups. 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. For example, you can backup databases locally, to remote drives, or to Microsoft Azure Blob Storage.
SQL Server on Linux only supports backing up to Azure Blob storage using block blobs. Using a storage key for backup and restore will result in a page blog being used, which isn’t supported. Use a Shared Access Signature instead. For information on block blogs versus page blogs, see Backup to block blob vs. page blob.
Backup a database
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"
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. 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
In the following example sqlcmd connects to the local instance of SQL Server and restores the demodb database. The NORECOVERY option is used to allow for additional restores of log file backups. If you don’t 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"
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'"
Backup and restore with SQL Server Management Studio (SSMS)
You can use SSMS from a Windows computer to connect to a Linux database and take a backup through the user-interface.
Use the latest version of SSMS to connect to SQL Server. To download and install the latest version, see Download SSMS. For more information on how to use SSMS, see Use SSMS to Manage SQL Server on Linux.
The following steps walk through taking a backup with SSMS.
- Start SSMS and connect to your SQL Server on Linux instance.
- In Object Explorer, right-click on your database, select Tasks, and then select Back Up. .
- In the Backup Up Database dialog, verify the parameters and options, and select OK.
SQL Server completes the database backup.
Restore with SQL Server Management Studio (SSMS)
The following steps walk you through restoring a database with SSMS.
- In SSMS right-click Databases and select Restore Databases. .
- Under Source, select Device: and then select the ellipses (. ).
- Locate your database backup file and select OK.
- Under Restore plan, verify the backup file and settings. Select OK.
- SQL Server restores the database.
See also
Contribute to SQL documentation
Did you know that you can edit SQL content yourself? If you do so, not only do you help improve our documentation, but you also get credited as a contributor to the page.
Feedback
Submit and view feedback for