Which way - Streams or Logical Standby?

Hi,
I'm having a requirement to replicate a schema between two databases. The scenario is that we've got an Interactive Voice Recorder system for tracking voice calls to a call center contact.
The system will be hosted in two sites, with kind of load balancing where calls are routed to either of the centers. The two centers will each have an OLTP database, and the databases will of-course be similar.
There's a particular schema that needs to be replicated between the two databases so that the schema is available in either of the nodes. We were thinking of Active Standby but this seems to be out of question because the two databases need to be open read-write all the time.
We are looking into Streams to accomplish this, but we wonder if a logical standby can also accomplish the same, since it can be open read-write?
The database version will be 11.1.0.7.0

user11983948 wrote:
Thanks Anuraq,
The volume of the data that will be replicated will be small, just a single schema. I also did not clarify, but the data in the two databases will be kept only for about 30 days, then truncated, after being sent to a separate warehouse server where the data will be stored and analyzed.
Regards,
dulaIf the data replicated is small, and dmls are free then streams would be better than logical standby.
Regarding the truncate part you meant the data would be deleted from the table which are older than 30 days. Streams would be able to handle that. Make sure you delete the data from one site only and that would be replicated on another site. I also assume you are looking for two way replication in that case logical standby is not an option.
Regards
Anurag

