- Dizayn
- Primary Database' deki Adımlar
- StanbBY Database' deki Adımlar
- Monitoring
- Data Guard Broker
- Gap Resulotion
- Switch
- Protection modes
- Kapatıp Açma
- Notlar Karsilasilan sorunlar ve Cozumleri
Bu kurulum hem sun solaris 10 hem de OEL (Oracle Linux Server release 6.4) üzerine oracle 11.2.0.2 binary leriyle gerçekleştirildi. Makalede solarisi baz almaya çalıştım ama linux tarafından da eklemeler oldu. Kuruluma geçmeden önce tüm makaleyi okumanızı tavsiye ederim. Eğer single instance tan single instance a data guard ve RAC kurulumları yaptı iseniz adımlar daha kolay gelecektir. Eksik ya da yanlış olan yerleri bildirirseniz sevinirim.
PRIMARY |
STANDBY |
|
Hostname/s |
dbk01, dbk02 | stddbk |
Database Name |
mx |
mx |
Database Unique Name |
mx |
stdmx |
Net Service Name |
mx.sysdba.org |
stdmx.sysdba.org |
Clusterware |
11g R2 Grid Infrastructure (11.2.0.2) |
11g R2 Grid Infrastructure (11.2.0.2) |
Cluster Nodes |
node1, node2 (2-node RAC) |
Single instance |
SCAN |
mx-scan |
- |
SCAN listener Host/port |
SCAN VIPs (port 1521) |
|
DB Instances |
mx1, mx2 | stdmx |
DB STORAGE |
ASM | ASM |
File Management |
||
ASM diskgroup for DB files |
DATA | DATA |
ASM diskgroup for recovery files |
FRA | FRA |
GRID_HOME |
/u01/11.2.0/grid | /u01/11.2.0/grid |
ORACLE_HOME |
/u01/app/oracle/product/11.2.0/db_1 | /u01/app/oracle/product/11.2.0/db_1 |
OS |
SUN 10u10 | SUN 10u10 |
RDBMS Version |
11.2.0.2 | 11.2.0.2 |
Grid Version |
11.2.0.2 | 11.2.0.2 |
- Standby Server (Grid Inf., stand alone server, kurulur. Asmca ile DATA ve FRA disk gruplari oluşturulur.)
- RDBMS software only olarak kurulur. (database oluşturulmaz)
- Primary de redologlarin DATA ve FRA' da olmak üzere her grubun 2 üyesi oldugu kontol edilir yok ise eklenir.
Kurulumda kullanılan .bash_profile/.profile, listener.ora, tnsnames.ora ve başlangıç parametre (pfile) dosyalarını linkinden indirebilirsiniz.
oracle ve grid kullanıcılarının hangi gruplara dahil edildiği önemli maalesef guide larda yanlışlık ya da bug dan kaynaklı sorunlar olabiliyor. Bu kurulumda grup üyelikleri aşağıdaki gibiydi.
asmadmin::102:grid
asmdba::103:grid,oracle
asmoper::104:grid
col member format a70
select * from v$logfile;
select f.member,l.bytes/1024/1024 as "Size in MB" from v$log l,v$logfile f where l.group#=f.group#;
Yararlanilan kaynaklar :
http://tahiti.oracle.com
http://asanga-pradeep.blogspot.com/2010/11/rac-to-single-instance-physical-standby.html
http://easyoradba.com/2012/11/20/rac-to-single-instance-dataguard-oracle-11gr2-physical-standby/
http://www.cozumpark.com/blogs/oracle/archive/2011/02/26/oracle-11g-r2-11-2-0-2-rac-mimarisinde-data-guard-kurulumu-ve-y-netimi-d-nyada-lk-ve-tek.aspx
http://dpmappsdba.blogspot.com/p/rac-to-single-instance-physical-standby.html
http://unixoracledba.wordpress.com/2012/03/29/how-to-create-a-single-instance-physical-standby-dataguard-for-a-rac-database/
Primary Database' deki Adımlar
1- Primary DB archivelog moda alınır.
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 407
Current log sequence 408
alter system set db_recovery_file_dest='+fra' scope=both sid='*';
alter system set log_archive_dest_1='location=+fra' scope=both sid='*';
alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;
Tüm instancelar srvctl ile kapatılır
SQL>startup mount
SQL> shutdown immedite
DB' leri açalım
Kontrol edelim
2. Enable Force Logging. (fast start fail over kullanılacaksa) ve servis tanimlanir.
3. Standby Redo log ları oluşturalım.
StandBY redolog ları aşağıdaki gibi alies ile yapmayın. ASM kullanılan yerlerde bu şekilde (+FRA/mx/onlinelog/STDredo030b.log) ne online redo log ne de standby redo logları alias ile oluşturmayın. Aslında izin de vermemesi lazım madem tavsiye etmiyor.
Ek olarak üye de oluşturmamakta fayda var performans için.
Her nodda 2 adet redo log var, her nod icin, nod sayisinin bir fazlasi ini olusturuyoruz (yedekli olarak).
GROUP 30 ('+DATA/mx/onlinelog/STDredo030a.log','+FRA/mx/onlinelog/STDredo030b.log') SIZE 100m,
GROUP 40 ('+DATA/mx/onlinelog/STDredo040a.log','+FRA/mx/onlinelog/STDredo040b.log') SIZE 100m,
GROUP 50 ('+DATA/mx/onlinelog/STDredo050a.log','+FRA/mx/onlinelog/STDredo050b.log') SIZE 100m;
GROUP 60 ('+DATA/mx/onlinelog/STDredo060a.log','+FRA/mx/onlinelog/STDredo060b.log') SIZE 100m,
GROUP 70 ('+DATA/mx/onlinelog/STDredo070a.log','+FRA/mx/onlinelog/STDredo070b.log') SIZE 100m,
GROUP 80 ('+DATA/mx/onlinelog/STDredo080a.log','+FRA/mx/onlinelog/STDredo080b.log') SIZE 100m
Bu şekilde oluşturulması gerekir.
GROUP 5 SIZE 100M,
GROUP 6 SIZE 100M,
GROUP 7 SIZE 100M;
GROUP 8 SIZE 100M,
GROUP 9 SIZE 100M,
GROUP 10 SIZE 100M;
Not: DG kurulduktan sonra olusturulsa daha iyi olacak sanirim ikinci kurulumda denenecek,. (hem Primary da hem de standby da olusturulacak)
set lines 132
set trims on
select group#,type,member from v$logfile;
4. Password (orapw$instance_ismi) dosyalarını oluşturalım.(Password bütün makinelerde aynı olmalı).
Bütün nodlarda
orapwd file=$ORACLE_HOME/dbs/orapwmx1 password=0racle ignorecase=y force=y
orapwd file=$ORACLE_HOME/dbs/orapwmx2 password=0racle ignorecase=y force=y
–ignore case is important parameter here since from 11gR2 onwards passwords are case-sensitive
PING[ARC2]: Heartbeat failed to connect to standby ‘mx’. Error is 16191.
Error 1017 received logging on to the standby
These are common errors associated with password files. If you encounter the above errors, recreate the password files.
5. listener.ora dosyasına SID bilgileri girilir.(Bütün makinelerde standby lar dahil)
Primary (RAC-GRID HOME 2 node da da ayni)
LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3)))) # line added by Agent
LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
####################################################
stdmx =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stddbk.sysdba.org)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mx.sysdba.org)
(ORACLE_HOME = /u01/11.2.0/grid)
(SID_NAME = mx)
)
(SID_DESC =
(GLOBAL_DBNAME = stdmx.sysdba.org)
(ORACLE_HOME= /u01/11.2.0/grid)
(SID_NAME = stdmx)
)
(SID_DESC =
(GLOBAL_DBNAME = mx_DGMGRL)
(ORACLE_HOME= /grid/11.2.0/grid)
(SID_NAME = mx)
)
(SID_DESC =
(GLOBAL_DBNAME = stdmx_DGMGRL)
(ORACLE_HOME= /u01/11.2.0/grid)
(SID_NAME = stdmx)
)
)
StandBY ve Primary de “lsnrctl status” de instance ların kayıtlı olduğu görülmeli. Gerekirse local_listener parametresi set edilip (alter local_listener '' / register)
(listener.ora ile oynamadan da çalışmıştı ?)
6. tnsnames.ora
Butun nodlarda ve stanby da
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = murex-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mx.sysdba.org)
)
)
stdmx =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stddbk.sysdba.org)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stdmx.sysdba.org)
)
)
TNS Ping Utility for Solaris: Version 11.2.0.2.0 - Production on 25-APR-2013 18:33:54
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = stddbk.sysdba.org)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = stdmx.sysdba.org)))
OK (160 msec)
7. init.ora Parametrelerini DataGuard için ayarlıyoruz (primary için)
Öncesinde yedek pfile oluşturulur. (bir kopyasi da standby a gonderilecek)
alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=mx' scope=both sid='*';
alter system set log_archive_dest_2='service=stdmx LGWR SYNC AFFIRM max_failure=10 max_connections=5 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=stdmx' scope=both sid='*';
alter system set log_archive_dest_state_1='enable' scope=both sid='*';
alter system set log_archive_dest_state_2='enable' scope=both sid='*';
alter system set fal_server='stdmx' scope=both sid='*';
alter system set fal_client='mx' scope=both sid='*';
alter system set log_archive_max_processes=10 scope=both sid='*';
alter system set standby_file_management='AUTO' scope=both sid='*';
alter system set db_file_name_convert='+DATA/STDMX/','+DATA/MX/' scope=spfile sid='*';
alter system set log_file_name_convert='+FRA/STDMX/','+FRA/MX/','+DATA/STDMX/','+DATA/MX/' scope=spfile sid='*';
Kapatıp açıp, güncel değerler kontrol edilir.
Full halini aynı dizinde primaryinit.ora_for_std.ora adinda
Bu pfile standby a gönderilip , düzenlemeler yapılacak
--icerigi asagidaki gibi olmali
SPFILE='+DATA/stdmx/spfilestdmx.ora'
spfile' ın nerede olduğunu adresliyor. Aksi halde spfile ı bulamadığı için DB'yi açamaz
8. RMAN backup için geçici "stage" dizini oluşturulur. Primary/standby (oracle kullanicisi ile)
$chmod -R g+w /opt/oracle
$mkdir -p /opt/oracle/stage
9. Primary Database de Standby için rman yedek alıyoruz.
backup device type disk format '/opt/oracle/stage/mx_%u' database plus archivelog;
--Yer sıkıntısı ya da lokasyonlar arası erişim hızı düşükse sıkıştırılmış yedek alınabilir.
backup as compressed backupset database format '/opt/oracle/stage/mx_dbf_%u_%t_%s.rman' plus archivelog format '/opt/oracle/stage/mx_arc_%d_%t_%s.rman' ;
backup device type disk format '/opt/oracle/stage/mx_%u' current controlfile for standby;
Not : lokasyonlar arası erişim hızı düşük ise ve DB boyutu büyük ise rman backup ın alınıp karşı tarafa başka bir şekilde göndermek gerekebilir.
*****************************************************************************************************
10. Klasörler oluşturulur.
asmcmd>
asmcmd> mkdir +DATA/STDMX/
asmcmd> mkdir +DATA/MX/
asmcmd> mkdir +FRA/STDMX/
asmcmd> mkdir +FRA/MX/
11. init.ora Parametrelerini DataGuard için ayarlıyoruz
(standby için primaryinit.ora_for_std.ora dosyasında gerekli değişiklikler yapılır)
*.log_archive_config='dg_config=(mx,stdmx)'
*.log_archive_dest_1='LOCATION=+FRA valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=stdmx'
*.log_archive_dest_2='service=mx LGWR AFFIRM SYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=mx'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'
*.db_file_name_convert='+DATA/MX/','+DATA/STDMX/'
*.log_file_name_convert='+DATA/MX/','+DATA/STDMX/','+FRA/MX/','+FRA/STDMX/'
*.remote_login_passwordfile='exclusive'
*.STANDBY_FILE_MANAGEMENT='AUTO'
*.fal_client='STDMX
*.fal_server='MX'
*.sec_case_sensitive_logon=FALSE
12. Password (orapw$instance_ismi) dosyalarını oluşturuyoruz. (4. adımda standby için de oluşturdu iseniz gerek yok)
USERNAME SYSDB SYSOP SYSAS
--------------------------
SYS TRUE TRUE FALSE
13. listener.ora ya SID bilgileri girilir
not _1 : herhangi bir değisiklik yapmadan testlerde sorunsuz calıştı lakin makalelerde asagidaki listener girişleri yapılmış.
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stddbk.sysdba.org)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON
stdmx =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stddbk.sysdba.org)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mx.sysdba.org)
(ORACLE_HOME = /u01/11.2.0/grid)
(SID_NAME = mx)
)
(SID_DESC =
(GLOBAL_DBNAME = stdmx.sysdba.org)
(ORACLE_HOME= /u01/11.2.0/grid)
(SID_NAME = stdmx)
)
(SID_DESC =
(GLOBAL_DBNAME = mx_DGMGRL)
(ORACLE_HOME= /grid/11.2.0/grid)
(SID_NAME = mx)
)
(SID_DESC =
(GLOBAL_DBNAME = stdmx_DGMGRL)
(ORACLE_HOME= /u01/11.2.0/grid)
(SID_NAME = stdmx)
)
)
Not_2 : satir baslarini solda bosluk birakmadan listener.ora ya yazilirsa sytax hatalari veriyor
14. tnsnamas.ora ya primary rac ın bilgileri girilir.(Primary ile aynı yapılır)
Hepsi ayni olacak.
$tnsping ile kontrol edilecek.
15. StandBY database i oluşturalım.
startup nomount
StandBY da
veya
rman>duplicate target database for standby dorecover;
mount modda açıldığında standby redolog lar oluşturulur.
GROUP 5 SIZE 100M,
GROUP 6 SIZE 100M,
GROUP 7 SIZE 100M;
GROUP 8 SIZE 100M,
GROUP 9 SIZE 100M,
GROUP 10 SIZE 100M;
startup
shutdown immediate
startup nomount
alter database mount standby database;
alter database recover managed standby database using current logfile disconnect;
veya
alter database recover managed standby database disconnect;
*****************************************************************************************************
Primary
from v$archived_log order by sequence#;
Standby
FROM
(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL
WHERE
ARCH.THREAD# = APPL.THREAD#
ORDER BY 1;
SELECT sequence#, first_time, next_time, applied
FROM v$archived_log
ORDER BY sequence#;
TO_CHAR(FIRST_TIME, 'MM/DD/YY HH24:MI:SS') FIRST,
TO_CHAR(NEXT_TIME, 'MM/DD/YY HH24:MI:SS') NEXT,
TO_CHAR(COMPLETION_TIME, 'MM/DD/YY HH24:MI:SS') COMPLETION
FROM V$ARCHIVED_LOG ORDER BY FIRST_TIME
Arşivlenmiş (archived) son redologları görmek için
col status format a40;
col ARCHIVED_THREAD# format 999999;
col ARCHIVED_SEQ# format 9999;
SELECT DESTINATION, STATUS, ARCHIVED_THREAD#, ARCHIVED_SEQ# -
FROM V$ARCHIVE_DEST_STATUS -
WHERE STATUS <> 'DEFERRED' AND STATUS <> 'INACTIVE'
(SELECT THREAD#, SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) -
LOCAL WHERE -
LOCAL.SEQUENCE# NOT IN -
(SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND -
THREAD# = LOCAL.THREAD#)
V$REDO_DEST_RESP_HISTOGRAM WHERE DEST_ID=2 AND FREQUENCY>1;
Primary
WHERE DEST_ID=2 AND FREQUENCY>1;
Primary
WHERE DEST_ID=2 AND FREQUENCY>1;
SELECT THREAD#, SEQUENCE#, FILE_NAME FROM DBA_LOGSTDBY_LOG L -
WHERE NEXT_CHANGE# NOT IN -
(SELECT FIRST_CHANGE# FROM DBA_LOGSTDBY_LOG WHERE L.THREAD# = THREAD#) -
ORDER BY THREAD#, SEQUENCE#;
COLUMN VALUE FORMAT A16
COLUMN DATUM_TIME FORMAT A24
SELECT NAME, VALUE, DATUM_TIME FROM V$DATAGUARD_STATS;
FROM V$SESSION
GROUP BY MACHINE, FAILOVER_TYPE, FAILOVER_METHOD, FAILED_OVER;
*****************************************************************************************************
Primary veritabanı için - her nodda;
node 1'de
alter system set dg_broker_config_file2='+DATA/MX/mx2.dat' scope=both sid='*';
alter system set dg_broker_start=true scope=both sid='*';
Standby veritabanı için ise her nodda;
alter system set dg_broker_config_file2='+DATA/STDMX/stdmx2.dat' scope=both;
alter system set dg_broker_start=true scope=both sid='*';
connect /
CREATE CONFIGURATION 'dg_broker' AS PRIMARY DATABASE IS 'mx' CONNECT IDENTIFIER IS mx;
ADD DATABASE 'stdmx' AS CONNECT IDENTIFIER IS stdmx;
EDIT DATABASE 'mx' SET PROPERTY FastStartFailoverTarget='stdmx';
EDIT DATABASE 'stdmx' SET PROPERTY FastStartFailoverTarget='mx';
EDIT DATABASE "mx" SET PROPERTY 'LogXptMode'='SYNC';
EDIT DATABASE "stdmx" SET PROPERTY 'LogXptMode'='SYNC';
EDIT DATABASE 'mx' SET PROPERTY NetTimeout=180 ;
EDIT DATABASE 'stdmx' SET PROPERTY NetTimeout=180 ;
11.2.0.2.0 sürümündeki bug dan dolayi NetTimeout=180 yapildi
Bu ikisi dikkatli kullanilmali protection modelarin durumuna gore db yi kapatabiliyor..
enable configuration ;
Bilgi
show configuration ;
show configuration verbose;
SHOW DATABASE VERBOSE 'mx' ;
SHOW DATABASE VERBOSE 'stdmx' ;
show instance verbose stdmx;
show instance verbose mx1;
show instance verbose mx2;
REMOVE CONFIGURATION;
Log
SwitchOVER
Not ; switCHOVER dan sonra dgmgrl show configuration da bazi hatalar gorunebiliyor ama bir sure sonra kendini topluyor ve hatalar gidiyor. Iki tarafa da basarili bir sekilde switchoVER gerceklesti.
*****************************************************************************************************
GAP resulation
DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 10;
ArchiveLOG ların ASM'ye alınıp kayıt edilmesi
copy archivelog '/tmp/thread_1_seq_105.345.813673069' to '+fra';
ALTER DATABASE REGISTER LOGFILE '+FRA/stdmx/archivelog/2013_04_26/thread_1_seq_105.317.813752707' ;
***************************************************************************************************
col SWITCHOVER_STATUS for a20
select DATABASE_ROLE,switchover_status from v$database;
SWITCHOVER yapmak için
Primary
SHUTDOWN IMMEDIATE;
Standby;
MRP durduğunda
ALTER DATABASE OPEN;
Orjinal Primary (Şu an standby)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Error
ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY *
ORA-01105: mount is incompatible with mounts by other instances
Action: Query the GV$INSTANCE view as follows to determine which instances are
causing the problem:
WHERE INST_ID <> (SELECT INSTANCE_NUMBER FROM V$INSTANCE);
INSTANCE_NAME-------------INST2
HOST_NAME-----------------standby2
In the previous example, the identified instance must be manually shut down before
the switchover can proceed. You can connect to the identified instance from your
instance and issue the SHUTDOWN statement remotely, for example:
Enter Password:
SQL> SHUTDOWN;
SQL> EXIT
*****************************************************************************************
Protection modes
Primary
Standby
Maximum Availability
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
Maximum Performance
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
Maximum Protection
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
ALTER DATABASE OPEN;
*****************************************************************************************************
Primary de log_archive_dest_state “defer” moda alınır.
MRP process standby da kapatılır.
shutdown immediate;
alter database recover managed standby database using current logfile disconnect;
veya
primary database açılır log_archive_dest_state aktif (enable) edilir ve
alter system set log_archive_dest_state_2=enable scope = both sid = '*';
SHUTDOWN STANDBY DATABASE
step 1: Disable standby archive writing:
Primary/production database
step 2: auto recovery standby de deaktif edilir.
PS: In case of RAC: above command should run on just ONE of the standby RAC node.
RAC ortamında tüm stanby node larda uygulanmalı
STARTUP STANDBY DATABASE
Gerek olursa archivelog lar standby a taşınır.
Step 2: standby database açılır ve automatic recovery başlatılır.
SQL> alter database mount standby database;
SQL> alter database recover managed standby database disconnect from session;
PS: RAC ortamında bütün standby node larda uygulanır.
SQL> alter database mount standby database;
step 3: standby archive writing aktif edilir (enable)
primary/production database
RAC ortamında sadece bir node da çalıştırılması yeterli (sid='*').
*****************************************************************************************************
Bozulmadan önleyelim. Ayrıntılı bilgi için Doc ID 1302539.1
primary
alter system set DB_BLOCK_CHECKING=FULL scope=both sid='*';
alter system set DB_LOST_WRITE_PROTECT=TYPICAL scope=both sid='*';
standby
alter system set DB_BLOCK_CHECKING=FULL scope=both sid='*';
alter system set DB_LOST_WRITE_PROTECT=TYPICAL scope=both sid='*';
1
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
SUCCESS: diskgroup DATA was mounted
Errors in file /u01/app/oracle/diag/rdbms/stdhira/stdhira/trace/stdhira_ora_26491.trc (incident=7361):
ORA-00600:
Hatasi alinirsa
root ile
2
Deletion of Applied Archivelogs
If the archivelog files are being managed in the Fast Recovery Area then automatic deletion of backed up and applied archivelog files can be setup by issuing the following RMAN configure command on the primary database:
Creating a physical standby from ASM primary [ID 787793.1]
http://www.datadisk.co.uk/html_docs/oracle_dg/troubleshooting.htm
http://www.datadisk.co.uk/html_docs/oracle_dg/troubleshooting.htm
http://www.oracledba.org/">http://www.oracledba.org
3
Data Guard Broker Status Summary:
Type Name Severity Status
Primary Database hira Success ORA-00000
Physical Standby Database stdhira Warning ORA-16792
hata varsa
show database 'stdhira' 'InconsistentProperties';
ile farkli degerler bulunup (bazan degerler ayni olsa da ) scope=spfile/both ile degistirince düzeliyor.
4
ORA-00604: error occurred at recursive SQL level 1
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16028: new LOG_ARCHIVE_DEST_1 causes less destinations than LOG_ARCHIVE_MIN_SUCCEED_DEST requires
ORA-00604 ORA-02097 ORA-16028
BUG 12535659 - BROKER OVERRIDES MANDATORY/LOG_ARCHIVE_MIN_SUCCEED_DEST
Solution
Ozet
o anki primary de
RAC
single instance
metalink te ise asagidaki adimlar anlatilmis.
a. Use DGMGRL to gather information about the Broker configuration.
-- From current Primary
DGMGRL> show database verbose <db_unique_name>;
# This should be done for the primary and each standby.
b. Remove the Broker configuration.
-- From current Primary:
DGMGRL> remove configuration preserve destinations;
# This will ensure standby operations continue while the Broker
# configuration is being re-created.
c. Change the LOG_ARCHIVE_DEST_n destinations defined with LOCATION to remove DB_UNIQUE_NAME.
# This must be done on all databases in the Data Guard environment
# that Broker will manage.
d. Re-create the Broker configuration.
-- From current Primary:
DGMGRL> create configuration ....
# Use the info from Step #1 to re-create the Broker configuration
# and modify the properties on each database before enabling.
e.
ORA-16826: apply service state is inconsistent with the DelayMins property
dgmgrl configurasyonunu disable/enable edince düzeliyor.
enable configuration
5 . Bağlantı sorunları yaşandığında bakılacak yerler
ALTER SYSTEM REGISTER;
ALTER SYSTEM set LOCAL_LISTENER=LISTENER
alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL=TCP)(HOST=stddbk.sysdba.org)(PORT=1521))' scope=both;
6.Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2013-12-30_01-26-43PM/jdk/jre/lib/sparcv9/motif21/libmawt.so: ld.so.1: java: fatal: libXm.so.4: open failed: No such file or directory....
Çözüm
*****************************************************************************************************