备份和还原 Linux 上的 SQL Server 数据库

适用于:SQL Server - Linux

可以使用多个不同的选项备份 Linux 上的 SQL Server 中的数据库。 在 Linux 服务器上,可以使用 sqlcmd 连接到 SQL Server 并进行备份。 如果是 Windows,则可以在连接到 Linux 上的 SQL Server 后通过用户界面进行备份。 各平台间的备份功能都是相同的。 例如,可以将数据库备份到本地、远程驱动器或 Microsoft Azure Blob 存储中。

重要

Linux 上的 SQL Server 仅支持使用块 blob 备份到 Azure Blob 存储。 使用存储密钥进行备份和还原将导致使用页 blob,而这不受支持。 请改为使用共享访问签名。 有关块 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 将提示输入密码。 输入密码后,shell 将返回备份进度结果。 例如:

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) 备份和还原

可以从 Windows 计算机使用 SSMS 连接到 Linux 数据库并通过用户界面进行备份。

注意

使用最新版本的 SSMS 连接到 SQL Server。 若要下载和安装最新版本,请参阅下载 SSMS。 有关如何使用 SSMS 的详细信息,请参阅使用 SSMS 管理 Linux 上的 SQL Server

下列步骤将引导你使用 SSMS 完成备份。

  1. 启动 SSMS 并连接到 Linux 上的 SQL Server 实例。

  2. 在“对象资源管理器”中,右键单击数据库,选择“任务”,然后选择“备份...”。

  3. 在“备份数据库”对话框中,验证参数和选项,然后选择“确定”。

SQL Server 将完成数据库备份。

使用 SQL Server Management Studio (SSMS) 还原

以下步骤将引导你使用 SSMS 完成数据库还原。

  1. 在 SSMS 中,右键单击“数据库”,然后选择“还原数据库...”。

  2. 在“源”下,选择“设备:”,然后选择省略号图标 (...)。

  3. 查找你的数据库备份文件,然后选择“确定”。

  4. 在“还原计划”下,验证备份文件和设置。 选择“确定”。

  5. SQL Server 将还原数据库。

参与编辑 SQL 文档

你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。

有关详细信息,请参阅如何参与 SQL Server 文档编辑