Similar Messages

  • Using streams or logical standby

    We are runing Oracle 9.2.0.3.0 and have a requirement to replicate the production database on another server for query and reporting purpose.
    The changes can be applied to the reporting database on a daily basis. Of course, the faster the better if there is no additional overhead added on the production database (performance acceptable on the production database).
    Do you recommend using Oracle Streams or the logical standby database and why? which one is more stable now?
    Thanks in advance for your help.

    Hi,
    there is no difference on the primary site between ADG and normal DG. And there is also no difference in shipment of the redo logs.
    The apply performance on the standby is minimally slower (< 2%) and only recognizable if you already have problems that the standby keeps up to date. But then again this does not effect your DR.
    It only means that a switchover/failover will take minimally longer....
    On the other side, there is always headroom to optimize apply performance. See here:
    http://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr1-activedataguard-1-128199.pdf
    Regards
    Sebastian

  • Streams Replication: Logical Standby DB as source

    I don't have much experience with streams replications. So, the following might sound like a silly questions to Oracle Gurus:
    If the source database is a logical standby database, can stream replication be used to replicate some of the tables in the source database to the target DB ?
    The source and the target DB are 11g R2.
    Thanks in adavance:
    - Sanjay
    Edited by: sanjayku on Dec 8, 2010 4:38 PM

    Never done it, but I don't see any reason why it should not work.
    Streams, at capture site, is only a data dictionary game and in a logical standby your data dictionary is open read write.
    Streams, at capture site, never touch the source tables, in fact they may even not exists from Streams point of view,
    as it deals only with the redo that are generated.
    So Streams horizon is limited to the data dictionary, the log buffer, the archives and, in SYSAUX tablespace, all the LOGMNR_% tables. All these structures are read write in the logical standby. However, for the capture/propagation you may have to set to true the 'include_tagged_lcr' parameters.

  • Streams or Logical Standby?

    I have a requirement to duplicate an Oracle DB over a WAN to a remote site. The data in that copy of the DB (along with many other databases of various platforms) will then be aggregated into a SQL Server database for reporting purposes.
    The requirements are:
    - there can be no noticeable performance impact on the primary DB
    - the secondary DB must be as close to in sync with the primary as possible (i.e. little or no lag)
    - the secondary DB must be readable at all times (precludes max performance physical standby)
    Current configuration
    - the primary is an 11.2.0.1 RAC database.
    - there is already a physical standby at the remote site for DR purposes operating in maximum performance mode and using standby logs. It rarely falls more than 2-3 seconds behind the primary. If this server could be leveraged that would be great, but obviously a physical standby cannot be both readable and up to date.
    TIA

    Hi,
    there is no difference on the primary site between ADG and normal DG. And there is also no difference in shipment of the redo logs.
    The apply performance on the standby is minimally slower (< 2%) and only recognizable if you already have problems that the standby keeps up to date. But then again this does not effect your DR.
    It only means that a switchover/failover will take minimally longer....
    On the other side, there is always headroom to optimize apply performance. See here:
    http://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr1-activedataguard-1-128199.pdf
    Regards
    Sebastian

  • DATA Guard Logical Standby v.s. Streams Apply (10gR2, rac -- rac )

    Greetings -
    We currently have a 3 node cluster, doing a 'Schema' capture, with a 2 node cluster serving as the apply side. Both are on 10gR2 (solaris 10)
    We have been experiencing apply latency due to large transactions. The way logminer/streams evaluates the arch logs, it converts each updated row into a transaction as part of a transaction set, using 'decode (' statements.
    I am under the impression a physical standby will do the same thing. But what about a logical Standby ?
    (this from the Oracle Documentation)
    [10g Concepts|http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/concepts.htm#SBYDB00010]
    ...Contains the same logical information as the production database, although the physical organization and structure of the data can be different. The logical standby database is kept synchronized with the primary database though SQL Apply, which transforms the data in the redo received from the primary database into SQL statements and then executing the SQL statements on the standby database.
    Does anyone know firsthand if SQL APPLY re-issues the original sql, or if it relies on the 'decode' command as well ?
    Thanks
    The Nets Edge

    A Physical standby does not do anything with SQL. It is running media recovery under the covers. A Logical standby uses the Logminer to read the redo, converts it to SQL and Data and applies those transactions to the Logical standby.
    The both build logical change records, figure out order, dependencies etc etc and applies the transaction. Both are susceptible to long running transactions on the Primary (source) database.
    Streams uses Logminer, Logical Standby use part of the Streams apply so as Mr. Morgan said, they are very similar :^)
    If you are having apply performance issues you may want to look at Active data Guard.
    Larry

  • Logical standby versus Streams?

    Anybody can explain me difference between logical standby and streams in terms of architecture and functionality?

    Both Logical standby and streams share the same underlying architecture. The difference is the requirements u have
    1) the Logical standby database is the complete replica of the whole database. while streams enable you to replicate table, schema or the database.
    2) The logical standby database can opened in read only mode. ( by the way u can open it in read/write but you have to stop the recovery first and u have flash back database enabled). Streams allow you to open the replicated database read/write mode.
    3) The logical standby database allows one way replication. with streams you can implement bi-directional replication as well.
    4) Streams are far more customizable than logical data guard.
    5) in my opinion streams are much harder to implement, administer and monitor than logical standby database

  • [Logical Standby] Which table/SQL caused paging-out

    We have a Primary-Logical DR configuration.
    Recently, it has a problem with the logical: it's continuously paging out data from some transactions:
    SELECT SUBSTR(name, 1, 40) AS NAME, SUBSTR(value,1,32) AS VALUE FROM GV$LOGSTDBY_STATS;
    number of preparers     3
    number of appliers     18
    maximum SGA for LCR cache     4095
    parallel servers in use     24
    maximum events recorded     1000000
    preserve commit order     TRUE
    transaction consistency     FULL
    record skip errors     Y
    record skip DDL     Y
    record applied DDL     N
    record unsupported operations     Y
    coordinator state     IDLE
    transactions ready     7
    transactions applied     0
    coordinator uptime     9646
    realtime logmining     Y
    apply delay     0
    Log Miner session ID     1
    txns delivered to client     1068651
    DML txns delivered     1017135
    DDL txns delivered     15
    CTAS txns delivered     0
    Recursive txns delivered     51501
    Rolled back txns seen     23463
    LCRs delivered to client     11682189
    bytes of redo processed     14475529508
    bytes paged out     1482524624
    seconds spent in pageout     8922
    bytes checkpointed     0
    seconds spent in checkpoint     0
    bytes rolled back     7500032
    seconds spent in rollback     90
    seconds system is idle     0
    SELECT SID, SERIAL#, SPID, TYPE, HIGH_SCN, STATUS_CODE, STATUS
    FROM GV$LOGSTDBY_PROCESS
    ORDER BY TYPE, SPID;
    ANALYZER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    APPLIER     16116     ORA-16116: no work available
    BUILDER     16243     ORA-16243: paging out 4752 bytes of memory to disk
    COORDINATOR     16116     ORA-16116: no work available
    PREPARER     16127     ORA-16127: stalled waiting for additional transactions to be applied
    PREPARER     16127     ORA-16127: stalled waiting for additional transactions to be applied
    PREPARER     16127     ORA-16127: stalled waiting for additional transactions to be applied
    READER     16127     ORA-16127: stalled waiting for additional transactions to be applied
    select xidusn, xidslt, xidsqn, count(*) from system.logmnr_spill$
    group by xidusn, xidslt, xidsqn;
    996     46     249     254
    710     37     838     825
    623     3     706     254
    478     7     42564     254
    765     38     649     824
    42     6     415494     3729
    264     35     4817     3738
    How can we identify the table/SQL to skip & instantiate it later so the logical DB will not being lag far behind.
    Thank you.

    Hi,
    Best way to find SQL is to mine the current archive log getting applied on standby and check for the SQL, you might not get the exact SQL, but you will get the object which is getting updated.
    Or
    You can use AWR report from logical standby of this time to find the update statement which is resource extensive.
    There is no way to find the exact SQL on primary which is causing the issue on standby.
    Regards
    Anudeep

  • Logical Standby and Streams

    Hi,
    I am considering different replication scenarios for our future system and have a (maybe stupid:) question. Is it technically possible to create a logical standby database (Data Guard) and than replicate it further using Streams?
    Regards,
    Tim

    Yes , This is possible with logical standby but you need to have mechanisms to take care of role transitioning in case of fail over. See Oracle document http://download.oracle.com/docs/cd/E14072_01/server.112/e10700/whatsnew.htm (Key word search "streams")
    Thanks
    http://swervedba.wordpress.com/
    Edited by: swervedba on May 30, 2011 8:48 PM

  • Best Way to setup a disaster Recovery site for a logical standby database

    I have a logical standby DB (L1DB) as a reporting db on the same machine as the primary (P1DB). We are planning on building a disaster recovery site with similar hardware and potentially have disk mirroring of atleast the redo log files.
    The DR site can hold an additional physical standby (S1DB) for the primary (P1DB). I am trying to understand what would be the best way to setup the Disaster Recovery site for the L1DB logical stdby. Ideally, when the disaster happens, and I no longer have P1DB and L1DB, I should be able to switch to S1DB as the new primary. But how do I setup to have a L2DB that takes the place of L1DB and has its contents and can be setup as a logical standby of S1DB?

    If you already setup one logical standby, then you know how it works, so not sure what question you are asking ?
    Personally I would setup L2DB as a standby of the original primary P1DB. Having downstream standby databases complicates things, and adds additional lag between primary transaction time and L2DB apply.

  • Streams Replication:Source database Physical or Logical Standby DB

    Can the source database in streams replication be a physical or logical standby database ? If so, is the process of configuring streams the same as a regular database ? Are there any best practices or different configuration if the source is Logical or Physical standby DB ?
    Thanks in advance.

    Never done it, but I don't see any reason why it should not work.
    Streams, at capture site, is only a data dictionary game and in a logical standby your data dictionary is open read write.
    Streams, at capture site, never touch the source tables, in fact they may even not exists from Streams point of view,
    as it deals only with the redo that are generated.
    So Streams horizon is limited to the data dictionary, the log buffer, the archives and, in SYSAUX tablespace, all the LOGMNR_% tables. All these structures are read write in the logical standby. However, for the capture/propagation you may have to set to true the 'include_tagged_lcr' parameters.

  • Goldengate from physical standby with Active data guard or from logical standby - which is better?

    Hi,
    We have Oracle 11.2.0.4 and are currently using Active Data Guard on a physical standby. My boss wants me to use Goldengate
    to replicate several schema from Oracle to SqlSserver. She doesn't want to touch the Primary, which is in production. Would it be better
    to setup a Logical standby for Goldendate to use, in addition to the Physical standby? Or will it be sufficient to use the Physical standby?
    The application tables don't all have primary keys. I'm trying to decide if the Logical standby adds another layer of complexity or would
    introduce delays in getting the data from Oracle to Sqlserver.
    Thanks in advance,

    Hi,
    In this case I recommend you to use physical standby + Golden gate with ALO mode. You might have sligthly more trouble in logical standby. it means you might have more trouble at Goldengate's extract side.
    You said
    The application tables don't all have primary keys.
    so you have to add keycols on replicat side.
    I recommend you to add an index which should consist of keycols columns. it will be necessary for replicat performance.
    Best Regards

  • Data Guard logical standby Versus Streams

    I'm referring to both Oracle 10g/9i
    If a Data Guard logical database uses similar technology to Streams (Log Mining and SQL apply), why can't you stand up a standby database on a different platform, or at least I have found nothing on the subject.
    But in 11g Oracle Data Guard (physical standby database) is a solution for same endianness platform migration.
    I will appreciate any insight on the subject.

    Yes...thats true...both uses same technology...
    REDO LOGMINER
    SQL------------------------>BLOCK LEVEL CHANGES---------------------------------->SQL
    But there are serious implemetation diff..
    1) Oracle Data Guard is designed for protecting from data failure and disasters.
    Streams is designed for information sharing and distribution but can also provide a very efficient high availability solution.
    2) Streams is configured from the bottom up — individual tables, schemas, capture processes, apply processes, queues.
    Logical Standby is configured from the top down — start with entire database, then specify only what you don’t want.
    As logical standby is top down and changes are capture at remote location (logical standby db) and for that archive log need to be shipped using FAL client/server to remote and to ship the archivelog in Data Guard configuration, all members should be running on same platform.
    As said before, Streams is configured from the bottom up, it start with tables--> Schemas--->Database and we can capture changes at local/remote location. If we capture changes locally, target streams db can be on diff platform. But for downstream capture must need same platform as logical standby database needed so that archivelogs can transport from source to downstream db.

  • Physical standby, logical standby which one shud i prefer?

    Hi ,
    how to decide which standby to create that is whether Physical or Logical.
    I want to create it for database failover. so which one i shoul prefer?
    pls give ur suggestions.
    Thanks,
    Kuamr.
    Message was edited by:
    user548258

    Physical standby is the easiest to setup and administer and supports all datatypes. You can use it for reporting (if it's rarely req'd), except for you would have to cancel the recovery, open the db is a read-only mode, and then put it back in the recovery mode.
    Logical standby is a pain, but you can run reports at anytime without canceling recovery. logical does not support certain datatypes, like IOT's, BLOBs, etc.

  • Why could not Oracle replicates tables which includes Spatial Data to Logical Standby?

    Hi all,
    Nowadays, i am working on Oracle Logical Standby Databases which includes Spatial Data? But i could not achieve to transport a table with multimedia data (with spatial data types ). But Logical Standby Databases can not support this type of tables? Is this a restriction of modelling Spatial and Geometry in data blocks? And how do i achieve this because i should use this secondary for query-only?
    Kind Regards,

    Some data types are simply not supported by logical standby replication. Depending on the version, this might or might not include Spatial.
    11.2: https://docs.oracle.com/cd/E11882_01/server.112/e41134/data_support.htm#SBYDB4936
    12.1: https://docs.oracle.com/database/121/SBYDB/data_support.htm#SBYDB4936
    If you need to replicate Spatial data, you need to look at other mechanisms. E.g., physical standby, materialized views, or GoldenGate.

  • CPU patch procedure with physical and logical standby database in place

    Hello All,
    I've also placed this in the Upgrades forum, but perhaps this is the best place to have put it.
    I'm trying to compile a decent set of steps for applying the CPUOCT2008 patch to our production RAC cluster which has both a logical and physical standby in place. I've read a tonne of documentation, including the CPU readme, DOCID 437276.1 and 278641.1. I''ve also read through the Upgrading Databases in a Data Guard Configuration chapter of Dataguard Concepts and Administration. The last doc mentioned is really for upgrading a full version of Oracle rather than applying a CPU (at least I think that's the case). DocID 437276.1 is rather sparse on details.
    I guess what I'm trying to understand is the proper method for applying the patch with the logical standby in place. The physical standby looks pretty straightforward. After running opatch on it as well, it will basically have all of the changes applied to the primary shipped over and applied as per the normal primary/standby relationship. Will the same be true for the logical (having applied the patch, and then re-enabling SQL apply)? Should I aim to have it work that way? By that I mean start it up and re-enable sql apply and then upgrade the primary. Or, am I to apply the catcpu.sql script to it as well before re-enabling the sql apply? Am I wrong in regards to the physical standby as well i.e. should the catcpu also be applied directly to it?
    Thanks very much in advance.
    Cheers,
    Chris
    Edited by: chris.baron on Dec 12, 2008 11:38 AM

    Given the fact that your system is far from main-stream I'd recommend opening an SR with Oracle Support Services (metalink) and asking them.
    If you would like to publish a White Paper on your experience after you have successfully completed the project let me know off-line.

Maybe you are looking for