KB4581882 - 修复:在 SQL Server 2019 中,由于备份命令超时,还原数据库失败

应用对象
SQL Server 2019 on Linux

症状

在 Microsoft SQL Server 2019 中,你尝试通过运行以下命令来还原大型数据库:

USE [master]

还原数据库 [DatabaseName]

FROM DISK = N'/var/opt/mssql/data/FileName'

WITH FILE = 1, MOVE N'Archive_HR' TO N'/var/opt/mssql/data/FileName', MOVE N'DatabaseName' TO N'/var/opt/mssql/data/FileName', NOUNLOAD, STATS = 5

此命令返回以下错误消息:

已开始在行执行查询 行 号

消息 42019,级别 16,状态 4,行 LineNumber

RESTORE MANAGED DATABASE 操作失败。 内部服务错误。

消息 3013,级别 16,状态 1,行 LineNumber

还原数据库正在异常终止。

总执行时间: 00:01:51.093

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此问题已在 SQL Server 的累积更新中进行了修复:

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

解决方法

若要解决此问题,可以使用下面创建的 Kubernetes 服务中的 IP 并连接到 SQL Server 实例:

      

公开 1533 端口:

kubectl -n <namespaceName> 公开 pod <podName> --port=1533 --name=<serviceName> --type=NodePort

      

然后,可以手动运行以下四个语句:

  1. 还原数据库
  2. ALTER DATABASE databaseName <> SET RECOVERY FULL
  3. 备份数据库 <databaseName> TO DISK='NUL'
  4. ALTER AVAILABILITY GROUP containedag ADD DATABASE databaseName <>

参考资料

了解 Microsoft 用于描述软件更新的术语。