使用Oracle dataguard

时间:2016-05-02 18:33:55

标签: oracle symfony configuration doctrine dataguard

在我的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 envs都是linux。

我试过阅读很多东西来了解它是如何工作的,所以我继续学习doc,我也跟着它上面的Oracle命名方法的链接。我还阅读了Symfony2 doctrine配置页面。我还不能发布2个以上的链接,抱歉。

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

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

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

现在,我想到了两件事:

  • 删除学说,但此时此刻会很难
  • 扩展(或重写?)我需要的类或类似的东西,但这似乎很复杂

我试图提供" dbname" .yml文件中的属性是我在特定位置创建的tsnames.ora中的服务名称的值,并将TNS_ADMIN env变量放到此位置,但它没有工作(I& #39;已将它放在系统变量中,而不是用户变量中。)

所以,也许它是微不足道的,但我有点迷失。

非常感谢任何帮助。

干杯:)

1 个答案:

答案 0 :(得分:0)

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