Memory target advisory in oracle RAC
Hi,
We work with oracle 11gR2 RAC.
from gv$parameter we are :
INST_ID
NAME
DISPLAY_VALUE
1
memory_target
3600M
2
memory_target
3600M
I want to verify values for memory, but I don't find nothing in gv$memory_target_advice, when I check dba_hist_memory_target_advice I just find snapshot for 2nd node
Why gv$memory_target_advice is empty, and no statistic for node 1 in dba_hist_memory_target_advice ?
Any one have this problem?
Best regards.
hi,
What is the output of following query?
select inst_id,value from gv$parameter where name='db_cache_advice';
Salman
Similar Messages
-
The danger of memory target in Oracle 11g - request for discussion.
Hello, everyone.
This is not a question, but kind of request for discussion.
I believe that many of you heard something about automatic memory management in Oracle 11g.
The concept is that Oracle manages the target size of SGA and PGA. Yes, believe it or not, all we have to do is just to tell Oracle how much memory it can use.
But I have a big concern on this. The optimizer takes the PGA size into consideration when calculating the cost of sort-related operations.
So what would happen when Oracle dynamically changes the target size of PGA? Following is a simple demonstration of my concern.
UKJA@ukja116> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
-- Configuration
*.memory_target=350m
*.memory_max_target=350m
create table t1(c1 int, c2 char(100));
create table t2(c1 int, c2 char(100));
insert into t1 select level, level from dual connect by level <= 10000;
insert into t2 select level, level from dual connect by level <= 10000;
-- First 10053 trace
alter session set events '10053 trace name context forever, level 1';
select /*+ use_hash(t1 t2) */ count(*)
from t1, t2
where t1.c1 = t2.c1 and t1.c2 = t2.c2
alter session set events '10053 trace name context off';
-- Do aggressive hard parse to make Oracle dynamically change the size of memory segments.
declare
pat1 varchar2(1000);
pat2 varchar2(1000);
va number;
vc sys_refcursor;
vs varchar2(1000);
begin
select ksppstvl into pat1
from sys.xm$ksppi i, sys.xm$ksppcv v -- views for x$ table
where i.indx = v.indx
and i.ksppinm = '__pga_aggregate_target';
for idx in 1 .. 10000000 loop
execute immediate 'select count(*) from t1 where rownum = ' || (idx+1)
into va;
if mod(idx, 1000) = 0 then
sys.dbms_system.ksdwrt(2, idx || 'th execution');
select ksppstvl into pat2
from sys.xm$ksppi i, sys.xm$ksppcv v -- views for x$ table
where i.indx = v.indx
and i.ksppinm = '__pga_aggregate_target';
if pat1 <> pat2 then
sys.dbms_system.ksdwrt(2, 'yep, I got it!');
exit;
end if;
end if;
end loop;
end;
-- As to alert log file,
25000th execution
26000th execution
27000th execution
28000th execution
29000th execution
30000th execution
yep, I got it! <-- the pga target changed with 30000th hard parse
-- Second 10053 trace for same query
alter session set events '10053 trace name context forever, level 1';
select /*+ use_hash(t1 t2) */ count(*)
from t1, t2
where t1.c1 = t2.c1 and t1.c2 = t2.c2
alter session set events '10053 trace name context off';With above test case, I found that
1. Oracle invalidates the query when internal pga aggregate size changes, which is quite natural.
2. With changed pga aggregate size, Oracle recalculates the cost. These are excerpts from the both of the 10053 trace files.
-- First 10053 trace file
PARAMETERS USED BY THE OPTIMIZER
PARAMETERS WITH ALTERED VALUES
Compilation Environment Dump
_smm_max_size = 11468 KB
_smm_px_max_size = 28672 KB
optimizer_use_sql_plan_baselines = false
optimizer_use_invisible_indexes = true
-- Second 10053 trace file
PARAMETERS USED BY THE OPTIMIZER
PARAMETERS WITH ALTERED VALUES
Compilation Environment Dump
_smm_max_size = 13107 KB
_smm_px_max_size = 32768 KB
optimizer_use_sql_plan_baselines = false
optimizer_use_invisible_indexes = true
Bug Fix Control Environment10053 trace file clearly says that Oracle recalculates the cost of the query with the change of internal pga aggregate target size. So, there is a great danger of unexpected plan change while Oracle dynamically controls the memory segments.
I believe that this is a desinged behavior, but the negative side effect is not negligible.
I just like to hear your opinions on this behavior.
Do you think that this is acceptable? Or is this another great feature that nobody wants to use like automatic tuning advisor?
================================
Dion Cho - Oracle Performance Storyteller
http://dioncho.wordpress.com (english)
http://ukja.tistory.com (korean)
================================I made a slight modification with my test case to have mixed workloads of hard parse and logical reads.
*.memory_target=200m
*.memory_max_target=200m
create table t3(c1 int, c2 char(1000));
insert into t3 select level, level from dual connect by level <= 50000;
declare
pat1 varchar2(1000);
pat2 varchar2(1000);
va number;
begin
select ksppstvl into pat1
from sys.xm$ksppi i, sys.xm$ksppcv v
where i.indx = v.indx
and i.ksppinm = '__pga_aggregate_target';
for idx in 1 .. 1000000 loop
-- try many patterns here!
execute immediate 'select count(*) from t3 where 10 = mod('||idx||',10)+1' into va;
if mod(idx, 100) = 0 then
sys.dbms_system.ksdwrt(2, idx || 'th execution');
for p in (select ksppinm, ksppstvl
from sys.xm$ksppi i, sys.xm$ksppcv v
where i.indx = v.indx
and i.ksppinm in ('__shared_pool_size', '__db_cache_size', '__pga_aggregate_target')) loop
sys.dbms_system.ksdwrt(2, p.ksppinm || ' = ' || p.ksppstvl);
end loop;
select ksppstvl into pat2
from sys.xm$ksppi i, sys.xm$ksppcv v
where i.indx = v.indx
and i.ksppinm = '__pga_aggregate_target';
if pat1 <> pat2 then
sys.dbms_system.ksdwrt(2, 'yep, I got it! pat1=' || pat1 ||', pat2='||pat2);
exit;
end if;
end if;
end loop;
end;
/This test case showed expected and reasonable result, like following:
100th execution
__shared_pool_size = 92274688
__db_cache_size = 16777216
__pga_aggregate_target = 83886080
200th execution
__shared_pool_size = 92274688
__db_cache_size = 16777216
__pga_aggregate_target = 83886080
300th execution
__shared_pool_size = 88080384
__db_cache_size = 20971520
__pga_aggregate_target = 83886080
400th execution
__shared_pool_size = 92274688
__db_cache_size = 16777216
__pga_aggregate_target = 83886080
500th execution
__shared_pool_size = 88080384
__db_cache_size = 20971520
__pga_aggregate_target = 83886080
1100th execution
__shared_pool_size = 92274688
__db_cache_size = 20971520
__pga_aggregate_target = 83886080
1200th execution
__shared_pool_size = 92274688
__db_cache_size = 37748736
__pga_aggregate_target = 58720256
yep, I got it! pat1=83886080, pat2=58720256Oracle continued being bounced between shared pool and buffer cache size, and about 1200th execution Oracle suddenly stole some memory from PGA target area to increase db cache size.
(I'm still in dark age on this automatic memory target management of 11g. More research in need!)
I think that this is very clear and natural behavior. I just want to point out that this would result in unwanted catastrophe under special cases, especially with some logic holes and bugs.
================================
Dion Cho - Oracle Performance Storyteller
http://dioncho.wordpress.com (english)
http://ukja.tistory.com (korean)
================================ -
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? -
Hello All,
I am using Oracle 11gR2 on AIX 7.1.
My question is about memory_target parameter with RAC, what I usually do is to put this parameter equal to 40% of the RAMs on the database server in single instance database.
With Oracle RAC, should it be 40% of the summation of RAM on all nodes? for ex if I have 2 nodes with 40 GB RAM on each node, so i can put my memory_target= 40% of (40+40)= 32 G ?? is that correct or it will be 40 % of the RAM on 1 node?? is it by Instance or by database ?
How do i know if a parameter is at the database level or instance level?
Regards,NB wrote:
Hello All,
I am using Oracle 11gR2 on AIX 7.1.
My question is about memory_target parameter with RAC, what I usually do is to put this parameter equal to 40% of the RAMs on the database server in single instance database.
With Oracle RAC, should it be 40% of the summation of RAM on all nodes? for ex if I have 2 nodes with 40 GB RAM on each node, so i can put my memory_target= 40% of (40+40)= 32 G ?? is that correct or it will be 40 % of the RAM on 1 node?? is it by Instance or by database ?
How do i know if a parameter is at the database level or instance level?
Regards,Its _40 % of the RAM on 1 node_ recommended approach. Since Memory_target wil consume the memory of server, so rest 60% is available to OS to do his work. If you put 40% of (40+40) = 32 GB on each node then there is very little memory left for OS(you can see decrease in performance).
Its 2 node RAC, so each instance has its own set of parameter in pfile/spfile. So we can say its instance specific. Each node can have same of different values of memory_target parameter
Edited by: 909592 on Mar 7, 2012 7:04 PM -
Oracle Rac - Targetting clients to particular nodes?
We have a deployment case that wanted to find out best practices.
Currently there is a two node RAC setup.
We have an application that on one side -- is a high write, minor read component -- and another side which is mostly read and minor write. Each component uses multiple connections and have logical separations of what tables they are writing to.
The current proposed solution is to target the high write components to one node instance -- while distributing the other component, which does A LOT of reading and some writing, across both RAC instances.
The question is what is the best paradigm for this: Any documentation of when to target components to single instances versus letting RAC do it's own distribution/etc. There are different user accounts for the components that do the high volume writing versus the selecting/etc..
Thanks.Hi,
The question is what is the best paradigm for this: Any documentation of when to target components to single instances versus letting RAC do it's own distribution/etc. There are different user accounts for the components that do the high volume writing versus the selecting/etc..I'm assuming you're using version 10g or later. On Oracle RAC 9i you don't have this feature.
You can direct connections to nodes that have characteristics in common workload using Oracle Services.
To manage workloads or a group of applications, you can define services that you assign to a particular application or to a subset of an application's operations. You can also group work by type under services.
Oracle recommends that all users who share a service have the same service level requirements. You can define specific characteristics for services and each service can be a separate unit of work. There are many options that you can take advantage of when using services. Although you do not have to implement these options, using them helps optimize application performance.
When you define a service, you define which instances normally support that service. These are known as the PREFERRED instances. You can also define other instances to support a service if the service's preferred instance fails. These are known as AVAILABLE instances.
Services are integrated with Resource Manager, which enables you to restrict the resources that are used by the users who connect with a service in an instance. The Resource Manager enables you to map a consumer group to a service so that users who connect with the service are members of the specified consumer group.
Using a Service (11.1 or later) when you execute a SQL statement in parallel, the parallel processes only run on the instances that offer the service with which you originally connected to the database. This is the default behavior. This does not affect other parallel operations such as parallel recovery or the processing of GV$ queries. To override this behavior, set a value for the PARALLEL_INSTANCE_GROUP initialization parameter.
You'll have much more concept to learn how it works than to know how to configure.
Understanding how it works is essential to configure the services properly.
http://download.oracle.com/docs/cd/B28359_01/rac.111/b28254/hafeats.htm#CHDGEBED
http://www.ardentperf.com/pub/schneider-services.pdf
Any questions just ask.
Regards,
Levi Pereira -
How to connect to Oracle RAC via SCAN
I just finished Oracle RAC install but I cannot connect via the SCAN name from a remote client - only via the VIP:
$ sqlplus system/[email protected]:1521/racdb.development.info
SQL*Plus: Release 11.2.0.3.0 Production on Fri May 25 15:14:13 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12545: Connect failed because target host or object does not exist
This is Oracle 11r2 on Unbreakable Linux 6.2. The sqlplus above is from Instant Client 11.2. Further info is:
$ ./srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node racnode1
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node racnode2
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node racnode2
./srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node racnode1
$ nslookup rac-scan
Server: 172.20.0.15
Address: 172.20.0.15#53
Name: rac-scan.xxx.local
Address: 172.20.0.213
Name: rac-scan.xxx.local
Address: 172.20.0.214
Name: rac-scan.xxx.local
Address: 172.20.0.210
on racnode1:
$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:1A:A0:96:A6:B2
inet addr:172.20.0.221 Bcast:172.20.0.255 Mask:255.255.255.0 <--- public ip
inet6 addr: fe80::21a:a0ff:fe96:a6b2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9458999 errors:0 dropped:0 overruns:0 frame:0
TX packets:14852588 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4001261935 (3.7 GiB) TX bytes:1196090235 (1.1 GiB)
Interrupt:20 Memory:fdfc0000-fdfe0000
eth0:1 Link encap:Ethernet HWaddr 00:1A:A0:96:A6:B2
inet addr:172.20.0.212 Bcast:172.20.0.255 Mask:255.255.255.0 <---- VIP
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fdfc0000-fdfe0000
eth0:2 Link encap:Ethernet HWaddr 00:1A:A0:96:A6:B2
inet addr:172.20.0.214 Bcast:172.20.0.255 Mask:255.255.255.0 <---- one of the SCAN ips
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fdfc0000-fdfe0000
eth1 Link encap:Ethernet HWaddr 90:E2:BA:0F:F9:8F
inet addr:10.0.0.2 Bcast:10.0.0.255 Mask:255.255.255.0 <---- private interconnect
inet6 addr: fe80::92e2:baff:fe0f:f98f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:26461881 errors:4 dropped:0 overruns:0 frame:2
TX packets:33628826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4053295644 (3.7 GiB) TX bytes:695537051 (663.3 MiB)
on racnode2
eth0 Link encap:Ethernet HWaddr 00:1A:A0:96:A4:5B
inet addr:172.20.0.174 Bcast:172.20.0.255 Mask:255.255.255.0 <--- public IP
inet6 addr: fe80::21a:a0ff:fe96:a45b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3233473 errors:0 dropped:0 overruns:0 frame:0
TX packets:1766459 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:41109717 (39.2 MiB) TX bytes:179509273 (171.1 MiB)
Interrupt:20 Memory:fdfc0000-fdfe0000
eth0:1 Link encap:Ethernet HWaddr 00:1A:A0:96:A4:5B
inet addr:172.20.0.211 Bcast:172.20.0.255 Mask:255.255.255.0 <--- VIP
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fdfc0000-fdfe0000
eth0:2 Link encap:Ethernet HWaddr 00:1A:A0:96:A4:5B
inet addr:172.20.0.210 Bcast:172.20.0.255 Mask:255.255.255.0 <--- another SCAN IP
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fdfc0000-fdfe0000
eth0:3 Link encap:Ethernet HWaddr 00:1A:A0:96:A4:5B
inet addr:172.20.0.213 Bcast:172.20.0.255 Mask:255.255.255.0 <--- another SCAN IP
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:20 Memory:fdfc0000-fdfe0000
$ ./lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2012 15:12:35
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
Alias LISTENER_SCAN1
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 25-MAY-2012 14:28:11
Uptime 0 days 0 hr. 44 min. 23 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /home/oracle/app/oracle/diag/tnslsnr/racnode1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.20.0.214)(PORT=1521)))
Services Summary...
Service "racdb.development.info" has 2 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
Service "racdbXDB.development.info" has 2 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Instance "racdb2", status READY, has 1 handler(s) for this service...
The command completed successfully
Any ideas?How does SCAN work?
“When a client submits a request, the SCAN listener listening on a SCAN IP address and the SCAN port is contracted on a client’s behalf. Because all services on the cluster are registered with the SCAN listener, the SCAN listener replies with the address of the local listener (Using SCAN the connection is initiated using the SCANIP, but is established using the VIP) on the least-loaded node (Each scan listener keeps updated cluster load statistics) where the service is currently being offered. Finally, the client establishes connection to the service through the listener using VIP on the node where service is offered.All of these actions take place transparently to the client without any explicit configuration required in the client.”
So, to SCAN Works you must aware:
Server (cluster)
-The service must be registered on Local/Scan ListenerI believe I've done this now but see below.
Database (rac)
-You must use remote_listener parameterThe remote listener parameter I have is:
SQL> show parameter remote listener
NAME TYPE VALUE
remote_dependencies_mode string TIMESTAMP
remote_listener string rac-scan:1521
remote_login_passwordfile string EXCLUSIVE
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE
result_cache_remote_expiration integer 0
Cient
-Must resolve all SCAN Names and VIP Names (check with nslookup)I'd made a mistake there. My VIP names were not available from DNS.
-Must access port of Listener
Try it:
http://levipereira.wordpress.com/2011/05/03/configuring-client-to-use-scan-11-2-0/
Thanks, that document was useful however I don't think I've got it completely right as yet as I have no listener_scan2.
$ olsnodes -i -s -n
racnode1 1 racnode1-vip Active
racnode2 2 racnode2-vip Active
srvctl config vip -n racnode1
VIP exists.:racnode1
VIP exists.: /racnode1-vip/172.20.0.212/255.255.255.0/eth0
srvctl config vip -n racnode2
VIP exists.:racnode2
VIP exists.: /racnode2-vip/172.20.0.211/255.255.255.0/eth0
srvctl config scan
SCAN name: rac-scan.xxx.local, Network: 1/172.20.0.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /172.20.0.214/172.20.0.214
SCAN VIP name: scan2, IP: /rac-scan.xxx.local/172.20.0.210
SCAN VIP name: scan3, IP: /172.20.0.213/172.20.0.213
SQL> select INST_ID, NAME, VALUE
2 from gv$parameter
3 where name like '%_listener%';
INST_ID
NAME
VALUE
1
local_listener
(address=(protocol=tcp)(port=1521)(host=racnode1-vip.xxx.local))
1
remote_listener
rac-scan:1521
INST_ID
NAME
VALUE
2
local_listener
(address=(protocol=tcp)(port=1521)(host=racnode1-vip.xxx.local))
2
remote_listener
INST_ID
NAME
VALUE
rac-scan:1521
racnode1
$ lsnrctl service listener_scan1
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAY-2012 13:36:10
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
Services Summary...
Service "racdb.development.info" has 2 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(address=(protocol=tcp)(port=1521)(host=racnode1-vip.xxx.local))
Instance "racdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(address=(protocol=tcp)(port=1521)(host=racnode2-vip.xxx.local))
Service "racdbXDB.development.info" has 2 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: racnode1.xxx.local, pid: 3651>
(ADDRESS=(PROTOCOL=tcp)(HOST=racnode1.xxx.local)(PORT=62553))
Instance "racdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: racnode2.xxx.local, pid: 6501>
(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2.xxx.local)(PORT=10619))
The command completed successfully
$ lsnrctl service
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAY-2012 13:38:02
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "racdb.development.info" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "racdbXDB.development.info" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: racnode1.xxx.local, pid: 3651>
(ADDRESS=(PROTOCOL=tcp)(HOST=racnode1.xxx.local)(PORT=62553))
The command completed successfully
racnode2
lsnrctl service listener_scan2
none of listener_scan1, 2 or 3 say anything other than TNS-01101: Could not find service name listener_scanN
lsnrctl service
$ lsnrctl service
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-MAY-2012 13:19:50
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "racdb.development.info" has 1 instance(s).
Instance "racdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:14 refused:0 state:ready
LOCAL SERVER
Service "racdbXDB.development.info" has 1 instance(s).
Instance "racdb2", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: racnode2.xxx.local, pid: 6501>
(ADDRESS=(PROTOCOL=tcp)(HOST=racnode2.xxx.local)(PORT=10619))
The command completed successfully
UPDATE:
$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
There is a period of time when I shutdown one node where I cannot connect and get "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"
Edited by: MartinJEvans on May 28, 2012 2:02 PM -
How to install Oracle RAC using 11gR2 on Win 7 32 bit from scratch?
Hiii,
I am a fresher and I have a win 7 system 32 bit with oracle 11gR2.
I want to install RAC using two or more servers but I dont know too much about it.
I tried to search on google but all they are giving information in pieces(for win 7) or about Linux(Please tell me why its all Linux everywhere not windows).
Please let me know if there any site where I can find step by step installation from scratch.
What are basic requirements(/software if needed).
Thank you.Hi,
First of all forget about Windows!! Oracle is mainly designed for Linux systems. Oracle runs as real multi-process on Linux machines whereas on Windows it runs as a single process with multi-thread.
Memory usage - huge pages,single CPU run queue, dnfs, storage systems... etc. lots of concepts exists.
Besides Windows is one of the most poorly designed operating systems, you should use it only to watch cute kitten movies on youtube... Believe me, you wouldn't want to learn Oracle on Windows...
So, install virtualbox and then setup Oracle Enterprise Linux on it as a first step... By the way you have to deal with DNS server for release 11.X, RAC, you may start with 10g for now.
ORACLE-BASE has all the installation steps explained detailly, search for "oracle base rac install" on google.
I also explained on my blog, but it is a little bit advanced installation using ZFS storage simulator. DNS server installation is also explained: http://ilkertaysi.com/2013/11/11/oracle-rac-installation-with-zfs-storage/ -
RCA for Oracle RAC Performance Issue
Hi DBAs,
I have setup a 2 node Oracle RAC 10.2.0.3 on Linux 4.5 (64 bit) with 16 GB memory and 4 dual core CPUs each. The database is serving a web application but unfortunately the system is at its knees. The performance is terrible. The storage is a EMC SAN but ASM is not implemented with a fear to further degrade the performance or not to complicate the system further.
I am seeking the expert advises from some GURUs from this forums to formulate the action plan to do the root cause analysis to the system and database. Please advise me what tools I can use to gather the information about the Root Cause. AWR Report is not very helpful. The system stats with top, vmstat, iostat only show the high resource usage but difficult to find the reason. OEM has configured and very frequently report all kind of high wait events.
How I can use effectively find Network bottle necks (netstat command which need to be really helpful to understand).
How I can see the system I/O (iostats) which can provide me some useful information. I don't understand what sould be the baseline or optimal values to compare the I/O activities.
I am seeking help and advised to diagnose the issue. I also want to represent this issue as a case study.
Thanks
-Samar-First of all, RAC is mainly suited for OLTP applications.
Secondly, if your application is unscalable (it doesn't use bind variables and no SQL statements have been tuned and/or it has been ported from Sukkelserver 200<whatever>) running it against RAC will make things worse.
Thirdly: RAC uses a chatty Interconnect. If you didn't configure the Interconnect properly,and/or are using slow Network cards (1 Gb is mandatory), and/or you are not using a 9k MTU on your 1 Gb NIC, this again will make things worse.
You can't install RAC 'out of the box'. It won't perform! PERIOD.
Fourthly: you might suffer from your 'application' connecting and disconnecting for every individual SQL statement and/or commit every individual INSERT or UPDATE.
You need to address this.
Using ADDM and/or AWR is compulsory for analysing the problem, and/or having read Cary Millsaps book on Optimizing Oracle performance is compulsory.
You won't come anywhere without AWR and OS statistics will not provide any clue.
Because, paraphrasing William Jefferson Clinton, former president of the US of A:
It's the application, stupid.
99 out of 100 cases. Trust me. All developers I know currently are 100 percent clueless.
That said, if you can't be bothered to post the top 5 AWR events, and you aren't up to using AWR reports, maybe you should hire a consultant who can.
Regards,
Sybrand Bakker
Senior Oracle DBA -
Oracle RAC - Not getting performance(TPS) as we expect on insert/update
Hi All,
We got a problem while executing insert/update and delete queries with Oracle RAC system, we are not getting the TPS as we expected in Oracle RAC. The TPS of Oracle RAC (for insert/update and delete ) is less than as that of
single oracle system.
But while executing select queries, we are getting almost double TPS as that of Single Oracle System.
We have done server side and client side load balancing.
Can anyone knows to solve this strange behaviour? Shall we need to perform any other settings in ASM/ Oracle Nodes
for better performance on insert/update and delete queries.
The following is the Oracle RAC configuration
OS & Hardware :Windows 2008 R2 , Core 2 Du0 2.66GHz , 4 GB
Software : Oracle 11g 64 Bit R2 , Oracle Clusterware & ASM , Microsoft iSCSI initiator.
Storage Simulation : Xeon 4GB , 240 GB ,Win 2008 R2, Microsoft iSCSI Traget
Please help me to solve this. We are almost stuck with this situation.
Thanks
RoyLoad Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
DB time(s): 48.3 0.3 0.26 0.10
DB CPU(s): 0.1 0.0 0.00 0.00
Redo size: 523,787.9 3,158.4
Logical reads: 6,134.6 37.0
Block changes: 3,247.1 19.6
Physical reads: 3.5 0.0
Physical writes: 50.7 0.3
User calls: 497.6 3.0
Parses: 182.0 1.1
Hard parses: 0.1 0.0
W/A MB processed: 0.1 0.0
Logons: 0.1 0.0
Executes: 184.0 1.1
Rollbacks: 0.0 0.0
Transactions: 165.8
Instance Efficiency Indicators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 93.74 Redo NoWait %: 99.96
Buffer Hit %: 99.99 Optimal W/A Exec %: 100.00
Library Hit %: 100.19 Soft Parse %: 99.96
Execute to Parse %: 1.09 Latch Hit %: 99.63
Parse CPU to Parse Elapsd %: 16.44 % Non-Parse CPU: 84.62
Shared Pool Statistics Begin End
Memory Usage %: 75.89 77.67
% SQL with executions>1: 71.75 69.88
% Memory for SQL w/exec>1: 75.63 71.38 -
Oracle RAC Interconnect, PowerVM VLANs, and the Limit of 20
Hello,
Our company has a requirement to build a multitude of Oracle RAC clusters on AIX using Power VM on 770s and 795 hardware.
We presently have 802.1q trunking configured on our Virtual I/O Servers, and have currently consumed 12 of 20 allowed VLANs for a virtual ethernet adapter. We have read the Oracle RAC FAQ on Oracle Metalink and it seems to otherwise discourage the use of sharing these interconnect VLANs between different clusters. This puts us in a scalability bind; IBM limits VLANs to 20 and Oracle says there is a one-to-one relationship between VLANs and subnets and RAC clusters. We must assume we have a fixed number of network interfaces available and that we absolutely have to leverage virtualized network hardware in order to build these environments. "add more network adapters to VIO" isn't an acceptable solution for us.
Does anyone know if Oracle can afford any flexibility which would allow us to host multiple Oracle RAC interconnects on the same 802.1q trunk VLAN? We will independently guarantee the bandwidth, latency, and redundancy requirements are met for proper Oracle RAC performance, however we don't want a design "flaw" to cause us supportability issues in the future.
We'd like it very much if we could have a bunch of two-node clusters all sharing the same private interconnect. For example:
Cluster 1, node 1: 192.168.16.2 / 255.255.255.0 / VLAN 16
Cluster 1, node 2: 192.168.16.3 / 255.255.255.0 / VLAN 16
Cluster 2, node 1: 192.168.16.4 / 255.255.255.0 / VLAN 16
Cluster 2, node 2: 192.168.16.5 / 255.255.255.0 / VLAN 16
Cluster 3, node 1: 192.168.16.6 / 255.255.255.0 / VLAN 16
Cluster 3, node 2: 192.168.16.7 / 255.255.255.0 / VLAN 16
Cluster 4, node 1: 192.168.16.8 / 255.255.255.0 / VLAN 16
Cluster 4, node 2: 192.168.16.9 / 255.255.255.0 / VLAN 16
etc.
Whereas the concern is that Oracle Corp will only support us if we do this:
Cluster 1, node 1: 192.168.16.2 / 255.255.255.0 / VLAN 16
Cluster 1, node 2: 192.168.16.3 / 255.255.255.0 / VLAN 16
Cluster 2, node 1: 192.168.17.2 / 255.255.255.0 / VLAN 17
Cluster 2, node 2: 192.168.17.3 / 255.255.255.0 / VLAN 17
Cluster 3, node 1: 192.168.18.2 / 255.255.255.0 / VLAN 18
Cluster 3, node 2: 192.168.18.3 / 255.255.255.0 / VLAN 18
Cluster 4, node 1: 192.168.19.2 / 255.255.255.0 / VLAN 19
Cluster 4, node 2: 192.168.19.3 / 255.255.255.0 / VLAN 19
Which eats one VLAN per RAC cluster.Thank you for your answer!!
I think I roughly understand the argument behind a 2-node RAC and a 3-node or greater RAC. We, unfortunately, were provided with two physical pieces of hardware to virtualize to support production (and two more to support non-production) and as a result we really have no place to host a third RAC node without placing it within the same "failure domain" (I hate that term) as one of the other nodes.
My role is primarily as a system engineer, and, generally speaking, our main goals are eliminating single points of failure. We may be misusing 2-node RACs to eliminate single points of failure since it seems to violate the real intentions behind RAC, which is used more appropriately to scale wide to many nodes. Unfortunately, we've scaled out to only two nodes, and opted to scale these two nodes up, making them huge with many CPUs and lots of memory.
Other options, notably the active-passive failover cluster we have in HACMP or PowerHA on the AIX / IBM Power platform is unattractive as the standby node drives no resources yet must consume CPU and memory resources so that it is prepared for a failover of the primary node. We use HACMP / PowerHA with Oracle and it works nice, however Oracle RAC, even in a two-node configuration, drives load on both nodes unlike with an active-passive clustering technology.
All that aside, I am posing the question to both IBM, our Oracle DBAs (whom will ask Oracle Support). Typically the answers we get vary widely depending on the experience and skill level of the support personnel we get on both the Oracle and IBM sides... so on a suggestion from a colleague (Hi Kevin!) I posted here. I'm concerned that the answer from Oracle Support will unthinkingly be "you can't do that, my script says to tell you the absolute most rigid interpretation of the support document" while all the time the same document talks of the use of NFS and/or iSCSI storage eye roll
We have a massive deployment of Oracle EBS and honestly the interconnect doesn't even touch 100mbit speeds even though the configuration has been checked multiple times by Oracle and IBM and with the knowledge that Oracle EBS is supposed to heavily leverage RAC. I haven't met a single person who doesn't look at our environment and suggest jumbo frames. It's a joke at this point... comments like "OMG YOU DON'T HAVE JUMBO FRAMES" and/or "OMG YOU'RE NOT USING INFINIBAND WHATTA NOOB" are commonplace when new DBAs are hired. I maintain that the utilization numbers don't support this.
I can tell you that we have 8Gb fiber channel storage and 10Gb network connectivity. I would probably assume that there were a bottleneck in the storage infrastructure first. But alas, I digress.
Mainly I'm looking for a real-world answer to this question. Aside from violating every last recommendation and making oracle support folk gently weep at the suggestion, are there any issues with sharing interconnects between RAC environments that will prevent it's functionality and/or reduce it's stability?
We have rapid spanning tree configured, as far as I know, and our network folks have tuned the timers razor thin. We have Nexus 5k and Nexus 7k network infrastructure. The typical issues you'd fine with standard spanning tree really don't affect us because our network people are just that damn good. -
Getting error when try to backup oracle rac to another location
Hi there,
I am attempting to backup database to another location from a Oracle RAC database version 11gr2. Here is my script:
#!/bin/ksh
export ORACLE_SID=vvsms1
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
/u01/app/oracle/product/11.2.0/dbhome_1/bin/rman target sys/viviet@vvsms log /home/oracle/log_rman/vvsms.log append <<EOF
RUN {
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
ALLOCATE CHANNEL CHANNEL1 TYPE DISK FORMAT '/home/oracle/backup/vvsms/backup_%U';
BACKUP INCREMENTAL LEVEL 0 TAG 'incr_vvsms' DATABASE;
BACKUP ARCHIVELOG ALL;
DELETE OBSOLETE;
RELEASE CHANNEL CHANNEL1;
EXIT;
EOF
I write it into a .sh file and set crontab to run it. But when it run i get the error like these:
Starting backup at 22-OCT-12
channel CHANNEL1: starting incremental level 0 datafile backup set
channel CHANNEL1: specifying datafile(s) in backup set
input datafile file number=00002 name=+DISK2/vvsms/datafile/sysaux.289.794242439
input datafile file number=00006 name=+DISK2/vvsms/datafile/ts_service.dbf
input datafile file number=00007 name=+DISK2/vvsms/datafile/ts_viviet.dbf
input datafile file number=00008 name=+DISK2/vvsms/datafile/viviet.dbf
input datafile file number=00009 name=+DISK2/vvsms/datafile/ts_vivietct_primary.dbf
input datafile file number=00003 name=+DISK2/vvsms/datafile/undotbs1.290.794242445
input datafile file number=00001 name=+DISK2/vvsms/datafile/system.288.794242429
input datafile file number=00004 name=+DISK2/vvsms/datafile/undotbs2.292.794242453
input datafile file number=00005 name=+DISK2/vvsms/datafile/users.293.794242455
channel CHANNEL1: starting piece 1 at 22-OCT-12
released channel: CHANNEL1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on CHANNEL1 channel at 10/22/2012 01:50:16
ORA-19504: failed to create file "/home/oracle/backup/vvsms/backup_2anobqu5_1_1"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
I don't know what i'm wrong? The location is correct ("/home/oracle/backup/vvsms/).
Please suggest me some things about it. What do i need to do?
Thanks in advance!
P/s: Sorry for my bad English./u01/app/oracle/product/11.2.0/dbhome_1/bin/rman target sys/viviet@vvsms log /home/oracle/log_rman/vvsms.log appendThis line can be your problem.
As this database is a RAC and your are using a service with load balance "vvsms" and "/home/oracle/backup/vvsms" is not a shared location. RMAN is starting a session on Other node where "/home/oracle/backup/vvsms" does not exists.
Try change it :
/u01/app/oracle/product/11.2.0/dbhome_1/bin/rman target sys/viviet@vvsms log /home/oracle/log_rman/vvsms.log appendTo this (using Easy Connect Method):
/u01/app/oracle/product/11.2.0/dbhome_1/bin/rman target sys/viviet@localhost:1521/VVSMS log /home/oracle/log_rman/vvsms.log appendWhere:
localhost: your local node
VVSMS : is the service of database
Also check if "/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora" have configured the line "NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)"
P.S : When RMAN start a session it show where is logged, check on logs what instance RMAN was logged.
HTH,
Levi Pereira -
Oracle Rac 11.2.0.3 doubts
Hi experts,
Current system info:
server 1 with Redhat 6.5 and Orale ASM with SAP ECC 6 GRID 11.2.0.3 standalone installation
Target system info:
Server 1 and server 2 running RAC 11.2.0.3 with SAP ECC 6 and RedHat 6.5 GRID with cluster
We are trying to convert our current system to oracle RAC but have some doubts.
We are following "Configuration of SAP NetWeaver for Oracle Grid Infrastructure 11.2.0.2 and Oracle Real Application Clusters 11g Release 2: A Best Practices Guide" so:
On page 29 It says: "Prepare the storage location for storing the shared ORACLE_HOME directory in the cluster. The Oracle RDBMS software should be installed into an empty directory, accessible from all nodes in the cluster" Same thing for ORACLE_BASE for the RDBMS, SAP subdirectories (sapbackup, sapcheck, sapreorg, saptrace, oraarch etc.) and homedirectories for SAP users ora<SID> and <SID>adm to a shared filesystem.
1.-Can we just use NFS for sharing them? or what is the recommended software on REDHAT for doing it?
'cause on note 527843 it says:
You must store the following components in a shared file system (cluster, NFS, or ACFS) here it says we can, but down the note on section linux says:
RAC 11.2.0.3/4 (x86 & x86_64 only):
Oracle Clusterware 11.2.0.3/4 + ASM/ACFS 11.2.0.3/4 (Oracle Linux 5, Oracle Linux 6, RHEL 5, RHEL 6, SLES 10, SLES 11)
Oracle Clusterware 11.2.0.3/4 + NetApp NFS or
Oracle Clusterware 11.2.0.3/4 + EMC Celerra NFS
It does not mention just NFS.
2.-In our system test, we want to backup all oracle configuration files on file systems and then delete Oracle Grid to Install GRID with cluster option, then install RDBMS with rac option and then follow the guide, is that correct?
RegardsHi Ramon,
1.-Can we just use NFS for sharing them? or what is the recommended software on REDHAT for doing it?
'cause on note 527843 it says:
You must store the following components in a shared file system (cluster, NFS, or ACFS) here it says we can, but down the note on section linux says:
RAC 11.2.0.3/4 (x86 & x86_64 only):
Oracle Clusterware 11.2.0.3/4 + ASM/ACFS 11.2.0.3/4 (Oracle Linux 5, Oracle Linux 6, RHEL 5, RHEL 6, SLES 10, SLES 11)
Oracle Clusterware 11.2.0.3/4 + NetApp NFS or
Oracle Clusterware 11.2.0.3/4 + EMC Celerra NFS
It does not mention just NFS.
NFS mount as suggest in SAP documentation should work. The use of ACFS always requires a special Oracle Grid Infrastructure (GI) Patch Set Update (PSU). Oracle Support Note 1369107.1 contains details about which GI PSU is required when you use ACFS with a specific RHEL update, service pack from SLES or UEK version of Oracle.
2.-In our system test, we want to backup all oracle configuration files on file systems and then delete Oracle Grid to Install GRID with cluster option, then install RDBMS with rac option and then follow the guide, is that correct?
You may perform DB backup using backup tools and then scrap the existing Grid setup. Configure RAC and then restore the backup into the new configuraiton as per SAP guidelines under
Configuration of SAP NetWeaver for Oracle Grid Infrastructure 11.2 with Oracle Real Application Clusters 11g Release 2
Hope this helps.
Regards,
Deepak Kori -
Failover not happening the Oracle RAC 10g
Hi All,
I am new to RAC.
I have installed Oracle RAC 10g on Redhat Linux 4.0. Till yesterday failover was happening that is when i stopped one instance on node01 the vip of node01 was transferred to node02.This was shown using ifconfig -a but now that is now happening.Don't know as what has happened.Can you please help me out
Below information is given:
[oracle@node01 ~]$ crs_stat -t
Name Type Target State Host
ora.hitesh.db application ONLINE ONLINE node02
ora....h1.inst application ONLINE ONLINE node01
ora....h2.inst application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE node01
ora....01.lsnr application ONLINE ONLINE node01
ora.node01.gsd application ONLINE ONLINE node01
ora.node01.ons application ONLINE ONLINE node01
ora.node01.vip application ONLINE ONLINE node01
ora....SM2.asm application ONLINE ONLINE node02
ora....02.lsnr application ONLINE ONLINE node02
ora.node02.gsd application ONLINE ONLINE node02
ora.node02.ons application ONLINE ONLINE node02
ora.node02.vip application ONLINE ONLINE node02
Listner status on node01 is given:
[oracle@node01 ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 06-APR-2013 12:59:29
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
Alias LISTENER_NODE01
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 06-APR-2013 11:59:03
Uptime 0 days 1 hr. 0 min. 25 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /home/oracle/oracle/product/10.2.0/db_1/network/log/listener_node01.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.131)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "hitesh" has 2 instance(s).
Instance "hitesh1", status READY, has 2 handler(s) for this service...
Instance "hitesh2", status READY, has 1 handler(s) for this service...
Service "hiteshXDB" has 2 instance(s).
Instance "hitesh1", status READY, has 1 handler(s) for this service...
Instance "hitesh2", status READY, has 1 handler(s) for this service...
Service "hitesh_XPT" has 2 instance(s).
Instance "hitesh1", status READY, has 2 handler(s) for this service...
Instance "hitesh2", status READY, has 1 handler(s) for this service...
The command completed successfully
[root@node01 oracle]# crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[root@node01 oracle]# ps -ef | grep lmon
oracle 5741 1 0 12:07 ? 00:00:03 ora_lmon_hitesh1
root 22582 20805 0 13:01 pts/2 00:00:00 grep lmon
oracle 23643 1 0 11:58 ? 00:00:01 asm_lmon_+ASM1
Please let me know what information else is required
Edited by: user12924280 on Apr 6, 2013 12:36 AMSince you didn't say "thank you", I assumed my time was of no value to you.
However, I shall try again.
There is no relationship between instance failure and VIP failover. How can there be? What if you are running ten instances on each node, and one fails? Would you want the VIP to relocate? And I've already told you how to test it: kill the node. Just reboot it. -
Solaris x86 with Oracle RAC 10g Enterprise Edition Release 10.2.0.3.0
Hello,
Maybe you can help me (new on RMAN backup) in doing this.
I have configured a single Oracle 10g database to have backup with RMAN with following steps:
1. $ mkdir $ORACLE_BASE/rman_scripts
2. $ mkdir $ORACLE_BASE/logs
3. $ mkdir $ORACLE_BASE/tracking
4. $ mkdir $ORACLE_BASE/c_backup
5. $ sqlplus sys/<password> as sysdba
6. SQL> alter system set db_recovery_file_dest_size = 50G scope=both;
7. SQL> alter system set db_recovery_file_dest='${ ORACLE_BASE}/flash_recovery_ area' scope=both;
8. SQL> alter system set log_archive_dest_10='location= use_db_recovery_file_dest';
9. SQL> shutdown immediate
10. SQL> startup nomount
11. SQL> alter database archivelog;
12. SQL> alter database open;
13. SQL> alter database enable block change tracking using file '${ORACLE_BASE}/tracking/rman_ change_track.f';
14. $ rman target /
15. RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK
TO '/var/opt/oracle/flash_ recovery_area/ORCL/c_backup/% F';
16. RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
17. RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
18. RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
19. RMAN> exit
I need to configure incremental backup with RMAN on a two node Solaris x86 with Oracle RAC 10g Enterprise Edition Release 10.2.0.3.0 installation.
We also use ASM to store database files, and have Oracle software installed on separate file systems (two Oracle roots for Node1 and Node2).
I have following questions:
1) where to put Flash Recovery Area (FRA)?
I saw recommendations to put FRA on the ASM, is this the best way to do it?
2) Can I put FRA on another file system (not on the ASM) which is available only from Node1? This way I can save space on the ASM.
3) Is it possible/recommended to run RMAN from Node1 only?
Below is the script used to run RMAN on the normal Oracle database (without RAC) which I need to change :
=============================================================================================
2.0 Oracle backup script: /opt/app/oracle/rman_scripts/backup.sh
Use this for daily backups, possiblly as a cron job.
Once a week run this: /opt/app/oracle/rman_scripts/backup.sh FULL
All other days of the week: /opt/app/oracle/rman_scripts/backup.sh INCREMENTAL
Note: You may have to change ORACLE_SID, ORACLE_BASE below to match your database.
=============================================================================================
#!/usr/bin/ksh
ORACLE_SID=orcl
ORACLE_BASE=/opt/app/oracle
ORACLE_HOME=${ORACLE_BASE}/product/10.2.0/db_1
PATH=${ORACLE_HOME}/bin:/usr/bin
LOGDIR=${ORACLE_BASE}/logs
LOGFILE=${LOGDIR}/rman.log
if [[ $# < 1 ]]
then
echo "usage: backup.sh FULL|INCREMENTAL"
exit;
fi
BACKUPTYPE=${1}
full='FULL'
incremental='INCREMENTAL'
if [[ $BACKUPTYPE == $full ]]
then
$ORACLE_HOME/bin/rman target / nocatalog log ${LOGFILE} append << eof
run {
backup database;
SQL 'alter system archive log current';
backup archivelog all;
delete noprompt obsolete;
exit;
eof
echo ''
fi
if [[ $BACKUPTYPE == $incremental ]]
then
$ORACLE_HOME/bin/rman target / nocatalog log ${LOGFILE} append << eof
run {
backup database;
backup incremental level 1 database;
SQL 'alter system archive log current';
backup archivelog all;
delete noprompt obsolete;
exit;
eof
echo ''
fiHi [email protected],
Q1) where to put Flash Recovery Area (FRA)?
A1) With RAC: on the shared storage
I saw recommendations to put FRA on the ASM, is this the best way to do it?
If you want your backups to be available for both nodes you have to use shared storage or tape using an mml library.
So if you want to use the FRA for rman backups and the database is on ASM just make ASM the standard for the FRA as well.
Q2) Can I put FRA on another file system (not on the ASM) which is available only from Node1? This way I can save space on the ASM.
A2) Than you cannot recover in case Node1 is down. Best would be to send your storage admin to a training course so he can manage the clustered raw devices needed for ASM.
Q3) Is it possible/recommended to run RMAN from Node1 only?
A3) No see A2.
Regards,
Tycho -
Problem when I extend an oracle rac 10g on new node
Hi everyone
I need to extend an oracle RAC but i have problems when I add a new node. My actual enviroment is:
1) Oracle Grid Infraestructure 11gR2 - 11.2.0.3 (Upgraded from Clusterware 10gR2 + ASM 10gR2)
2) Oracle Rac Database - 10.2.0.5
(all on one only node)
The first problem was when I executed the script "root.sh" on the new node because this script called the old Clusterware home (/oracle/product/10.2.0/crshome). I edited the file and I changed this path for /oracle/gridbase/product/11.2.0/gridhome (current home for GI). Finally, I execute the script.
Now, I tried to extend the rac through of DBCA, but when, I choose the new node and I clic on "next" button then appears the following error:
"The nodes "[rstatbdbpm02]" are not part of the cluster. Make sure clusterware is active on these nodes before proceeding"
However, when I execute the "crsctl" command to view the status of cluster the result is correct:
[oracle@rstatbdbpm01] /home/oracle > crsctl status res -t
NAME TARGET STATE SERVER STATE_DETAILS
Local Resources
ora.DATA.dg
ONLINE ONLINE rstatbdbpm01
ONLINE ONLINE rstatbdbpm02
ora.LISTENER.lsnr
ONLINE ONLINE rstatbdbpm01
ONLINE ONLINE rstatbdbpm02
ora.asm
ONLINE ONLINE rstatbdbpm01 Started
ONLINE ONLINE rstatbdbpm02 Started
ora.gsd
OFFLINE OFFLINE rstatbdbpm01
OFFLINE OFFLINE rstatbdbpm02
ora.net1.network
ONLINE ONLINE rstatbdbpm01
ONLINE ONLINE rstatbdbpm02
ora.ons
ONLINE ONLINE rstatbdbpm01
ONLINE ONLINE rstatbdbpm02
ora.registry.acfs
ONLINE ONLINE rstatbdbpm01
ONLINE ONLINE rstatbdbpm02
Cluster Resources
ora.BDBPM.BDBPM1.inst
1 ONLINE ONLINE rstatbdbpm01
ora.BDBPM.BPMVEH.BDBPM1.srv
1 ONLINE ONLINE rstatbdbpm01
ora.BDBPM.BPMVEH.cs
1 ONLINE ONLINE rstatbdbpm01
ora.BDBPM.db
1 ONLINE ONLINE rstatbdbpm01
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rstatbdbpm02
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rstatbdbpm02
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rstatbdbpm01
ora.cvu
1 ONLINE ONLINE rstatbdbpm01
ora.oc4j
1 ONLINE ONLINE rstatbdbpm01
ora.rstatbdbpm01.vip
1 ONLINE ONLINE rstatbdbpm01
ora.rstatbdbpm02.vip
1 ONLINE ONLINE rstatbdbpm02
ora.scan1.vip
1 ONLINE ONLINE rstatbdbpm02
ora.scan2.vip
1 ONLINE ONLINE rstatbdbpm02
ora.scan3.vip
1 ONLINE ONLINE rstatbdbpm01
[oracle@rstatbdbpm01] /home/oracle >
Please, Any idea with that problem?
Thanks,
LuisHi,
Please check dbca trace logs for further checks, it will give an idea what command is being run to check status of cluster.
Generally first checks should be on inventory for rdbms home, grid home and making sure no ORACLE related parameter is set in environment.
Regards,
Sharma
Maybe you are looking for
-
Ipad locked and can't connect to itune?
i just bought my ipad2 (used and just received it. i didn't have time to sync it with any other computer), and i put a password on it, but 5 min later i couldn't remember it. i tried several passwords but they were wrong. now the ipad is locked. so
-
How to ignore a recordset in receiver file adapter
Hi, all. I am trying to get PI to write a fixed length file via the reciever file adapter. Here is a test data structure I put together: In the output file, I want the file adapter to ignore the recordset PAYPERIOD and field PERIOD. Only fields in DA
-
APEX database sizing methods and spreadsheets
APEX database sizing methods and spreadsheets
-
OCI PARAMETERS IN CCM2.0
Hi All, We are on SRM 4.0 and is using CCM 2.0 for catalogs. Please let me know where do we have the OCI parameter(field names) with the SRM fields unlike we do it in SRM MDM 3.0 Appreciate your help pls. Thanks, Murli
-
Can't send files with OS X 10.9 Messages.app
Hi, I upgraded from Lion to ML, and I was using Messages BETA in Lion before the update. Back in 10.7, I was able to send files (pictures mostly) with Messages to any other iMessage available contact. After the update to Mountain Lion, I can't send f