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.
Similar Messages
-
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.0user11983948 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 -
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 -
Oracle Logical Standby as data source
Post Author: garyreit
CA Forum: Data Connectivity and SQL
Has anyone succesfully used an Oracle Logical Standby server as a
data source? When I try I get "table not found" for all the
tables in Crystal reports, but the report runs fine. When I run
the same report in BOE, The report fails with the error:Error in File D:\Program Files\Business Objects\BusinessObjects
Enterprise
11.5\Data\procSched\biapp1.reportjobserver\~tmp1c4c50845f07b62.rpt:
Error in formula <Record Selection>.
'{PS_CANC_TERM_CLASS.BATCH_ID} = {?Batch ID} and
This field name is not known.
Details: errorKind We are using BOE XI R2 sp2 and Oracle 10g with an ODBC using the Oracle connector.
Any Ideas?ThanksPost Author: udasgupta
CA Forum: Data Connectivity and SQL
I am getting a similar problem. Did you get a solution? If so, could you please let me know.
Thanks in advance,
Uma -
I am testing streams based replication between 10204 and 11106 databases. The destination db was down for a while (>10+hours) and after the destination db was brought up, I don't see the changes getting applied on the destination database. I don't see any apply errors. I have restarted the capture, propagation, and apply processes but still don't see the changes applied on the destination database. I am unable to troubleshoot any further. Since this is a test, I can do a reinstantiation but it would help me understand what went wrong in this case. I can provide any SQL output which you can use to help me.
What is the order you have restarted the streams.
Please follow the below order.
--On Source - Stop the capture process
exec dbms_capture_adm.stop_capture(capture_name => '<capture_name>');
--make sure it is stopped:
select capture_name, status from dba_capture;
-- On Destination - Stop the apply process:
exec dbms_apply_adm.stop_apply(apply_name => '<apply_name>');
-- Make sure it is stopped:
select apply_name, status from dba_apply;
-- On Source - Stop the propagation:
exec dbms_propagation_adm.stop_propagation(propagation_name => '<prop_name>');
-- Make sure it is stopped:
select propagation_name, status from dba_propagation;
-- On Source - Start the propagation:
exec dbms_propagation_adm.start_propagation(propagation_name => '<prop_name>');
--Make sure it has started:
select propagation_name, status from dba_propagation;
-- On Destination - Start the apply process:
exec dbms_apply_adm.start_apply(apply_name => '<apply_name>');
-- Make sure apply is started
select apply_name, status from dba_apply;
-- On Source - Start the capture process:
exec dbms_capture_adm.start_capture(capture_name => '<capture_name>');
-- Make sure capture is started
select capture_name, status from dba_capture;
Verify whether streams is working or not. -
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.
TIAHi,
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 -
No data found in Update (streams replication)
Hi,
Our database is setup for streams replication of few tables from source database DB1 to destination database DB2. The source tables have different primary key columns than the primary key columns at destination. All tables at source and destination have primary keys, unique keys and foreign keys. There are unique keys on source tables which are used as primary keys on destination. For example, table TAB1 at source DB1 has primary key column COL1 and unique key column COL2. Whereas at destination table TAB1 on DB2 has COL2 as primary key and COL1 is dropped from the LCR.
We have problem now, inserts are replicated perfectly, but not updates. Updates are giving “no data found” error. I went through the oracle documentation and I tried following:
1. Setting keys using DBMS_APPLY_ADM.SET_KEY_COLUMNS. It didn’t work. Unique key column was set as key columns.
2. Setting update conflict handler using DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER. It didn’t work. Unique key column was set as resolution_column and “DISCARD” as method_name (parameters).
Is there anything I am missing? Please help me in resolving this error. If you have any leads or sample code would help me greatly. Appreciated your help.
ThanksThanks for our time and help. Yes, you are right.
FYI... we had supplemental logging. Our team tried with different configuration combinations yesterday. Finally, we found that unconditional supplemental logging must be there to resolve the issue. We had conditional supplemental logging thou. After changing it to unconditional, it was working. There is no need for update conflict handlers or substitute keys.
Thanks -
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. -
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,
TimYes , 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 -
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 -
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 EdgeA 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 -
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. -
Slow replication on logical standby DB
Hi All,
Before 5 day we run update statistics script on our MIS DB. Now, we face slow replication in peak hours on this from RAC and not able to generate reports.
Please suggest me why this happen, how to solve this ? It very critical for me ..
Details are following-----
BEGIN
-- Run job synchronously.
DBMS_SCHEDULER.run_job (job_name=> 'SYS.GATHER_STATS_JOB');
END;
Oracle Version-----
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio
NLSRTL Version 10.2.0.3.0 - Production
AIX Version 5.3
SQL> select NAME ,OPEN_MODE, PROTECTION_MODE ,DATABASE_ROLE,GUARD_STATUs,LOG_MODE from v$database;
OPEN_MODE PROTECTION_MODE DATABASE_ROLE GUARD_S LOG_MODE
READ WRITE MAXIMUM PERFORMANCE LOGICAL STANDBY ALL ARCHIVELOG
Topas -------------
Topas Monitor for host: UMISDB01 EVENTS/QUEUES FILE/TTY
Wed Jan 20 11:51:13 2010 Interval: 2 Cswitch 6723 Readch 0.0G
Syscall 4300 Writech 6657.3K
Kernel 5.4 |## | Reads 2780 Rawin 0
User 58.1 |################# | Writes 288 Ttyout 1337
Wait 2.9 |# | Forks 0 Igets 0
Idle 33.7 |########## | Execs 0 Namei 33
Physc = 2.25 %Entc= 64.2 Runqueue 5.0 Dirblk 0
Waitqueue 6.5
Network KBPS I-Pack O-Pack KB-In KB-Out
en6 2.2 7.0 5.0 0.4 1.8 PAGING MEMORY
en1 0.0 0.0 0.0 0.0 0.0 Faults 2762 Real,MB 16384
lo0 0.0 0.0 0.0 0.0 0.0 Steals 7251 % Comp 94.4
PgspIn 3 % Noncomp 5.5
Disk Busy% KBPS TPS KB-Read KB-Writ PgspOut 0 % Client 5.5
hdisk10 100.0 4.2K 542.5 4.2K 0.0 PageIn 5530
hdisk6 100.0 9.6K 1.2K 9.0K 659.1 PageOut 1664 PAGING SPACE
hdisk5 100.0 8.8K 1.1K 8.1K 715.3 Sios 7194 Size,MB 32768
hdisk4 29.1 1.4K 89.9 128.6 1.3K % Used 9.9
hdisk15 8.5 1.1K 46.2 92.4 1.0K NFS (calls/sec) % Free 91.1
hdisk8 3.5 261.2 31.6 0.0 261.2 ServerV2 0
hdisk14 2.5 514.4 14.6 0.0 514.4 ClientV2 0 Press:
hdisk12 2.0 759.5 8.5 0.0 759.5 ServerV3 0 "h" for help
hdisk0 1.5 16.1 4.0 12.1 4.0 ClientV3 0 "q" to quit
hdisk13 0.5 827.8 13.6 0.0 827.8
hdisk1 0.5 4.0 1.0 0.0 4.0
hdisk7 0.5 442.1 7.5 0.0 442.1
Name PID CPU% PgSp Owner
oracle 1876038 14.1 15.3 oracle
oracle 1597544 14.0 11.3 oracle
lrud 16392 0.5 0.6 root
oracle 1515570 0.4 467.5 oracle
oracle 1695836 0.3 27.3 oracle
oracle 1642498 0.3 323.3 oracle
oracle 1204230 0.3 291.3 oracle
oracle 512222 0.2 483.5 oracle
oracle 1368188 0.2 7.4 oracle
oracle 1458238 0.2 227.3 oracle
oracle 1712180 0.1 307.4 oracle
oracle 1638546 0.1 37.2 oracle
aioserve 848030 0.1 0.4 root
Signal 2 received
Thanks in advanceSantosh Pradhan wrote:
Hi ,
oracle 10.2.0.3 enterprise edition logical standby
We performed heavy updates on our production database due to which logical standby gone lots of logs behind with primary database and log are getting apply on logical standby very slowly.
Kindly suggest how to speed up apply process on logical standby ....Hope you are using "ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;" command
Here please check the below note for Adjusting the Number of APPLIER Processes , also if redo transport is slow check the settings for "LOG_ARCHIVE_MAX_PROCESSES"
http://docs.oracle.com/cd/B28359_01/server.111/b28294/manage_ls.htm#CHDBGBFC -
MV Logs not getting purged in a Logical Standby Database
We are trying to replicate a few tables in a logical standby database to another database. Both the source ( The Logical Standby) and the target database are in Oracle 11g R1.
The materialized views are refreshed using FAST REFRESH.
The Materialized View Logs created on the source ( the Logical Standby Database) are not getting purged when the MV in the target database is refreshed.
We checked the entries in the following Tables: SYS.SNAP$, SYS.SLOG$, SYS.MLOG$
When a materialized view is created on the target database, a record is not inserted into the SYS.SLOG$ table and it seems like that's why the MV Logs are not getting purged.
Why are we using a Logical Standby Database instead of the Primary ? Because, the load on the Primary Database is too much and the machine doesn't have enough resources to support MV based replication. The CPU usage is 95% all the time. The appplication owner won't allow us to go against the Primary database.
Do we have to do anything different in terms of Configuration/Privileges etc. because we are using a Logical Standby Database as a source ?
Thanks in Advance.We have a 11g RAC database in solaris OS where there is huge gap in archive log apply.
Thread Last Sequence Received Last Sequence Applied Difference
1 132581 129916 2665
2 108253 106229 2024
3 107452 104975 2477
The MRP0 process seems not to be working also.Almost 7000+ archives lag in standby if compared with primary database.
i suggest you to go with Incremental rollforward backups to make it SYNC, use this below link for step by step procedure.
http://www.oracle-ckpt.com/rman-incremental-backups-to-roll-forward-a-physical-standby-database-2/
Here questions.
1) Whether those archives are transported & just not applied?
2) Is in production do you have archives or backup of archives?
3) What you have found errors in alert log file?
post
SQL> select severity,message,error_code,timestamp from v$dataguard_status where dest_id=2;
4) What errors in primary database alert log file?
Also post
select ds.dest_id id
, ad.status
, ds.database_mode db_mode
, ad.archiver type
, ds.recovery_mode
, ds.protection_mode
, ds.standby_logfile_count "SRLs"
, ds.standby_logfile_active active
, ds.archived_seq#
from v$archive_dest_status ds
, v$archive_dest ad
where ds.dest_id = ad.dest_id
and ad.status != 'INACTIVE'
order by
ds.dest_id
/Also check errors from standby database. -
Logical standby database questions
Hi,
1.Is it possible to encrypt just the logicals standby database? ie primary is not encrypted but when the data comes to logical standby it gets encrypted?
2. Is it possible to replicate only certain schemas to logcial standby?
Please let me know,
Thanks a lot
SumathyHi Sumathy,
1.) Yes this is possible
2.) Yes also possible. However Logical Standby will always gather all information from the primary, and only skip in the apply process.
If you want to lessen your transfer, then you should use other replication mechanism like
- Golden Gate (preferred but does cost money)
- Streams (free, but depricated)
Regards
Sebastian
Maybe you are looking for
-
I bought my wife a 1st Gen Ipad a while ago yet she prefers her Iphone. How can I transfer the Ipad to my apple ID and not lose the digital copies of movies I have on it? Thanks.
-
How to show desired value in list item, when form starts?
Hello. I have list item with values: April 2006 May 2006 June 2006 July 2006 August 2006 September 2006 When the form starts, i want to show in my list item current month (August 2006). And when i open list item above list would appear with August 20
-
Set Invoice status to printed using the SDK
Hello Experts, Do anybody know if its possible to set the Printed property to "Printed" of a A/R Invoice with the sdk for Sap Business One 2007 And / Or 8.8 and successfully update a document. We are still using v2005 and this property is in read-onl
-
Passing data to mod_osso authentication for IPASAuthInterface
Hi all, I've been a little frustrated recently attempting to create a plugin using mod_osso with Oracle Identity Management suite which automates the login of users on our system. What we would like to do is implement an interface for IPASAuthInterfa
-
Options to insert a BigInteger in a file
Good days, As the title says, this more than a doubt is a search of alternatives. I have a program that performs calculations whose result is a number of several dozens of thousands of digits saved in a variable of type BigInteger. At the moment of r