DATAGUARD OBSERVER DOUBT
is it possible to configure more than one observer (dataguard) for particular primary and physical standby database?
or some other options to protect observer? what else we have to do to protect/ unplanned shutdown of observer server machine?
oracle version 11gR2 , operating system OEL 5
Thanks and Regards,
Rajesh
Dear 791622,
Please see;
http://www.trivadis.com/uploads/tx_cabagdownloadarea/te_dg_observer_doag-mnb2_02.pdf
http://blogs.oracle.com/AlejandroVargas/gems/DataGuardBrokerandobserverst.pdf
http://www.orafaq.com/wiki/Data_Guard_implementation_for_Oracle_10gR2#DATAGUARD_OBSERVER_:
+"+
+DATAGUARD OBSERVER :+
+Observer is a utility that is available with the dataguard. Its basic purpose is to keep the database available to the clients all the time. It is started on a separate location other than Primary and Standby locations. After starting the observer, it starts watching continuously both the sites. Whenever the PRIMARY database fails due to any reason and the connection between the PRIMARY site and the observer breaks, the observer waits for a certain time which is set up during setting the broker configuration. When this time passes, the observer automatically starts the failover process. As a result, the Physical Standby database is converted to PRIMARY database. After this failover, the users again connect to the database. This connection redirects them automatically to the new PRIMARY database.+
+"+
As far as i know, there can be only one observer for a single data guard broker configuration with the fast start failover option. Protection of the observer client or the box can be achieved on system level.
Regards.
Ogan
Similar Messages
-
hi all
first this is not an problem i am reporting, rather an doubt i have as i am experimenting dataguard in oracle 10g.
I have setup and primary and standby database and configured dataguard, switchover and failovers are working fine.
if my primary database is PRIM and standby database is STAN, after a failover and role change.
how does the client application or clients know and atuomatically adapt to the change. hope i have framed the question clearly.
thanksYou have several ways to tell the clients / application about the role change :
1. User Load balancer to control the application / clients traffic to the current primary instance.
2. Write script that changes DNS / Hosts entry to point to the current primary instance.
3. User Services as mentioned above.
Oded Raz
[www.dbsnaps.com]
[www.orbiumsoftware.com] -
Dear all,
Please help me regarding this i am very much confused.....
I had couple of doubts in dataguard concepts.
1)When archive log is transferred from primary to standby ,
a.Whether DBWR will be in active state or not in standby server.To write the contents in the archived redo log files which came from the primary to the datafiles of the standby server.
b.I am using online redo logs in the standby server not standby redo logs , whether online redologs in the standby server will have any effect in shipping of redologs from the primary database,
c. In my standby database online redo logs state is changing between CLEARING AND CLEARING CURRENT.How standby server redologs will change it state,
Regards,
Vamsi.Hi again,
They are not used in a physical standby database. They exist in order to be used in a case of opening the standby database read-write (failover/snapshot standby). Here what documentation says:
Online redo logs
Every instance of an Oracle primary database and logical standby database has an associated online redo log to protect the database in case of an instance failure. Physical standby databases do not have an associated online redo log, because physical standby databases are never opened for read/write I/O; changes are not made to the database and redo data is not generated.
Create an Online Redo Log on the Standby Database
Although this step is optional, Oracle recommends that an online redo log be created when a standby database is created. By following this best practice, a standby database will be ready to quickly transition to the primary database role.
... -
Doubt on dataguard maximum perfomance mode
HI Gurus ,
We have a dataguard environment configured in 12.1.0.2.0 on OEL 5.6. Dataguard is configured in maximum performance using following congiguration ,
18:26:26 SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
log_archive_dest_2 string service=TGOID NOAFFIRM LGWR ASYNC COMPRESSION=ENABLE VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TGOID
Here I used LGWR ASYNC and enabled real time apply at my standby using ,
SQl> alter database recover managed standby database using current logfile disconnect;
Here are my doubts ,
1. If we enable real time apply ,the changes will reflect at standby when a commit happens at primary. is it correct ?
But here I can't see that behavior , the changes are getting applied to standby only when I make a log switch.(as in the case of ARCH transport mode )
2. So if I wish to get the changes done at standby when a commit happens at primary, is I need to set the following ?
First ,
alter system set log_archive_dest_2=service=TGOID AFFIRM LGWR SYNC COMPRESSION=ENABLE VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=TGOID scope=both;
Secondly,
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION/MAXIMIZE AVAILABILITY .
is it correct ?
3. If its correct what is the advantage of using lgwr async in maximum performance ? then what is meant by real time apply in maximum performance ?
Thanks and regards,
Mahihttp://docs.oracle.com/cd/B19306_01/server.102/b14239/create_ps.htm#i1225703
Step 2 Determine the appropriate number of standby redo log file groups
(maximum number of logfiles for each thread + 1) * maximum number of threads -
Doubt regarding REAL time redo apply in Dataguard
Friends, how to check whether 'REAL TIME REDO APPLY' is configured in my dataguard configuration. If it is not 'on' , how to enable 'REAL TIME REDO APPLY' on using dataguard broker.
Thanks in advance.918868 wrote:
Friends, how to check whether 'REAL TIME REDO APPLY' is configured in my dataguard configuration. If it is not 'on' , how to enable 'REAL TIME REDO APPLY' on using dataguard broker.
Thanks in advance.You have to check the client process whether it is LGWR or ARCH process. The CLIENT PROCESS refers to corresponding primary database process.
SQL> SELECT THREAD#,SEQUENCE#,PROCESS,CLIENT_PROCESS,STATUS,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY;
THREAD# SEQUENCE# PROCESS CLIENT_P STATUS BLOCK# BLOCKS
0 0 ARCH ARCH CONNECTED 0 0
0 0 ARCH ARCH CONNECTED 0 0
0 0 ARCH ARCH CONNECTED 0 0
0 0 ARCH ARCH CONNECTED 0 0
1 149 ARCH ARCH CLOSING 61440 1244
0 0 RFS N/A IDLE 0 0
"1 150 RFS LGWR IDLE 8910 1"
1 150 MRP0 N/A APPLYING_LOG 8910 204800 -
Hi,
Oracle Version :10.2.0.1
Operating system:Windows Xp
Please help me what is the difference between these two queries.
select
substr(local.name,1,50) "Archive Name",
case when remote.sequence# is null then 'NOT TRANSMITTED'
else 'transmitted'
end,
local.sequence#,
local.thread#
from
(select * from v$archived_log where dest_id = 1) local
left join
(select * from v$archived_log where dest_id = 2) remote
on local.sequence# = remote.sequence# and
local.thread# = remote.thread#
order by local.sequence#;
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 7 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 8 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 9 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 10 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 11 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 12 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 13 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 14 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 15 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 16 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 17 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 18 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 19 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 20 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 21 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 22 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 23 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 24 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 25 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 26 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 27 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 28 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 29 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 30 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 31 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 32 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 33 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 34 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 35 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 36 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 37 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 38 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 39 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 40 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 41 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 42 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 43 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 44 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 45 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 46 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 47 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 48 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 49 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 50 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 51 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 52 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 53 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 54 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 55 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 56 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 57 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 58 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 59 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 60 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 61 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 62 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 63 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 64 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 65 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 66 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 67 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 68 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 69 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 70 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 71 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 72 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 73 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 74 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 75 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 76 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 77 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 78 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 79 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 80 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 81 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 82 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 83 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 84 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 85 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 86 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 87 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 88 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 89 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 90 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 91 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 92 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 93 1
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 94 1
Archive Name CASEWHENREMOTE. SEQUENCE# THREAD#
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASA transmitted 95 1
SQL> select sequence#, applied from v$archived_log;
SEQUENCE# APP
5 NO
6 NO
7 NO
8 NO
9 NO
10 NO
11 NO
12 NO
7 NO
12 NO
13 NO
SEQUENCE# APP
10 NO
11 NO
6 NO
5 NO
9 NO
8 NO
13 YES
14 NO
14 YES
15 NO
16 NO
SEQUENCE# APP
17 NO
18 NO
15 NO
16 NO
17 NO
18 YES
19 NO
19 YES
20 YES
20 NO
21 NO
SEQUENCE# APP
22 NO
23 NO
24 NO
25 NO
25 YES
21 NO
24 NO
23 NO
22 NO
26 NO
26 YES
SEQUENCE# APP
27 YES
27 NO
28 YES
28 NO
29 NO
30 NO
31 NO
32 NO
33 NO
34 NO
35 NO
SEQUENCE# APP
36 NO
37 NO
38 NO
39 NO
40 NO
41 NO
29 NO
30 NO
31 NO
32 NO
34 NO
SEQUENCE# APP
33 NO
36 YES
35 NO
37 NO
39 NO
41 YES
38 NO
40 NO
42 NO
42 YES
43 YES
SEQUENCE# APP
43 NO
44 NO
44 YES
45 YES
45 NO
46 YES
46 NO
47 NO
48 NO
49 NO
50 NO
SEQUENCE# APP
51 NO
52 NO
53 NO
54 NO
55 NO
56 NO
57 NO
47 NO
48 NO
50 NO
51 NO
SEQUENCE# APP
49 YES
54 NO
52 NO
53 NO
55 NO
57 YES
56 NO
58 NO
58 YES
59 NO
60 NO
SEQUENCE# APP
61 NO
62 NO
63 NO
64 NO
65 NO
66 NO
59 NO
60 NO
61 NO
62 YES
63 NO
SEQUENCE# APP
66 YES
65 NO
64 NO
67 NO
67 YES
68 YES
68 NO
69 YES
69 NO
70 YES
70 NO
SEQUENCE# APP
71 NO
71 YES
72 YES
72 NO
73 NO
73 YES
74 NO
75 NO
76 NO
77 NO
78 NO
SEQUENCE# APP
79 NO
80 NO
81 NO
82 NO
83 NO
84 NO
85 NO
86 NO
87 NO
88 NO
89 NO
SEQUENCE# APP
90 NO
91 NO
92 NO
93 NO
94 NO
95 NO
74 NO
76 NO
75 NO
77 NO
78 NO
SEQUENCE# APP
79 NO
80 NO
81 NO
84 NO
85 NO
86 NO
82 YES
87 NO
89 YES
91 NO
90 NO
SEQUENCE# APP
88 NO
93 NO
94 NO
92 NO
83 YES
95 YES
182 rows selected.Thanks & Regards,
Poorna.Hi,
Here is the output for your query
SQL> select dest_id, name, sequence#, archived, applied from v$archived_log order by sequence#;
DEST_ID NAME SEQUENCE# ARC APP
84 YES NO
2 poorstand 84 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_85_696773304.ARC 85 YES NO
2 poorstand 85 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_86_696773304.ARC 86 YES NO
2 poorstand 86 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_87_696773304.ARC 87 YES NO
DEST_ID NAME SEQUENCE# ARC APP
2 poorstand 87 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_88_696773304.ARC 88 YES NO
2 poorstand 88 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_89_696773304.ARC 89 YES NO
2 poorstand 89 YES YES
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_90_696773304.ARC 90 YES NO
2 poorstand 90 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_91_696773304.ARC 91 YES NO
2 poorstand 91 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_92_696773304.ARC 92 YES NO
2 poorstand 92 YES NO
DEST_ID NAME SEQUENCE# ARC APP
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_93_696773304.ARC 93 YES NO
2 poorstand 93 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_94_696773304.ARC 94 YES NO
2 poorstand 94 YES NO
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_95_696773304.ARC 95 YES NO
2 poorstand 95 YES YES
1 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRASAD\ARCHIVELOG\1_96_696773304.ARC 96 YES NO
183 rows selected. -
Doubts with control break statements on internal table loops (AT/ENDAT)
Hi, i've had a couple of doubts for a long while which I hope someone can clarify today:
1) I know how to use the AT statements, however, i'm not sure I get correctly what this part of help regarding this commands means:
<i>"The control level structure with internal tables is static. It corresponds exactly to the sequence of columns in the internal table (from left to right). In this context, the criteria according to which you sort the internal table are unimportant."</i>
I've always sorted the internal table before the control break and it works that way. For example:
SORT ITAB BY EBELN EBELP.
LOOP AT ITAB.
AT NEW EBELN.
* Code for the order header
ENDAT.
ENDLOOP.
If I <b>don't</b> sort the internal table, it doesn't work! (i get dupplicated processing). In the example, if i have more than one register with the same EBELN and they're not consecutive, the header gets processed twice. I really don't get that part of the help text.
2) I know this: <i>"At the start of a new control level (i.e. immediately after AT), the following occurs in the output area of the current LOOP statement:
All character type fields (on the right) are filled with "*" after the current control level key.
All other fields (on the right) are set to their initial values after the current control level key."</i>
My doubt is: WHY is that this way? Because sometimes (most times) I need those fields INSIDE the statement! So when that happened i've solved it in one of three ways:
LOOP AT ITAB INTO WA_ITAB.
WA_ITAB_AUX = WA_ITAB.
AT NEW FIELD.
WA_ITAB = WA_ITAB_AUX.
* ...Rest of the code for the first register
ENDAT.
ENDLOOP.
LOOP AT ITAB INTO WA_ITAB.
AT NEW FIELD.
READ TABLE ITAB INDEX SY-TABIX INTO WA_ITAB.
* ...Rest of the code for the first register
ENDAT.
ENDLOOP.
* (Without AT)
LOOP AT ITAB INTO WA_ITAB.
IF WA_ITAB-FIELD <> FIELD_AUX.
FIELD_AUX = WA_ITAB_FIELD.
* ...Rest of the code for the first register
ENDIF.
ENDLOOP.
Is there any problem with this way of coding? Can be done better?
Thank you very much in advance.Hi..,
1)
See if u sort the table on a field on which u r using AT ENDAT .. then all the records which are having the same value for that field will form a group or those reocrds will be at one place.. so when u sort the table for all the records AT ENDAT will get executed onli once..
If u dont sort this table on this field then all these records will be at different places and in between there may be records with different value for this field.. so this AT ENDAT will get executed for each record !!
2)
No u cannot use the Right hand fields of the field in the table .. Because these AT events work as Group based operations... So till that field on which AT ENDAT is working it breaks that record into two groups.. One is the left hand fields including that field.. and right hand fields as another group.. and makes the right hand group as stars ****. Thats y u can observe that even any one field in the left hand group changes the AT ENDAT will get executed !!!!
Hope u understood !!!
regards,
sai ramesh -
Hi from few days onwards i found one abnormality in my iphone4s .That is if i observe my phone settings screen from right side of the device top navigation bar appearing rightside height is more than the left side. In reverse manner from the left side. I dnt know whether it is default feature of iphone or not but i am really disappointed due to this. So please anyone help me in this issue and let me clear my doubt and make me happy. Thanks in advance.
I believe what you are seeing is an optical illusion when viewing the screen from the side. Try to align one of the one of the options in Settings, like General, with the navigation bar you'll see it does the same thing.
Hope that helps -
RAC Dataguard Switchover timing taking more than expected time
I have Dataguard setup in RAC environment and my dataguard is also configured and it is working fine.
Our goal is to do the switchover using DGMGRL withing the 5 minutes. We have followed the proper setup and MAA tuning document and everything is working fine, Just the switchover timeing is 8 to 10 minutes. which varies depending on some parameters but not meeting our goal of less than 5 minutes.
The only observation that we have seen is as follow
After switchover to <db_name> comman in DGMGRL
1) it will shutdown abort the 2nd instance
2) transfter all the archivelog ( using LGWR in ASYNC mode) of instance 1
3) Now it looks for the archive log of 2nd instance, this steps take time upto 4 minutes
we do not know why it takes that much time and how to tune this??
4) Now converts primary to standby
5) Now starts the old standby as new primary
here All steps are tunined except the step 3, that where our lot of time is going any Idea or explanation
why it takes such a long time to find the exact archive log 2nd instance (Aborted) to transfer to standby site?
Can any one give explanation or solution to tune this???
Regards
BhushanHi Robert,
I am on 10.2.0.4 and we have used "MAA_WP_10gR2_DataGuardNetworkBestPractices.pdf", which is available on oracle site.
Here are by configuration details
GMGRL> connect sys@dv01aix
Password:
Connected.
DGMGRL> show configuration;
Configuration
Name: dv00aix_dg
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
dv00aix - Physical standby database
dv01aix - Primary database
Current status for "dv00aix_dg":
SUCCESS
DGMGRL> show database verbose dv00aix
Database
Name: dv00aix
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
dv00aix1 (apply instance)
dv00aix2
Properties:
InitialConnectIdentifier = 'dv00aix'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '4'
ReopenSecs = '300'
NetTimeout = '60'
LogShipping = 'ON'
PreferredApplyInstance = 'dv00aix1'
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '900'
LogArchiveMaxProcesses = '5'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = '+SPARE1/dv01aix/,+SPARE/dv00aix/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName(*)
SidName(*)
LocalListenerAddress(*)
StandbyArchiveLocation(*)
AlternateLocation(*)
LogArchiveTrace(*)
LogArchiveFormat(*)
LatestLog(*)
TopWaitEvents(*)
(*) - Please check specific instance for the property value
Current status for "dv00aix":
SUCCESS
DGMGRL> show database verbose dv01aix
Database
Name: dv01aix
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
dv01aix1
dv01aix2
Properties:
InitialConnectIdentifier = 'dv01aix'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '4'
ReopenSecs = '300'
NetTimeout = '60'
LogShipping = 'ON'
PreferredApplyInstance = 'dv01aix1'
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '+SPARE/dv00aix/, +SPARE1/dv01aix/'
LogFileNameConvert = '+SPARE/dv00aix/,+SPARE1/dv01aix/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName(*)
SidName(*)
LocalListenerAddress(*)
StandbyArchiveLocation(*)
AlternateLocation(*)
LogArchiveTrace(*)
LogArchiveFormat(*)
LatestLog(*)
TopWaitEvents(*)
(*) - Please check specific instance for the property value
Current status for "dv01aix":
SUCCESS
DGMGRL>
log_archive_dest_2 string service="(DESCRIPTION=(ADDRESS
_LIST=(ADDRESS=(PROTOCOL=TCP)(
HOST=*****-vip0)(PORT=1527))
)(CONNECT_DATA=(SERVICE_NAME=d
v00aix_XPT)(INSTANCE_NAME=dv00
aix1)(SERVER=dedicated)))",
LGWR ASYNC NOAFFIRM delay=0 O
PTIONAL max_failure=0 max_conn
ections=4 reopen=300 db_uniq
ue_name="dv00aix" register net
NAME TYPE VALUE
timeout=60 validfor=(online
logfile,primaryrole)
NAME TYPE VALUE
fal_client string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=*****
-vip0)(PORT=1527)))(CONNECT
DATA=(SERVICENAME=dv01aix_XP
T)(INSTANCE_NAME=dv01aix1)(SER
VER=dedicated)))
fal_server string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=*****
-vip0)(PORT=1527))(ADDRESS=
(PROTOCOL=TCP)(HOST=*****-vi
p0)(PORT=1527)))(CONNECT_DATA=
(SERVICE_NAME=dv00aix_XPT)(SER
VER=dedicated)))
db_recovery_file_dest string +SPARE1
db_recovery_file_dest_size big integer 100G
recovery_parallelism integer 0
fast_start_parallel_rollback string LOW
parallel_adaptive_multi_user boolean TRUE
parallel_automatic_tuning boolean FALSE
parallel_execution_message_size integer 2152
parallel_instance_group string
parallel_max_servers integer 8
parallel_min_percent integer 0
parallel_min_servers integer 0
parallel_server boolean TRUE
parallel_server_instances integer 2
parallel_threads_per_cpu integer 2
recovery_parallelism integer 0 -
Can not control / observe when no user logged in
Been fighting this for weeks. Searched the forum but found no relief.
Using ARD 3.2 we can control / observe from our office to several workstations both in our same building and in other offices around the country. On all but one we can control / observe regardless of whether or not a user is logged in. On those, when a user is not logged in, we see the workstations' login window. We can login, etc. On only one machine, which is running 10.4.11, we can control / observe ONLY when a user is logged into it. If no user is logged in we get an "unable to connect" from ARD. Call someone in that office, ask them to login, and immediately we can control / observe that workstation. We highly doubt a port forwarding / router / firewall issue since if it were, we suspect that we'd never be able to observe / control. It appears as though ARD ON THE WORKSTATION is getting disabled at user log out... BUT ONLY ON THIS ONE WORKSTATION! Any ideas, folks? Your help would be appreciated.
Thanks,
BBSilly me! This one workstation connects via wireless connection, only. We had set, "Disconnect from wireless networks when I log out" in the wireless network's connection settings. All is well now.
Thank you -
Dear all,
Please help me regarding this i am very much confused.....
I had couple of doubts in dataguard concepts.
1)When archive log is transferred from primary to standby ,
a.Whether DBWR will be in active state or not in standby server.To write the contents in the archived redo log files which came from the primary to the datafiles of the standby server.
b.I am using online redo logs in the standby server not standby redo logs , whether online redologs in the standby server will have any effect in shipping of redologs from the primary database,
c. In my standby database online redo logs state is changing between CLEARING AND CLEARING CURRENT.How standby server redologs will change it state,
Regards,
Vamsi.Hi Vamsi,
In a case you use standby redo logs on standby;
RFS process reads redo stream and writes to standby redo logs.
ARCH process on the standby archives standby redologs into archivedlogs.
MRP process reads standby redo logs or archived log (depending on configuration) into the buffer cache. (shortly!)
DBWR writes modified blocks from buffer cache to disk.
You cannot say "I am using online redo logs in the standby server not standby redo logs" You can choose using or not using SRLs. If you don't use SRL on the standby, redo stream will be directly written to archived logs. Online redologs are out of this scope.
Online redo logs are not used in a physical standby database. They exist in order to be used in a case of opening the standby database read-write (failover/snapshot standby). Here what documentation says:
Online redo logs
Every instance of an Oracle primary database and logical standby database has an associated online redo log to protect the database in case of an instance failure. Physical standby databases do not have an associated online redo log, because physical standby databases are never opened for read/write I/O; changes are not made to the database and redo data is not generated.
+...+
Create an Online Redo Log on the Standby Database
Although this step is optional, Oracle recommends that an online redo log be created when a standby database is created. By following this best practice, a standby database will be ready to quickly transition to the primary database role.
+...+ -
Oracle Streams - Dataguard Configuration
Dataguard<------Streams<----Production------> Dataguard
I'm planning to implement a 4-way System where My Production Database with its own Physical Standby will be streaming(Streams database) to A reporting Database with its own Physical Standby.So,Effectively My production database,Especially it's redo logs will be put under severe load.I would like get some light on the feasibility of such a Setup.What parameters can i Take care of so as to make it a profitable High Availability-High Preformance System?
Any suggestions and advice will be highly appreciated..Remember that Streams check the source DB name of the LCR. Thus the db_name of each standby must be the same as the of the open DB of the remote DB will reject the LCR of the standby when it is activated.
Also streams, dataguard and crash don't fit so well in respect of streams consistency. At the crach time, some transaction will be lost that would have already been sent by streams, since streams react beneath the second. Thus when you activate the dataguard with its loss of some data, you are going to miss some source transaction, that would have already been replicated. You may end with errors on target site, either being dup val on transaction or OLD value in target do not match new value in LCR.
You can't avoid 100% this but you can decrease its extend. Use as method the 'LGW asynct' as dataguard destination.
LOG_ARCHIVE_DEST_2='SERVICE=boston LGWR ASYNC'
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/log_transport.htm#i1265762
This requires to create the standby redo logs on the dataguard DB (and also on the source DB, since it may becomes itself the standby) so that LGWR updates the remote redo as soon as it can ('async' otherwise 'sync' means that the commit on source is done AFTER the commit into the dataguard and you don't want that).
From my own observation the 'LGWR async nowait' lag usually under 1 sec behind production, which is very good. -
Few errror/doubts in Primary and Standby server - Need Help
Hi All,
I am having below doubts/errors. I need help to solve all the below questions.
I configured Dataguard successfully. Now the sync is upto date using the below parameters (using 11g):
at primary:
log_archive_dest_1=
log_archive_dest_2='SERVICE=standby.123 arch'
standby_file_management=auto
at sandby:
log_archive_dest_1=
standby_file_management=auto
Still i face below messages in the alertliog. Can anybody clearly explain me all the points.
Primary:
ORA-1652: unable to extend temp segment by 640 in tablespace NEWTEMP
I get this error when my archvie destination got filled up, later we released the enough space, the archived are generating. Still i see this message once in between. Need to solve this.
Primary:
Checkpoint not complete ( i see this message very often, want to get rid of this)
standby:
kcrrvslf: active RFS archival for log thread 1 sequence (sometimes i see this KCRRVSLF)
standby:
check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that is sufficiently large enough to maintain afequate log switch information to resolve archivelog gaps. (also get this message in between the alertlog file in standby)
Standby:
FAL[client]: Error fetching gap sequence, no FAL server specified (this is very often message. How to remove this, what needs to be added. Do i need to add the below parameters)
FAL_CLIENT
FAL_SERVER
Thanks in advance.
Pas Moh
[email protected]Pas Moh wrote:
Hi All,
I am having below doubts/errors. I need help to solve all the below questions.
I configured Dataguard successfully. Now the sync is upto date using the below parameters (using 11g):
at primary:
log_archive_dest_1=
log_archive_dest_2='SERVICE=standby.123 arch'
standby_file_management=auto
at sandby:
log_archive_dest_1=
standby_file_management=auto
Still i face below messages in the alertliog. Can anybody clearly explain me all the points.
Primary:
ORA-1652: unable to extend temp segment by 640 in tablespace NEWTEMP
I get this error when my archvie destination got filled up, later we released the enough space, the archived are generating. Still i see this message once in between. Need to solve this.This error has absolutely nothing to do with the handling of archive logs, the status of archivelog destination, or primary/standby. Any relation you thought you saw was pure coincidence.
>
>
Primary:
Checkpoint not complete ( i see this message very often, want to get rid of this)
Here is the very first hit I got when I googled "oracle checkpoint not complete". Tom says it better than I would have.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:69012348056
standby:
kcrrvslf: active RFS archival for log thread 1 sequence (sometimes i see this KCRRVSLF)
A quick google of that one, and it looks like it is not even an error, but rather simply an informative
>
standby:
check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that is sufficiently large enough to maintain afequate log switch information to resolve archivelog gaps. (also get this message in between the alertlog file in standby)
In that case I would check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that is sufficiently large enough to maintain adequate log switch information to resolve archivelog gaps.
How big is that? Well, at least bigger than it is now. Beyond that, it would have to be "large enough to maintain adequate log switch information to resolve archivelog gaps" Just play with it until you get the result you want.
>
Standby:
FAL[client]: Error fetching gap sequence, no FAL server specified (this is very often message. How to remove this, what needs to be added. Do i need to add the below parameters)
FAL_CLIENT
FAL_SERVER
Thanks in advance.
Pas Moh
[email protected] -
Upgrade of database in Dataguard Configuration
Hi,
I have few doubts regarding upgrading of database in in a dataguard configuration. Could someone please help me out.
- How does upgrade happen in dataguard configuration?
- Is that we have to install only different OH in both? And once the catupgrade script is run on primary, it will automatically upgrade standby as well?
- Or is that we have to upgrade both separately? i.e, standby first and then primary or vice versa
- Can we reduce downtime by breaking the dataguard config. Do a switchover and make secondary as primary and upgrade primary first?
And once the upgrade is completed in primary, bring it up and later upgrade the standby. And later once the upgrade is completed on standby, synch both primary and standby.
Please share your ideas and thoughts!
Thanks!First of all, -steps may differ regarding the upgrade versions but- my post with the following link would help you clarify the concept.
http://emrebaransel.blogspot.com/2009/02/10204-upgrade-with-dataguard.html
user1982050 wrote:
Hi,
I have few doubts regarding upgrading of database in in a dataguard configuration. Could someone please help me out.
- How does upgrade happen in dataguard configuration?First you patch the Oracle binaries on both primary and standby. Then open dataguard services and upgrade the primary database, standby will update itself already. -
Active Dataguard switchover puts new standby in real time query
Hi Gurus,
If using Active Dataguard ,after swicthover/failover using dg broker and observer does sthe new standby will be put in real time query mode(ADG) or manually have to open the db in read only mode.
Please let me know.
ThanksYes it does:
[uhesse]$ dgmgrl sys/oracle@prima
DGMGRL for Linux: Version 11.2.0.1.0 - Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> show configuration
Configuration - myconf
Protection Mode: MaxAvailability
Databases:
prima - Primary database
logst - Logical standby database
physt - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL> show database physt
Database - physt
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: ON
Instance(s):
physt
Database Status:
SUCCESS
DGMGRL> switchover to physt;
Performing switchover NOW, please wait...
New primary database "physt" is opening...
Operation requires shutdown of instance "prima" on database "prima"
Shutting down instance "prima"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "prima" on database "prima"
Starting instance "prima"...
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is "physt"
DGMGRL> show configuration
Configuration - myconf
Protection Mode: MaxAvailability
Databases:
physt - Primary database
prima - Physical standby database
logst - Logical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL> show database prima
Database - prima
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: ON
Instance(s):
prima
Database Status:
SUCCESSKind regards
Uwe Hesse
http://uhesse.wordpress.com
Maybe you are looking for
-
External hard drive connected to Time Capsule for iTunes.
I have copied my iTunes library to an external hard drive and connected the hard drive to my time capsule. I have an iMac and a MacBook and want to see the same iTunes content on each. I want to use the iMac as the main place to add iTunes content an
-
JBL Home Theater Mod# AEH50
Got a stupid question- like to get some info before I actually purchase. What I'd like to know is if I would need an amplifier hooked up between some JBL AEH50 surround sound speakers and my TV, or can I hook straight to audio outputson the TV. The
-
Ipod does not play music. Instead of playing the song, it just lists the title (like when a song is playing) and then moves to the next song without playing the song. It's as if it automatically forwards to the next song (song titles displays for eve
-
Product category comes blank IN BID INVITATION process of SRM
Hi Gurus, We are using the SRM Ssystem to process BID invitation.In this it uses the R3MMEXTRACT to get the product catalog information.The Information is fetched from R/3 using the RFC BBP_CATEGORY_GET_GUID. The data which is fetched from R/3 is
-
System Landscape Availability Application
Hi, I am trying to create an application which would display the System Landscape Availability. Like when the portal was restarted, till what time it was available, when the back up portal was available, etc. Where I can find such System information?