问题:无法使用Microsoft SQL 服务器数据库作为后端安装或启动Applications Manager。
解决方案: 按照以下故障排除步骤解决问题:
1. 在Microsoft SQL服务器主机上,转到开始 -> 所有程序 -> Microsoft SQL服务器 -> 配置工具 -> SQL 服务器配置管理器 -> SQL 服务器服务。
2. 确保以下服务处于“正在运行”状态: a. SQL服务器
b. MSSQL$<InstanceName> (使用SQL服务器实例时名称是必需的)
c. SQL Server Browser (使用SQL服务器实例时名称是必需的)
3. 在SQL服务器配置管理器 -> SQL服务器网络配置 -> MSSQLServer或SQLEXPRESS协议(或您SQL服务器实例的适当名称),确保启用以下内容: b. 验证相应IP地址的TCP/IP端口是否已启用并处于活动状态且正确无误。
4. 如果有防火墙,配置防火墙来允许与SQL服务器和SQL Server Browser服务相关的网络流量。
5. 打开命令提示符窗口并使用以下命令检查Microsoft SQL服务器主机中是否正在侦听适当的端口:
SQL Server的默认端口: 1433 (TCP)
SQL Server Browser的默认端口: 1434 (UDP)(使用SQL服务器实例时名称是必需的)
netstat -an | find “143”
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING
TCP [::]:1433 [::]:0 LISTENING
注意: 如果您没有使用默认的SQL服务器端口,那么根据需要更改命令中的端口号而不再是“1433”。 6. 在Applications Manager主机中打开命令提示符,并验证您是否能够使用以下命令连接到SQL服务器端口:
telnet <SQL Server Hostname> 1433
7. 如果您在安装过程中输入了错误的用户名/密码/域/实例名称,您可以使用以下步骤进行修改:
I. 打开WordPad并编辑“<APM_home>\working\conf\MSSQL\”以及“<APM_home>\working\conf\”中的 database_params.conf文件,并根据需要更改下面的主机名、端口、域名、实例名称等行。
如果您不使用Windows身份验证,则不需要 'domain=domainname'。
如果您没有连接到命名的MSSQL实例,则不需要“instance=instancename”。
默认情况下,AMDB是数据库名称,如果您已经重命名或打算使用不同的数据库,那么您可以输入适当的数据库名称,否则不要修改它。
url jdbc:jtds:sqlserver://hostname:1433/AMDB;domain=domainname;instance=instancename;appName=ApplicationsManager AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB
II. 在下一行的同一文件中更改用户名来连接到MS SQL服务器(如果已更改)
username monitoruser AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB
III. 在下一行的同一文件中更改密码来连接到MS SQL服务器 (如果已更改)。若要更改密码,请将encryptedpassword一词更改为密码并留一个空格,然后以明文形式输入密码。在下次重新启动时,产品密码将自动加密。
encryptedpassword eK6q1CJ9697s7O AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB
保存并关闭文件。
注意:在进行任何修改之前,请先备份现有文件。
8. 您可以在MS SQL服务器中选择默认的数据库排序规则 为“ SQL_Latin1_General_CP1_CI_AS ”。如果要使用不同的排序规则,请选择任何不区分大小写的数据库排序规则。
10.如果您使用Windows身份验证连接到MS SQL数据库,那么您必须将SQL服务器的身份验证模式从“ Windows身份验证模式(Windows身份验证) ”设置为“混合模式(Windows身份验证和SQL Server身份验证) ” .
11. 如果您使用NTLMv2作为MS SQL数据库服务器的安全性,则使用任何文本编辑器打开<Applications Manager Home>\working\conf\MSSQL\下的 database_params.conf文件 ,并在连接字符串行中添加以下参数:
;useNTLMv2=true
示例:
url jdbc:jtds:sqlserver://localhost:1433/AMDB;appName=ApplicationsManager;useNTLMv2=true AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB
12. 请检查您正在安装Applications Manager的服务器中是否具有管理员权限。同样在MS SQL服务器上,数据库用户应该具有管理员权限。
13. 请检查MS SQL用户帐户是否具有 'db_owner' 角色和CREATE DATABASE权限。按照下面给出的步骤在SQL Server Management Studio中分配角色和权限:
- 连接到SQL Server Management Studio。
- 在Object Explorer窗口中,进入Security -> Logins文件夹。
- 选择相应的用户。
- 右键单击它并选择Properties。
- 之后进入用户映射并选择该数据库。
- 在数据库角色成员身份下,选择角色“ db_owner ”。
- 进入Securables并从“权限”窗格中选择“创建任何数据库” 。点击确定。
- 重新Applications Manager。
14. 请检查Applications Manager数据库中的只读状态是否设置为否。按照下面给出的步骤检查/修改状态:
- 打开<Applications Manager Home>/working/conf/目录下的database_params.conf文件。数据库名称将显示在连接字符串中,如下所示:
jdbc:jtds:sqlserver://localhost:1433/<DATABASE_NAME>;appName=ApplicationsManager;useNTLMv2=true
[OR]
jdbc:sqlserver://localhost:1433;databaseName=<DATABASE_NAME>;applicationName=ApplicationsManager;useNTLMv2=true
- 连接到SQL Server Management Studio。
- 在Object Explorer窗口中,进入Databases文件夹并打开它。
- 右键点击在database_params.conf文件中找到的数据库名称,然后选择Properties。现在将显示该数据库的数据库属性窗口。
- 在窗口的左侧,选择选项。在其他选项下, 向下滚动到状态,如下图所示。
启用(或)禁用数据库的只读模式 - 在状态属性下, 将出现数据库只读选项。将该值设置为否,然后单击确定。
- 重新启动Applications Manager。
注意:确保在对SQL Server进行任何修改之前,请对现有设置进行备份。