Oracle Streams on a Rac Environment
Hi
I have some questions with respect to Setting up Streams on a rac Environment.Would appreciate a quick response as I need the answers by tommorrow.Any help would be greatly appreciated.Here are the questions
1> Do we have to create capture process for each active instance on only 1 capture process will do?
2> If yes then do they need to have a seperate queue for each one?
3> How will the apply process access multiple capture process and the propogation take place?
4> can only 2 tables in the source be replicated instead of the entire database?
5> In case if we use a push job if both the primary and secondary go down how can we move to the third instance and use it?
6> If the instance goes down do we have to restart the capture process once again?
7>What is the best suited for rac - ASM/RAW FILES with respect to Streams?
Regards
Shweta
Streams in 9iR2 RAC environment mines only from archive logs not online redo logs. This restriction is lifted in 10g RAC. If you choose to go thru the downstream capture route in 10g then you can only mine from archive logs in 10gR1.
Having said the above here are my answers:
1> Do we have to create capture process for each active instance or only 1 capture process will do?
You can run multiple capture processes each on difference instance in RAC. Unless you have a requirement to do so, a single capture process would suffice. The in-memory queue should also be on the same instance as the capture process is running from.
2> If yes then do they need to have a seperate queue for each one?
YES
3> How will the apply process access multiple capture process and the propogation take place?
Propagation is from a source queue to the destination queue. If the destination is a single instance database, then you can direct propagations for all of your capture(s) into a single apply queue. If the destination is also RAC then you can run multiple apply processes on each node and apply changes for specific set of tables. Maintenance would be something to think about here along with what happens when one node goes down.
4> can only 2 tables in the source be replicated instead of the entire database?
YES. Streams is flexible to let you decide what level you want to replicate.
5> In case if we use a push job if both the primary and secondary go down how can we move to the third instance and use it?
In theory propagation is a push job. There are certain things you need to configure correctly. If done, then you can move the entire streams configuration to any of the surviving node(s).
6> If the instance goes down do we have to restart the capture process once again?
In 9iR2 you have to restart the streams processes. In 10g the streams processes automatically migrate and restart at the new "owning" instance. In both versions, Queue ownership is transferred automatically to the surviving instance.
7> What is the best suited for rac - ASM/RAW FILES with respect to Streams?
Streams is independent of the storage system you use. I cannot think of any correlation here.
Similar Messages
-
Performance tuning and Periodic Maintance in Oracle Streaming Environment
We had Setup the Bi-Directional Oracle Streaming between two remote Sites each of 2-Node RAC Databases
This is Our Enviroment Summary.
Database Oracle 10g R2 version 10.2.0.4.0
Os: Solaris[tm] OE (64-bit)
Currenly Oracle Streaming working Successfully and I'm Daily Monitor the Same.
As Mention in the Master Note for Streams Performance Recommendations [ID 335516.1]
Purging Streams Checkpoints
10.2: Alter the capture parameter CHECKPOINT_RETENTION_TIME from the default retention of 60 days to a realistic value for your database.
A typical setting might be to retain 7 days worth of checkpoint metadata :
exec dbms_capture_adm.alter_capture(capture_name=>'your_capture', checkpoint_retention_time=> 7);
My Query
===> Currenly In My Environment CHECKPOINT_RETENTION_TIME is as default 60 days
I want to change the checkpoint_retention_time=> 7 so what should I take care for before execute the above command in my Live Streaming Environment.
Edited by: user8171787 on Apr 13, 2011 11:00 PMWe had Setup the Bi-Directional Oracle Streaming between two remote Sites each of 2-Node RAC Databases
This is Our Enviroment Summary.
Database Oracle 10g R2 version 10.2.0.4.0
Os: Solaris[tm] OE (64-bit)
Currenly Oracle Streaming working Successfully and I'm Daily Monitor the Same.
As Mention in the Master Note for Streams Performance Recommendations [ID 335516.1]
Purging Streams Checkpoints
10.2: Alter the capture parameter CHECKPOINT_RETENTION_TIME from the default retention of 60 days to a realistic value for your database.
A typical setting might be to retain 7 days worth of checkpoint metadata :
exec dbms_capture_adm.alter_capture(capture_name=>'your_capture', checkpoint_retention_time=> 7);
My Query
===> Currenly In My Environment CHECKPOINT_RETENTION_TIME is as default 60 days
I want to change the checkpoint_retention_time=> 7 so what should I take care for before execute the above command in my Live Streaming Environment.
Edited by: user8171787 on Apr 13, 2011 11:00 PM -
How to create a wallet in oracle RAC environment
How to create a wallet in oracle RAC environment.
While running following command "alter system set encryption key identified by "thalesdata4";
I am getting error message "cannot auto create wallet" or "failed to open wallet.
Please suggest correct way to create a wallet in RAC environment.
Thanks
Sudhirhi,
please refer for detailed explanation
Master Note for SSL Configuration in Fusion Middleware 11g [ID 1218695.1]
regards -
Calculating total memory in oracle RAC environment
I have to calculate total memry in RAC environment.
For shared and buffer pool I execute show sga.
For UGA and PGA I execute statement that have two different values.
This is my two different methot for calculating total memory in oracle RAC environment.
Why I have very different value in this 2 statements on pga values?
first stat
with vs as
select 'PGA: ' pid
,iid
,session_pga_memory + session_uga_memory bytes
from (select inst_id iid
,(select ss.value
from gv$sesstat ss
where ss.sid = s.sid
and ss.inst_id = s.inst_id
and ss.statistic# = 20) session_pga_memory
,(select ss.value
from gv$sesstat ss
where ss.sid = s.sid
and ss.inst_id = s.inst_id
and ss.statistic# = 15) session_uga_memory
from gv$session s)
union all
select 'SGA: ' || name pid
,s.inst_id iid
,value bytes
from gv$sga s
select distinct iid, pid, sum(bytes) over (partition by iid, pid) bytes from vs
IID PID BYTES
1 PGA: 196764792 <=====
1 SGA: Database Buffers 318767104
1 SGA: Fixed Size 733688
1 SGA: Redo Buffers 811008
1 SGA: Variable Size 335544320
2 PGA: 77159560 <=====
2 SGA: Database Buffers 318767104
2 SGA: Fixed Size 733688
2 SGA: Redo Buffers 811008
2 SGA: Variable Size 335544320
second stat
with vs as
select 'PGA: ' pid
,p.inst_id iid
,p.pga_alloc_mem bytes
from gv$session s
,gv$sesstat pcur
,gv$process p
where pcur.statistic# in ( 20 -- = session pga memory
,15 -- = session uga memory
and s.paddr = p.addr
and pcur.sid = s.sid
and pcur.INST_ID = s.INST_ID
and pcur.INST_ID = p.INST_ID
union all
select 'SGA: ' || name pid
,s.inst_id iid
,value bytes
from gv$sga s
select distinct iid, pid, sum(bytes) over (partition by iid, pid) bytes from vs
IID PID BYTES
1 PGA: 342558636 <=====
1 SGA: Database Buffers 318767104
1 SGA: Fixed Size 733688
1 SGA: Redo Buffers 811008
1 SGA: Variable Size 335544320
2 PGA: 186091416 <=====
2 SGA: Database Buffers 318767104
2 SGA: Fixed Size 733688
2 SGA: Redo Buffers 811008
2 SGA: Variable Size 335544320I'm sorry but it is not clear to me.
- From v$session (1th stmt) I have
nearly 196MB of PGA mem on instance 1
and
nearly 77MB of PGA mem on instance 2
- From v$process (2th stmt) I have
nearly 342MB of PGA mem on instance 1
and
nearly 186MB of PGA mem on instance 2
then...
342+186 - 196+77 = nearly 255MB of memory allocated by oracle processes but free?
if I want calculate the total thing of the amount of the allocated memory from Oracle...It is more correct 2th statement that query v$process...it is true? -
Are multiple PHYSICAL databases supported in one Oracle 10g RAC environment
Hi alls,
as of Metalink 220970.1 Oracle RAC is also supporting different databases in one cluster installation. RAC handles any resource as a service and it doesn't matter if these services belongs to only one or to different databases. You install the Oracle Clusterware only once and you create any service you want to make high available.
So is technically possible to install multiple databases on same Oracle Rac environment.
My doubts are related to SAP , does SAP certify such environments ?? we could have one SAP R/3 database and SAP BW database co-exist in a single Oracle RAC environment. or also co-exist SAP database with a non-SAP database (an already existing application) in the same Oracle Rac environment.
Any comment would be higly appreciated.
Silvio BrandaniWe have ECC, BI, PI and Portal running on same Oracle RAC environment. We have one RAC for QA systems and one for PRD systems. We are not running any SAP applications along with Non-SAP applications on RAC. Keeping SAP and non-SAP apps separate would be a way to go.
Hope this helps.
Thanks,
Naveed -
Transaction Recovery within an Oracle RAC environment
Good evening everyone.
I need some help with Oracle 11gR1 RAC transaction-level recovery issues. Here's the scenario.
We have a three(3) node RAC Cluster running Oracle 11g R1. The Web UI portion of the application connects through WLS 9.2.3 with connection pooling set. We also have a command-line/SQL*Developer component that uses a TNSNAMES file that allows for both failover and load balancing. Within either the UI or the command line portion of the application, a user can run a process by which invokes one or more PL/SQL Packages to be invoked. The exact location of the physical to the database is dependent on which server is chosen from either the connection pooling or the TNSNAMES.ORA Load Balancing option.
In the normal world, the process executes and all is good. The status of the execution of this process is updated by the Packages once completed. The problem we are encountering is when an Oracle Instance fails. Here's where I need some help. For Application-level (Transaction Level) recovery, the database instances are first recovered by the database background proccesses and then Users must determine which processes were in flight and either re-execute them (if restart processing is part of the process) or remove any changes and restart from scratch. Given that the database instance does not record which processes are "in flight" it is the responsibility of the application to perform its own recovery processing. Is this still true?
If an instance fails, are "in flight" transactions/connections moved to other instances in the Grid/RAC environment? I don't think this is possible but I don't remember if this was accomplished through a combination of Application and Database Server features that provide feedback between each other. How is the underlying application notified of the change if such an issue occurs? I remember something similar to this in older versions of Oracle but I cannot remember what it was callled.
Any help or guidance would be great as our client is being extremely difficult in pressing this issue.
Thanks in advance
Stephen Karniotis
Project Architect - Compuware
[email protected]
(248) 408-2918You have not indicated whether you are using TAF or FCF ... that would be the first place to start.
My recommendation would be to let Oracle roll back the database changes and have the application resubmit the most recent work.
If the application knows what it did since the last "COMMIT" then you should be fine with the possible exception of variables stored
in packages. Depending on packages retaining values is an issue best solved with PRAGMA SERIALLY_REUSABLE ... in other words
not using the retention feature. -
In Oracle RAC environment which is OLTP database? load balancing advantage.
In Oracle RAC environment which is a OLTP database? List the options for load balancing along with their advantages.
You can use a software load balancer.
https://forums.oracle.com/forums/search.jspa?threadID=&q=Software+AND+Load+AND+Balancer&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
Installing and Configuring Web Cache 10g and Oracle E-Business Suite 12 [ID 380486.1]
Thanks,
Hussein -
Advice on implementing oracle streams on RAC 11.2 data warehouse database
Hi,
I would like to know high level overview on implementing one-way schema level replication within same database using oracle streams on RAC 11.2 data warehouse database.
Are there any points that should be kept in mind before drafting the implementation plan.
Please share your thougts and experiences.
Thanks in advance
srhHi,
I would like to know high level overview on implementing one-way schema level replication within same database using oracle streams on RAC 11.2 data warehouse database.
Are there any points that should be kept in mind before drafting the implementation plan.
Please share your thougts and experiences.
Thanks in advance
srh -
hi ,
I’m trying to configure oracle stream one direction ( tables level )..
my source and destination database is 10.2.0.4 and destination in rac (three nodes)
source database is one node
please help if there is some configuration required in racHello
Please find the Oracle RAC Specific Configuration while implementing Oracle Bidirectional streaming Setup
#Propagation
queue_to_queue parameter
-- Assign Primary / Secondary Instance IDs
dbms_aqadm.alter_queue_table(queue_table => 'capture_srctab',
primary_instance => 1,
secondary_instance => 2);
dbms_aqadm.alter_queue_table(queue_table => 'apply_srctab',
primary_instance => 1,
secondary_instance => 2);
All Streams processing is done at the owning instance of the queue used by
the Streams client. To determine the owning instance of each ANYDATA queue
in a database, run the following query:
SELECT q.OWNER, q.NAME, t.QUEUE_TABLE, t.OWNER_INSTANCE
FROM DBA_QUEUES q, DBA_QUEUE_TABLES t
WHERE t.OBJECT_TYPE = 'SYS.ANYDATA' AND
q.QUEUE_TABLE = t.QUEUE_TABLE AND
q.OWNER = t.OWNER;
#tbsnames.ora
Service_name=global_name=db_name
Please find the metalink document
10gR2 Streams Recommended Configuration [ID 418755.1]
Regards
Hitgon -
ASM Installation on Oracle 11g Clusterware (RAC) environment
Hi All,
I am trying to setup Oracle 11g Standared Edition RAC+ASM on RedHat Linux 5.0 VM ware box. As part of this RAC setup successfully completed. For this i have used raw devices and mounted using NFS.
In many of forumns i have read that ASM installtion on a cluster envioronmnet is different than non cluster environment.
I dont know how to start ASM installtion on RAC environment. Please share any documents if you have?
Thanks,
Rakeshwill the steps need to be done on two nodes of cluster or it is sufficient on first node.
"raw device" for OCR, VOTE, SPFILE_FOR ASM and ASM DISKGROUPs
before do "raw devices" you have to fdisk(make partitions) on share storages
node1:
# fdisk /dev/sdf
# ls /dev/sdf*
node2:
# ls /dev/sdf*
don't find...,so just fdisk -> l and -> w
fdisk how? http://linux.about.com/od/commands/l/blcmdl8_fdisk.htm
Example: /etc/sysconfig/rawdevices do it every nodes
#Oracle OCR File +~280M+
/dev/raw/raw1 /dev/sdf1
#Oracle Voting File +~280M+
/dev/raw/raw2 /dev/sdf2
#Oracle ASM spfile ~50M+
/dev/raw/raw3 /dev/sdf3
#Oracle ASM DISK Group1
/dev/raw/raw4 /dev/sdg1
#Oracle ASM DISK Group2
/dev/raw/raw5 /dev/sdh1
And oracle user.. can read /dev/raw/raw* You should find on every nodes
http://oraclepitstop.wordpress.com/2008/02/15/raw-devices-on-rhel-5-or-oel-5/
ls -la /dev/raw/raw*
crw-rw---- 1 root oinstall 162, 1 Jan 13 12:53 /dev/raw/raw1
crw-rw---- 1 oracle oinstall 162, 2 Jan 13 12:53 /dev/raw/raw2
crw-rw---- 1 oracle oinstall 162, 3 Jan 13 12:53 /dev/raw/raw3
crw-rw---- 1 oracle oinstall 163, 1 Jan 13 12:53 /dev/raw/raw4
crw-rw---- 1 oracle oinstall 164, 1 Jan 13 12:53 /dev/raw/raw5
do it on node1 but you have to pass phrase on every nodes Before
http://www.puddingonline.com/~dave/publications/SSH-with-Keys-HOWTO/document/html/SSH-with-Keys-HOWTO-5.html
example:
node01:
$ ssh node01 hostname
node01
$ ssh node02 hostname
node02
- Install + Setup Clusterware:
OCR = /dev/raw/raw1
VOTE = /dev/raw/raw2
- Install Oracle Database for ASM Home
spfile for ASM = /dev/raw/raw3
- after ASM started... create disk groups from /dev/raw/raw4 and /dev/raw/raw5
- Install Oracle Database for RDBMS Home
- Create Database to use ASM diskgroups
http://www.oracle-base.com/articles/11g/OracleDB11gR1RACInstallationOnRHEL5UsingVMwareESXAndNFS.php
Did you followed the same procedure to set up Oracle 11g RAC+ASM on RHEL 5.0.I'd done(test 11gRAC) it on RHEL 4 + 11g + ASM(on raw device)
on production, I use ASMlib... + ASM + 10g
you can read on metalink to help idea
465001.1
357492.1
605828.1
564580.1
on http://startoracle.com/2007/09/30/so-you-want-to-play-with-oracle-11gs-rac-heres-how/
Oracle 11g’s RAC.. I think.. that can help you ;)
Good Luck
Edited by: Surachart Opun (HunterX) on Jun 26, 2009 11:22 AM
Example from IBM... Deploying Oracle RAC 11g R1 on RHEL 5 or SLES 10 with Oracle ASM on the IBM DS3400, DS4200, DS4700, and DS4800 Storage Subsystems
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101323
Edited by: Surachart Opun (HunterX) on Jun 26, 2009 11:27 AM -
How locking take place in oracle rac environment?
how locking take place in oracle rac environment?
Suppose from one session, user is updating and from other session same rows are being selected then how this locking take place in Oracle RAC?user11936985 wrote:
how locking take place in oracle rac environment?
Suppose from one session, user is updating and from other session same rows are being selected then how this locking take place in Oracle RAC?In the case of one session updating and the other selecting, there is no locking issue, regardless of whether it's single instance or RAC.
The update will take appropriate table (TM) and row-level (TX) locks, but the select will not take any locks (unless it's a select for update), so, there should be no problem.
Oracle will use read consistency to guarantee that the selected results are self-consistent and consistent with the point in time of the start of the query.
Hope that helps,
-Mark -
A sample server specification for Oracle RAC environment
Hi,
Our project has decided to change the single instance database to a RAC environment. Can any one provide a sample server specification to be analysed based on our project.
For example minimum processor/RAM....
ThanksThis is the simplest installation you can get, but if you want to do a fast response file based installation, there it is.
-
Register Oracle Streams with OID
I'm trying to setup an Oracle Streams environment that registers queues with OID. I have the db registered, and set global_toppic_enabled=true. DB is in archivemode. When I try to setup a queue with:
BEGIN
DBMS_STREAMS_ADM.SET_UP_QUEUE(
queue_table => 'STREAMS_QUEUE_TABLE',
queue_name => 'STREAMS_QUEUE',
queue_user => 'STRMADMIN');
END;
I get
Error report:
ORA-00600: internal error code, arguments: [kcbgtcr_5], [52583], [4], [0], [], [], [], []
ORA-06512: at "SYS.DBMS_STREAMS_ADM", line 739
ORA-06512: at line 2
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number
Has anyone run into this? I searched metalink, but couldn't find anything. I'm running 10.2.0.1 on Windows 2K.
Thanks in advance.I never use streams with OID but check Bug 4996133 - OERI[kcbgtcr_5] updating an IOT in RAC environment.
I would consider to upgrade db to 10.2.0.3 - it is first really stable release of 10gR2
Regards,
Serge -
Oracle Streams & Oracle Real Application Clusters
Hello...i'am developing a new replication system to my company using Oracle Streams. I have already achieved data replication to a downstream database but now i would like to do it but in an RAC environment. So, i will appreciate any help you can give me. Best regards, walny
I've been researching but now i have another doubt, i have a cluster of five instances, two of them donwstream, one primary and one secundary, i don't now if the standby redo log files configured for the primary instance will be the same for the secundary instance, what i want to achieve is the HA of the replication environment, so if i configured standby redo log files in both instances and with just one group the problem is solved, i'll be wasting resources.
i hope you can help me
regards
Edited by: walny on 08-abr-2010 10:45
Edited by: walny on 08-abr-2010 10:46 -
Streams Setup from RAC to Single instance
Does anyone have a document to setup streams from RAC to Non RAC. I successfully setup streams on 2 single instances but I am having issues in replicating, Streams is setup on node1 or Rac and Apply process is also setup on single node. but data is not replicating.
Appreciate any suggestions.From Metalink Note 418755.1:
Additional Configuration for RAC Environments for a Source Database Archive Logs
The archive log threads from all instances must be available to any instance
running a capture process. This is true for both local and downstream capture.
Queue Ownership
When Streams is configured in a RAC environment, each queue table has an
"owning" instance. All queues within an individual queue table are owned by
the same instance. The Streams components (capture/propagation/apply) all
use that same owning instance to perform their work. This means that
+ a capture process is run at the owning instance of the source queue.
+ a propagation job must run at the owning instance of the queue
+ a propagation job must connect to the owning instance of the target queue.
Ownership of the queue can be configured to remain on a specific instance,
as long as that instance is available, by setting the PRIMARY _INSTANCE
and/or SECONDARY_INSTANCE parameters of DBMS_AQADM.ALTER_QUEUE_TABLE.
If the primary_instance is set to a specific instance (ie, not 0), the queue
ownership will return to the specified instance whenever the instance is up.
Capture will automatically follow the ownership of the queue.If the ownership
changes while capture is running, capture will stop on the current instance
and restart at the new owner instance.
For queues created with Oracle Database 10g Release 2, a service will be
created with the service name= schema.queue and the network name
SYS$schema.queue.global_name for that queue. If the global_name of the
database does not match the db_name.db_domain name of the database, be sure
to include the global_name as a service name in the init.ora.
For propagations created with the Oracle Database 10g Release 2 code with
the queue_to_queue parameter to TRUE, the propagation job will deliver only
to the specific queue identified. Also, the source dblink for the target
database connect descriptor must specify the correct service (global name of
the target database ) to connect to the target database. For example, the
tnsnames.ora entry for the target database should include the CONNECT_DATA
clause in the connect descriptor for the target database. This claus should
specify (CONNECT_DATA=(SERVICE_NAME='global_name of target database')).
Do NOT include a specific INSTANCE in the CONNECT_DATA clause.
For example, consider the tnsnames.ora file for a database with the global name
db.mycompany.com. Assume that the alias name for the first instance is db1 and
that the alias for the second instance is db2. The tnsnames.ora file for this
database might include the following entries:
db.mycompany.com=
(description=
(load_balance=on)
(address=(protocol=tcp)(host=node1-vip)(port=1521))
(address=(protocol=tcp)(host=node2-vip)(port=1521))
(connect_data=
(service_name=db.mycompany.com)))
db1.mycompany.com=
(description=
(address=(protocol=tcp)(host=node1-vip)(port=1521))
(connect_data=
(service_name=db.mycompany.com)
(instance_name=db1)))
db2.mycompany.com=
(description=
(address=(protocol=tcp)(host=node2-vip)(port=1521))
(connect_data=
(service_name=db.mycompany.com)
(instance_name=db2)))
Use the italicized tnsnames.ora alias in the target database link USING clause.
DBA_SERVICES lists all services for the database. GV$ACTIVE_SERVICES identifies
all active services for the database In non_RAC configurations, the service
name will typically be the global_name. However, it is possible for users to
manually create alternative services and use them in the TNS connect_data
specification . For RAC configurations, the service will appear in these views
as SYS$schema.queue.global_name.
Propagation Restart
Use the procedures START_PROPAGATION and STOP_PROPAGATION from
DBMS_PROPAGATION_ADM to enable and disable the propagation schedule.
These procedures automatically handle queue_to_queue propagation.
Example:
exec DBMS_PROPAGATION_ADM.stop_propagation('name_of_propagation'); or
exec DBMS_PROPAGATION_ADM.stop_propagation('name_of_propagation',force=>true);
exec DBMS_PROPAGATION_ADM.start_propagation('name_of_propagation');
If you use the lower level DBMS_AQADM procedures to manage the propagation schedule,
be sure to explicitly specify the destination_queue name when queue_to_queue propagation has been configured.
Example:
DBMS_AQADM.UNSCHEDULE_PROPAGATION('source_queue_name','destination',destination_queue=>'specific_queue');
DBMS_AQADM.SCHEDULE_PROPAGATION('source_queue_name','destination',destination_queue=>'specific_queue');, DBMS_AQADM.ENABLE_PROPAGATION_SCHEDULE('source_queue_name','destination',destination_queue=>'specific_queue');,
DBMS_AQADM.DISABLE_PROPAGATION_SCHEDULE('source_queue_name','destination',destination_queue=>'specific_queue');, DBMS_AQADM.ALTER_PROPAGATION_SCHEDULE('source_queue_name','destination',destination_queue=>'specific_queue');
Changing the GLOBAL_NAME of the Source Database
See the OPERATION section on Global_name below. The following are some
additional considerations when running in a RAC environment.
If the GLOBAL_NAME of the database is changed, ensure that any propagations
are dropped and recreated with the queue_to_queue parameter set to TRUE.
In addition, if the GLOBAL_NAME does not match the db_name.db_domain of the
database, include the global_name for the queue (NETWORK_NAME in DBA_QUEUES)
in the list of services for the database in the database parameter
initialization file.
Section 4. Target Site Configuration
The following recommendations apply to target databases, ie, databases in which
Streams apply is configured.
1. Privileges
Grant Explicit Privileges to APPLY_USER for the user tables
Examples:
Privileges for table level DML: INSERT/UPDATE/DELETE,
Privileges for table level DDL: CREATE (ANY) TABLE , CREATE (ANY) INDEX,
CREATE (ANY) PROCEDURE
2. Instantiation
Set Instantiation SCNs manually if not using export/import. If manually
configuring the instantiation scn for each table within the schema, use the
RECURSIVE=>TRUE option on the DBMS_STREAMS_ADM.SET_SCHEMA_INSTANTIATION_SCN
procedure
For DDL Set Instantiation SCN at next higher level(ie,SCHEMA or GLOBAL level).
3. Conflict Resolution
If updates will be performed in multiple databases for the same shared
object, be sure to configure conflict resolution. See the Streams
Replication Administrator's Guide Chapter 3 Streams Conflict Resolution,
for more detail.
To simplify conflict resolution on tables with LOB columns, create an error
handler to handle errors for the table. When registering the handler using
the DBMS_APPLY_ADM.SET_DML_HANDLER procedure, be sure to specify the
ASSEMBLE_LOBS parameter as TRUE.
In Streams Concepts manual 10.2 chapter 22: Monitoring Apply
Displaying detailed information about Apply errors.
4. Apply Process Configuration
A. Rules
If the maintain_* procedures are not suitable for your environment,
please use the ADD_RULES procedures (ADDTABLE_RULES , ADD_SCHEMA_RULES ,
ADD_GLOBAL_RULES (for DML and DDL), ADD_SUBSET_RULES (DML only).
These procedures minimize the number of steps required to configure Streams
processes. Also, it is possible to create rules for non-existent objects,
so be sure to check the spelling of each object specified in a rule carefully.
APPLY can be configured with or without a ruleset. The ADD_GLOBAL_RULES can
be used to apply all changes in the queue for the database. If no ruleset is
specified for the apply process, all changes in the queue are processed by the apply process.
A single Streams apply can process rules for multiple tables or schemas
located in a single queue that are received from a single source database .
For best performance, rules should be simple. Rules that include LIKE clauses are
not simple and will impact the performance of Streams.
To eliminate changes for particular tables or objects, specify the
include_tagged_lcr clause along with the table or object name in the
negative rule set for the Streams process. Setting this clause will
eliminate all changes, tagged or not, for the table or object.
B. Parameters
Set the following parameters after a apply process is created:
+ DISABLE_ON_ERROR=N Default: Y
If Y, then the apply process is disabled on the first unresolved error,
even if the error is not fatal.
If N, then the apply process continues regardless of unresolved errors.
+ PARALLELISM=3* Number of CPU Default: 1
Apply parameters can be set using the SET_PARAMETER procedure from the
DBMS_APPLY_ADM package. For example, to set the DISABLE_ON_ERROR parameter
of the streams apply process named APPLY_EX, use the following syntax while
logged in as the Streams Administrator:
exec dbms_apply_adm.set_parameter('apply_ex','disable_on_error','n');
Change the apply parallelism parameter recommendation to a lower number.
In general, try 4 or 8 and increase or decrease as necessary for your workload.
In some cases, performance can be improved by setting the following hidden
parameter. This parameter should be set when the major workload is UPDATEs
and the updates are performed on just a few columns of a many-column table.
+ DYNAMICSTMTS=Y Default: N
If Y, then for UPDATE statements, the apply process will optimize the
generation of SQL statements based on required columns.
CHECKPOINTFREQUENCY=1000
Increase the frequency of logminer checkpoints especially in a
database with significant LOB or DDL activity.
exec dbms_capture_adm.set_parameter('capture_ex','_checkpoint_frequency','1000');
5. Additional Configuration for RAC Environments for a Apply Database
Queue Ownership
When Streams is configured in a RAC environment, each queue table has an
"owning" instance. All queues within an individual queue table are owned
by the same instance. The Streams components (capture/propagation/apply)
all use that same owning instance to perform their work. This means that
the database link specified in the propagation must connect to the owning
instance of the target queue. the apply process is run at the owning instance
of the target queue
Ownership of the queue can be configured to remain on a specific instance,
as long as that instance is available, by setting the PRIMARY _INSTANCE and
SECONDARY_INSTANCE parameters of DBMS_AQADM.ALTER_QUEUE_TABLE. If the
primary_instance is set to a specific instance (ie, not 0), the queue
ownership will return to the specified instance whenever the instance is up.
Apply will automatically follow the ownership of the queue. If the ownership
changes while apply is running, apply will stop on the current instance and
restart at the new owner instance.
Changing the GLOBAL_NAME of the Database
See the OPERATION section on Global_name below. The following are some
additional considerations when running in a RAC environment.
If the GLOBAL_NAME of the database is changed, ensure that the queue is
empty before changing the name and that the apply process is dropped and
recreated with the apply_captured parameter = TRUE. In addition, if the
GLOBAL_NAME does not match the db_name.db_domain of the database, include
the GLOBAL_NAME in the list of services for the database in the database
parameter initialization file.
Maybe you are looking for
-
Can't see HD on new Airport Extreme with TimeMachine software
Just bought a new Airport Extreme for which set up was easy -- I plugged it into my router via ethernet, ran the configuration and was good to go. The AirPort Extreme is plugged in and appears to be set up correctly as the green light is glowing on t
-
Loading swf into SWFLoader before it is added to a container
I want to dynamically load a SWF file, before a particular view is created in a Flex 4.5 mobile app. Is it possible to load a SWF file into a SWFLoader before the SWFLoader is added to a container? I tried this but it didn't work. I tried doing this
-
Which Linux is the best for a X60 and T60/61?
@Ajkula66, which version or flavour of Linux do you think is the best for a X60 and T60/61? Regards, Jin Li May this year, be the year of 'DO'! I am a volunteer, and not a paid staff of Lenovo or Microsoft Solved! Go to Solution.
-
Set location in Reminders by tap
Reminders.app allows to notify on location (arriving or leaving). But when location sets it cannot be selected by tap on the map. Only by writing address via search field. Is there app restriction or my iPhone fault?
-
Program error after using connected smart objects
Hello, dear friends. I need your help. My problem is: 1. I placed linked smart objects in to the photo and then tried to replace content of this smart object. Suddenly program shut down. And If I try to do the same one more time the same happened. 2.