问题标签 [dataguard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - 对于 Azure 上的 Oracle 高可用性 Oracle Data Guard 是否足够或是否需要 Active Data Guard(或 Golden Gate)?
根据 Azure 文档,https ://msdn.microsoft.com/en-us/library/azure/dn439773.aspx、Active Data Guard 或 Golden Gate 是在 Azure 中运行 Oracle 数据库时实现高可用性的选项。
ADG(报告、备份卸载)所引用的好处并不是我们应用程序的优先事项。Oracle Data Guard 对 HA 的效果是否一样好?
database - 用于存储历史数据的复制数据库
数据库中只有部分数据正在由应用程序处理,其余数据对于报告目的是必需的,但这会导致应用程序性能不佳。我想在不修改数据库模式的情况下存档历史数据。
是否有可能复制数据库,从主实例中删除旧数据并定期将新更改同步到复制数据库中?这样,主要的“事务”数据库将是轻量级的,并且复制的数据库将包含用于报告目的的完整的当前和历史数据集。
您能否推荐一些工具或提供一些提示以在 Oracle 上实现这一目标?
编辑:我想知道我是否可以使用流并以某种方式使 DML 处理程序忽略行上的 DELETE 操作(docs.oracle.com/cd/B28359_01/server.111/b28321/...),以便在数据复制期间历史行将是尽管已从事务数据库中删除,但仍保留。
oracle - RMAN 重复目标数据库 ORA-19511:从媒体管理器层收到错误
我正在尝试使用 RMAN Duplicate Target Database For Standby Dorecover 在 Data Guard 配置中构建备用数据库。
所有 rman 备份集都在 Netbackup 中,我可以使用 RMAN 视图查看备份片段的清单。
但是,复制目标数据库命令失败并显示:
基本上,备份片段在那里,但 RMAN/Netbackup 说它们不在那里。
你知道为什么吗?
谢谢你。
oracle - Jdbc datagaurd 问题
我已经在 Oracle 数据库中实现了 datagaurd 以实现两台服务器的高可用性,并配置了 jdbc 设置以连接 Jboss 应用程序服务器以始终连接主数据库实例。
如果我使用以下字符串:
当我执行切换/过滤时,ip1 已关闭,而 ip2 已启动。如果我在列表中首先指定 ip2,那么我会得到一个连接(就像我只是尝试连接到 ip2 时所期望的那样)。但是,当我首先放置 ip1 时,我会遇到与尝试直接连接到相同的错误
oracle - 带有 Oracle 数据保护的 Symfony2 原则配置
在我工作的 Symfony2 项目中,我想在 config.yml / parameters.yml 文件中配置我的连接以指向他们稍后将安装的 Oracle 数据保护数据库。事情是,他们告诉我们:这是连接器:
由于有 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-教义-dbal-avec-oracle/
所以,我从这一切中得到的是:
- 在 .yml 文件中,连接中的从属和主控可能不是我想要的,但我不确定 hteir 的目的,所以也许是这样。
- 在 Doctrine\DBAL\Driver\OCI8\OCI8Connection 类中,我清楚地看到使用 ADDRESS_LIST 构建的连接字符串仅包含一个 ADDRESS
现在,我想到了两件事:
- 删除教义,但目前这将非常困难
- 扩展(或重写?)我需要的类或类似的东西,但这似乎很复杂
我试图为 .yml 文件中的“dbname”属性提供我在特定位置创建的 tsnames.ora 中的服务名称的值,并将 TNS_ADMIN env 变量放到该位置,但是它没用(我把它放在系统变量中,而不是用户变量中)。
所以,也许这是微不足道的事情,但我有点迷路了。
任何帮助将不胜感激。
干杯:)
oracle - 如何使数据保护无缝切换
在 12c 环境中的 Dataguard 配置中,当我执行从主 ( foo
) 到备用 ( bar
) 的切换,然后尝试 sqlplus in with 时user@foo
,我收到“ ORA-011033: ORACLE initialization or shutdown in progress
”错误,而不是能够连接到新的主 (bar)。
现在,我知道这是因为连接仍然指向foo
地址而不是bar
地址,并且根据许多文章,您需要创建一个新的“虚拟”服务来处理不同的连接,以及一个停止的触发器/在角色更改后启动此服务。
我这样做了,并且将service_names
参数设置为这个新的“虚拟”服务,切换将起作用并且也可以切换回来,但是当尝试使用它的 sqlplus 时user@foo
会抛出ORA-011033
. 触发器没用,服务继续在 foo 和 bar 上运行,因为似乎拥有该参数集会覆盖触发器尝试执行的任何操作。
现在,如果我不定义该参数,我的切换工作正常,触发器完成他们的工作,当 I 时sqlplus user@foo
,它会正确地将我重定向到该bar
地址。但是,当我尝试切换回 时foo
,我在 DG 警报日志中收到以下信息:
Redo transport problem detected: redo transport to database foo has the following error:
ORA-16047: DGID mismatch between destination setting and target database
08/05/2016 16:01:02
Initialization of connection failed.
Expected destination db_unique_name is foo.
Database actually reached is bar
Failed to send message to site foo. Error code is ORA-16642.
Data Guard Broker Status Summary:
Type Name Severity Status
Configuration foo_dg Warning ORA-16607
Primary Database bar Error ORA-16778
Physical Standby Database foo Error ORA-16642
在 FO 上:
log_archive_dest_2='service="bar"','ASYNC NOAFFIRM 延迟=0 可选压缩=禁用 max_failure=0 max_connections=1 重新打开=300 db_unique_name="bar" net_timeout=30','valid_for=(online_logfile,all_roles)' fal_client= 'foo' fal_server='bar'
酒吧:
log_archive_dest_2='service="foo", ASYNC NOAFFIRM 延迟=0 可选压缩=禁用 max_failure=0 max_connections=1 重新打开=300 db_unique_name="foo" valid_for=(online_logfile,all_roles)' fal_client='bar' fal_server='foo'
LDAP 中的条目: foo:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=foo_home)(PORT=15940))(ADDRESS=(PROTOCOL=TCP)(HOST=bar_home)(PORT=15940)))(CONNECT_DATA=(SERVICE_NAME =virtual_foo)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=basic))))
酒吧:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=bar_home)(PORT=15940)))(CONNECT_DATA=(SERVICE_NAME=bar)))
我不确定我错过了什么或误解了什么。谁能阐明我可能做错了什么?如果需要,可以提供更多信息。
java - 带有 PDB 的 Oracle Dataguard 上 DB 的 Weblogic 数据源配置
我们正在使用 PDB 迁移到 Oracle Dataguard。
目前,我们只指向 Weblogic 数据源配置中的单个 DB url。
如何使用 PDB 在 weblogic 中为 Oracle Dataguard 配置数据源?我们应该使用“JDBC 多数据源”吗?
oracle12c - 通过 DBMS_SCHEDULER 作业备份 Oracle Physical Standby
朋友们!我们在服务器上的 Data Guard 配置中有很多主数据库及其物理备用数据库。单个服务器上的每个主数据库和单个服务器上的每个物理备用数据库。在 EM12c 中,我们为备份主数据库配置了调度程序作业。不幸的是,当服务器真的很忙时,代理会暂停备份执行,我们没有按照计划进行备份。
因此,我们从 EM12c 禁用了我们的备份作业,并希望使用过程在物理备用上执行备份DBMS_SCHEDULER.CREATE_JOB
。
由于物理备用是只读数据库和主数据库的每个块副本,我必须在主数据库上创建计划作业并将其应用于备用数据库。
所以,问题是:这可能吗?如果,是的 - 如何在脚本中实现这一点?
像这样的东西:
如果不可能,哪种解决方案最适合解决此任务?有没有办法解决这个问题而无需在每台服务器上使用单个脚本创建 cron 任务?是否可以使用恢复目录数据库中的一个全局脚本?
Kris 说,我无法从物理备用数据库运行计划作业。因此,我将使用 crontab 安排我的 linux 脚本。我的linux脚本是:
我不想在每个主机上创建 linux 文件来从我的恢复目录中调用备份全局脚本。是否可以在所有主机上配置集中备份执行计划?我可以将 ssh 从一台主机配置到所有数据库主机并执行我的 linux 脚本进行备份吗?
提前感谢您的回答。
linux - 如何在恢复实例中删除丢失的 dbf
同事(真的!)试图在主要产品 DG 实例上创建一个 dbf。这有效(尽管文件随后被删除),但 db_file_convert 没有为文件位置辅助设置,因此创建失败并且在 $OH/dbs 中创建了“丢失”dbf。
警报日志中的错误:
这会导致 HA 实例上的 DG 失败,并显示:
ORA-01111: 数据文件 1124 的名称未知 - 重命名为正确的文件
ORA-01110: 数据文件 1124: '/$OH/dbs/UNNAMED'
ORA-01157: 无法识别/锁定数据文件 1124 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 1124 的名称未知 - 重命名为正确的文件
ORA-01110: 数据文件 1124: '/$OH/dbs/UNNAMED'
文件不存在于 prod 和读取有关不可恢复的 DG 数据库状态以创建文件或删除它。这些选项在辅助数据库中均不可用。我有哪些选择?在 HA 上重新创建控制文件而不参考丢失的文件然后重新启动?我的 DG 知识有点生疏也无济于事——我的意思是固体氧化铁。
oracle - ldap 中带有 2 个连接描述符的 Oracle 网络服务名称
我不确定我想做的事情是否可行,所以我在这里寻求指导。
我的目标是在 LDAP中设置一个网络服务名称,以便使用它来服务于两个目的,DESCRIPTION_LIST
它也是 DataGuard 配置的一部分:
- 将
DESCRIPTION
使用“虚拟”服务名称,该服务将仅在列出的服务器之一中启动,ADDRESS_LIST
并且客户端将能够通过此方法连接到网络服务名称。 - 另一个
DESCRIPTION
将用于直接联系服务
第一个是针对客户端的,它将允许客户端连接到当前主数据库,因为该特定服务只会在主数据库所在的服务器上运行。
第二个是允许存档日志传送的通信。
以下是我的尝试:
我的想法是,当客户端尝试通过连接进行sqlplus user/pw@apple
连接时,首先会去prim
检查virtual apple
,如果服务不存在,它将尝试下一个地址,sb
。然后第二个DESCRIPTION
将允许 DataGuard 用于传送归档日志的更深思熟虑的途径。
我让这个在各个方面都工作了一段时间,但后来事情变得混乱并且它打破了我,我想知道是否可能需要定义一些其他参数以防止连接混淆。我想做很多事情吗?