【发布时间】: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