sql-server - 由于未安装 SSIS 但存在 SSISDB 数据库,因此 SQL 实例在修补后无法启动
问题描述
我有一个很好的数据库问题要排序,谢天谢地,它不会影响除我以外的任何人!我的笔记本电脑上安装了一个本地 SQL 2019 实例,我使用它并不严重(因此它可以很容易地被炸掉并重新安装)。但是本着学习的精神,我想我会问这个问题,看看是否有人知道我将如何解决这个问题。
我的实例没有安装 SSIS,但我确实在这里有一个 SSISDB 数据库,该数据库已从另一个安装了 SSIS 的实例恢复。然后我的本地 SQL 实例被修补到 CU12(我会说,在我不知情或同意的情况下!)。而且因为我的实例上有一个 SSISDB 数据库,SQL 现在显然正在尝试修补 SSIS(未安装)。SQL 服务无法启动,并且我在错误日志中看到大量错误。以下是其中的一部分:
Starting execution of ISServer_upgrade.SQL
Assembly 'ISSERVER' was not found in the SQL catalog of database 'ssisdb'.
Script level upgrade for database 'master' failed because upgrade step 'ISServer_upgrade.sql' encountered error 6528, state 1, severity 16. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
如果需要,我可以使用跟踪标志 902 来启动实例,这样我就可以获取任何数据(无论如何这都不是必需的)。但我不知道如何解决这种情况。我无法卸载 CU12,因为它没有正确安装,并且它没有完全显示在已安装更新列表中。我看到了与浏览器和 VSS 编写器相关的卸载 CU12 的选项,所以我猜这些都安装成功了。但是没有选项可以在添加/删除程序中卸载 CU12 for SQL Server,正如您所期望的那样。
有谁知道如何解决这个问题?谢谢!
解决方案
所以我有更多的信息。首先,您可以将 SSISDB 数据库恢复到没有安装 SSIS 的实例,它可以让您在 SSMS 中的“集成服务目录”下浏览 SSIS 目录,就像安装了 SSIS 一样。如果我从同一个备份中恢复同一个 SSISDB 数据库,但将数据库命名为不同的名称,则无法以这种方式浏览 SSIS 目录。您还可以修补实例,而不会出现我描述的重命名的 SSIS 数据库存在的所有问题。如果您创建一个空白的 SSISDB 数据库,然后尝试修补到 CU12,这也可以正常工作。
我第一次尝试恢复主数据库,更多是因为我很想知道它会做什么。它没有让我恢复 master,因为我的备份是针对不同版本的(因为引擎现在正在读取 CU12,即使补丁没有正确安装。)然后我安装了 SSIS,它仍然继续表现一样的方法。接下来要尝试的是创建一个 SSIS 目录,但是因为那里已经有一个 SSIS 数据库,尽管没有在这个实例上创建,它不会让我创建目录(选项是灰色的)。请注意,每当我想启动实例时,我都必须使用跟踪标志 902。接下来我删除了现有的 SSISDB 数据库。然后,这使我能够创建一个新的 SSIS 目录,我确实这样做了。然后我删除了跟踪标志 902,重新启动服务,它启动了!在这一点上,我不
推荐阅读
- javascript - 从 StencilJS 到 Angular 的事件发射器
- version - 运行ignite时远程节点是什么?
- javascript - 满时使DIV居中滚动
- android - Android 样式:将边框设置为 0sp 不会删除 Material Button 的边框半径
- javascript - 如何对在 JavaScript 上生成动态 div 数的 for 循环进行延迟?
- python - OOP 为不同的实例返回相同的值
- python - 强制sklearn交叉val分数使用分层k折?
- c - 为什么(n = 0)== 0?
- swift - 在 Swift 中引用回调时防止内存泄漏
- excel - 如果“H”列为空,请计算名称在“F”列中列出的次数。与名称在同一行