PHP SQL 服务器始终在线的原则

PHP Doctrine with SQL Server Always On

我正在使用 Symfony 3 (php 7.1) 和 SQL 服务器数据库以及 AlwaysOn 开发应用程序。 AlwaysOn 是 SQL 支持高可用性和灾难恢复的服务器,而 Doctrine 2 不适用于此范例。

我已经开发了一个 CRUD 来测试它的基础设施部分在我的工作中实现了这个数据库。第一次,它工作正常并且持续正常。但是,当他们为另一个实例更改实例时,例如第一个实例停止工作时发生的情况,会自动转到具有相同数据库结构和数据的另一个实例。当它发生时,我收到一条来自学说的错误消息:

Fatal error: Invalid handle returned. in C:\xampp\htdocs\testesql\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php on line 43

看起来 Doctrine 缓存了一些不适用于这种数据库范例的东西。我正在使用 Microsoft SQL 服务器驱动程序 (pdo_sqlsrv)。有人可以帮我吗?我会很高兴。

问题解决了!考虑到 SQL Server Always On 是一项新技术并且 PHP 7.1 也是如此,因此很难使用它。 (08/06/17)

我解决了将 symfony doctrine 驱动程序从 "pdo_sqlsrv" 更改为 "sqlsrv" followwing Doctrine 2 Documentation 信息的问题。

如果有人对使用 PHP 的 SQL Server Always On 有任何疑问,请记住:

  • 只能使用 Windows 用户(AD 或 LDAP)登录不同的实例。您将无法使用数据库用户登录并使用不同的实例传递。

  • 要登录 SQL Server Always On 以使其正常工作,您必须使用 Apache 身份验证登录数据库。