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

适用于:Linux 上的 SQL Server

你可以在Linux上用多种方式备份SQL Server数据库。 在Linux服务器上,你可以用sqlcmd它连接SQL Server并备份数据库。 从Windows,你可以连接Linux 上的 SQL Server并用用户界面备份数据库。 各平台间的备份功能都是相同的。 例如,你可以在本地备份数据库,备份到远程硬盘,或者备份到 SQL Server 的 URL 以实现 Azure Blob 存储

Important

Linux 上的 SQL Server 只支持用块块备份到 Azure Blob 存储。 使用存储密钥进行备份和恢复时使用页面blob,但不支持。 改用共享访问签名(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 会提示输入密码。 输入密码后,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"

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

你可以在Windows电脑上使用SQL Server Management Studio(SSMS)连接Linux数据库,并通过用户界面备份。

Note

安装最新版本的 SQL Server Management Studio (SSMS)。 有关如何使用 SSMS 的详细信息,请参阅使用 Windows 上的 SQL Server Management Studio 管理 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 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。

有关详细信息,请参阅 Edit Microsoft Learn 文档