On Fri, Nov 7, 2008 at 11:05 PM, Dominic Delmolino <ddelmoli@xxxxxxx> wrote: > Excellent points, Niall. > Thanks . > ***** > Oracle Apps are NOT certified to run against Logical Standby per Metalink: > > > From Note > 285267.1<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=285267.1&blackframe=1>Oracle > E-Business Suite 11i and Database FAQ > > *1. Is Logical Standby supported with E-Business Suite 11i ? *No. Logical > standby is not supported with E-Business Suite 11i. > The interoperability notes do not cover how to upgrade a logical Oracle > Applications database and data corruption in a logical database is covered > in these notes. > It is recommended to use a "physical standby database" to guard against > potential data corruption. > Some datatypes utilized by Ebusiness Suite are not supported with logical > Standby database, > and NOLOGGING tables are used e-Bus in some places as well. > > I rather thought that was the case, it seems to me that any solution that is not vendor supported (I misused certified earlier I think) is somewhat problematic to consider as a DR solution for a critical business app. I also didn't mention, but probably should have that logical's "new" status rather mitigates against it as a DR solution for me. I really want my DR to be bullet proof. Logical may get there, but I'm not convinced yet. > ***** > For the lack of primary keys and unique indexes, Logical DG handles them as > long as their are steps taken to uniquely identify the row: > I rather thought that might be the case - I've been fighting a downstream capture streams replication for a client, which is another sql apply based technology - The docs for that say emphasis mine > Substitute Key Columns > > If possible, each table for which changes are applied by an apply process > should have a primary key. When a primary key is not possible, Oracle * > recommends* that each table have a set of columns that can be used as a > unique identifier for each row of the table. If the tables that you plan to > use in your Streams environment do not have a primary key or a set of unique > columns, then *consider* altering these tables accordingly. > > <snip> > > In the absence of substitute key columns, primary key constraints, and > unique key constraints, an apply process uses all of the columns in the > table as the key columns, excluding LOB, LONG, and LONG RAW columns. In > this case, you must create an unconditional supplemental log group > containing these columns at the source database. *Using substitute key > columns is preferable* when there is no primary key constraint for a table > because fewer columns are needed in the row LCR. > > Now my reading of this was that although primary/unique constraints were highly desirable for obvious reasons for sql apply, they weren't required - Oracle didn't seem to me to be using mandatory language above. In common with only about 85% of all applications the schemas that need replication don't actually either have unique constraints (and as a result have duplicate rows). Working through an SR with Oracle right now it seems like SQL apply works great if you have a well designed schema, and doesn't work when you, er, don't. I'd imagine much the same applies to Logical Standby - i.e if you have a data model that has at least a passing familiarity with constraints and data integrity - if not necessarily the relational model itself - then it will probably work fine. If it's a "Real Application" (sorry) it probably won't be reliable. -- Niall Litchfield Oracle DBA http://www.orawin.info