Azure Site Recovery VM未连接到Prem SQL Server上

时间:2019-05-14 20:03:37

标签: sql-server azure

问题陈述

我们有一个200MB的站点,用于与Azure租户建立VPN连接。

我们正在通过将本地VM故障转移到Azure来测试Azure Site Recovery(ASR)。 VM托管基于Web的监视应用程序(RFCode),该应用程序连接到后端的SQL数据库。

将VM故障转移到ASR可以正常工作。但是,一旦VM在Azure中,就无法再连接回本地SQL Server。

错误是:

Could not get JDBC Connection; nested exception is java.sql.SQLException: invalid database address:

环境

  • 我们的本地SQL服务器是WFC上的SQL 2014 Enterprise。 TCP / IP是 启用了静态端口1433。
  • 该虚拟机正在运行Windows Server 2012 R2。

问题排查

  • 故障转移后,我们可以从Azure中的VM成功按名称ping SQL。因此,这似乎不是DNS问题(当然,通过IP ping也可以)。我们还可以从SQL主机ping回Azure中的VM。

  • 在VM进入Azure后,我们可以将其RDP到VM中。

  • VM和SQL服务器均禁用Windows防火墙。据我们所知,VPN连接本身没有任何过滤。

  • 故障转移时,应用程序本地使用的连接字符串不会更改。它可以在本地运行,并且期望它将在Azure中运行。

  • 连接字符串中的数据库名称正确(与prem相同)

  • SQL中没有任何错误消息,因为它看起来好像应用程序未到达服务器。

当然,我的期望是,ASR故障转移后,Azure中的VM会连接回SQL后端,就像本地部署时一样。

还有其他建议要检查的建议吗?

这是完整的应用程序错误

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: invalid database address: jdbc:jtds:sqlserver://MyFQDNinstancename:1433/RFCodeDB;sendStringParametersAsUnicode=false;cacheMetaData=true
                at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:428) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at com.rfcode.config.SystemPropertiesService.testDatabaseConnection(SystemPropertiesService.java:450) [com.rfcode.config-4.0.jar:na]
                at com.rfcode.config.SystemPropertiesService.testDatabaseConnection(SystemPropertiesService.java:433) [com.rfcode.config-4.0.jar:na]
                at com.rfcode.t1.service.impl.DatabaseMonitor$Monitor.testDBConnection(DatabaseMonitor.java:111) [classes/:na]
                at com.rfcode.t1.service.impl.DatabaseMonitor$Monitor.run(DatabaseMonitor.java:104) [classes/:na]
                at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
Caused by: java.sql.SQLException: invalid database address: jdbc:jtds:sqlserver://MyFQDNInstancename:1433/RFCodeDB;sendStringParametersAsUnicode=false;cacheMetaData=true
                at org.sqlite.JDBC.createConnection(JDBC.java:110) ~[sqlite-jdbc-3.7.15-M1.jar:na]
                at org.sqlite.JDBC.connect(JDBC.java:87) ~[sqlite-jdbc-3.7.15-M1.jar:na]
                at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_31]
                at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_31]
                at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ~[spring-jdbc-3.2.6.RELEASE.jar:3.2.6.RELEASE]
                ... 7 common frames omitted````

0 个答案:

没有答案