【问题标题】:Symfony2 doctrine configuration with an Oracle dataguard带有 Oracle 数据保护的 Symfony2 原则配置
【发布时间】:2016-08-27 14:51:57
【问题描述】:

在我工作的 Symfony2 项目中,我想在 config.yml / parameters.yml 文件中配置我的连接,以指向他们稍后将安装的 Oracle 数据保护数据库。事情是,他们告诉我们:这是连接器:

jdbc:oracle:thin@(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=some.primary.host)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=some.secondary.host)(PORT=1521))
(LOAD_BALANCE=off)
(FAILOVER=on)
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=SOMESERVICENAME))
(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 120)(DELAY = 5))
) 

由于有 2 个地址,我找不到处理此问题的方法。 我们的站点在 Windows 7 上,在本地我有一个 Apache2.4 和 PHP 5.4 以及一个用于 12c 的 Oracle 即时客户端。 现在,我们使用 Symfony2 的常用配置连接到当前基础,并在 .yml 文件中显示主机:用户:变量等。 我们的 test/preprod/prod 环境都是 linux。

我尝试阅读很多资料来了解它是如何工作的,所以我继续阅读教义文档,并且我还点击了指向 Oracle 命名方法的链接。我还阅读了 Symfony2 教义配置页面。抱歉,我不能发布超过 2 个链接。

然后我发现有些人在谈论教义中的课程,比如这个https://github.com/symfony/symfony/issues/5106和这个http://blog.ineat-conseil.fr/2014/07/configurer-doctrine-dbal-avec-oracle/

所以,我从这一切中得到的是:

  • 在 .yml 文件中,连接中的 slave 和 master 可能不是我想要的,但我不确定 hteir 的用途,所以也许是。
  • 在 Doctrine\DBAL\Driver\OCI8\OCI8Connection 类中,我清楚地看到使用仅包含一个 ADDRESS 的 ADDRESS_LIST 构建的连接字符串

现在,我想到了两件事:

  • 移除 Doctrine,但目前这将非常困难
  • 扩展(或重写?)我需要的类或类似的东西,但这似乎很复杂

我尝试将 .yml 文件中的“dbname”属性赋予我在特定位置创建的 tsnames.ora 中的服务名称的值,并将 TNS_ADMIN 环境变量放到该位置,但它不起作用(我已将它放在系统变量中,而不是用户变量中)。

所以,也许这是些微不足道的事情,但我有点迷路了。

任何帮助将不胜感激。

干杯:)

【问题讨论】:

    标签: oracle symfony configuration doctrine dataguard


    【解决方案1】:

    好吧,事实证明,解决方案是将连接字符串直接放入 dbname 中: database_host: false 并将主机参数设置为 false : database_name: '(DESCRIPTION=…'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 2014-09-02
      • 1970-01-01
      • 2012-12-02
      • 2017-01-06
      • 1970-01-01
      相关资源
      最近更新 更多