Rastgele Yazılar : AYNI BİLGİSAYAR DA RAC İÇİN VMWARE SERVER KONFİGURASYON...
Rastgele Yazılar : Oracle Flashback ile Eski Datalara Erişmek(as of timest...
Rastgele Yazılar : ODI'de paralel ve seri paket çalıştırma
Rastgele Yazılar : Oracle Sga Yapısı
Rastgele Yazılar : Expdp - Impdp (Datapump) Komutları ve Kullanımı Üzerine...
Rastgele Yazılar : Oracle İnitial Parametreleri
Rastgele Yazılar : Servis Odaklı Mimari
Rastgele Yazılar : Oracle Enterprise Manager 12c üzerinde Data Masking
Rastgele Yazılar : Oracle Prosesleri
Rastgele Yazılar : Automatic Workload Repository
Bir önceki yazımda physical standby database’ in 10g ve 11g sürümleri için ayrı ayrı nasıl create edileceğinden bahsetmiştim. Şimdi oluşturmuş olduğumuz data guardımızı yönetmek için kullanabileceğimiz bir yöntemden bahsetmek istiyorum. Dataguardı enterprise manager konsoldan veya dataguardın yönetim paneli olan Dataguard broker’ dan yönetebiliriz. Bugünde bu yönetim panelinin (DGMGRL) konfigurasyonundan bahsedeceğiz.
Dg broker konfigurasyonu ;
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = dg1)
(GLOBAL_DBNAME = dg1)
(ORACLE_HOME = /data/oracle/11.2.0/dbhome_1)
)
(SID_NAME = dg2)
(GLOBAL_DBNAME = dg2)
(GLOBAL_DBNAME = dg1_DGMGRL)
(GLOBAL_DBNAME = dg2_DGMGRL)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.144)(PORT = 1521))
ADR_BASE_LISTENER = /data/oracle
ALTER SYSTEM SET DG_BROKER_START=TRUE scope=spfile
Parametreyi değiştirdikden sonra aşağıdaki gibi sorgulandığında dg_broker_config_file1 ve file2 parametrelerininde geldiğini göreceksiniz.
SQL> show parameter dg_broker_start
NAME TYPE VALUE
———————————— ———– ——
dg_broker_config_file1 string C:\…\DR1DGUARD.DAT
dg_broker_config_file2 string C:\…\DR2DGUARD.DAT
dg_broker_start boolean TRUE
DGMGRL’ ye bağlanmaya çalışırken aşağıdaki gibi bir hata ile karşılaşırsanız sebebi, dg_broker_start parametresinin TRUE olmamasındandır. Dolayısıyla öncelikle bu parametreyi kontrol etmeniz gerekir.
DGMGRL> connect sys/[email protected]
Connected.
Error:
ORA-16525: the Data Guard broker is not yet available
ORA-06512: at “SYS.DBMS_DRS”, line 124
ORA-06512: at line 1
Burada sırası ile primary ve standby sunucuyu data guard broker’ a tanıtıyoruz, configurasyonunu kontrol edip gerekiyorsa değişikliklerimizi yapıp, her iki database’ i enable hale geitirip switchover’ a hazırlıyoruz.
Bu örnekde son durum şu şekilde primary database’ imizin versiyonu 11gR2, linux 5.5 64 bit üzerinde ve sid’ si dg1, standby olan sunucumuz yine 11gR2, linux 5.5 64 bit üzerinde ve sid’ si dg2 şu anda da active standby dataguard olarak çalışıyor.
DGMGRL tarafında yapılan işlemler ;
– primary database’ i eklemek için ;
CREATE CONFIGURATION DG1 as
PRIMARY DATABASE IS DG1
CONNECT IDENTIFIER IS DG1 ;
DGMGRL> CREATE CONFIGURATION dg1 as
> PRIMARY DATABASE IS dg1
> CONNECT IDENTIFIER IS dg1 ;
Configuration “dg1″ created with primary database “dg1″
DGMGRL>
– standby database’ i eklemek için ;
ADD DATABASE dg2 AS
CONNECT IDENTIFIER IS dg2
MAINTAINED AS PHYSICAL ;
DGMGRL> ADD DATABASE dg2 AS
> CONNECT IDENTIFIER IS dg2
> MAINTAINED AS PHYSICAL ;
Database “dg2″ added
– son durmu görüntülemek için ;
SHOW CONFIGURATION
DGMGRL> SHOW CONFIGURATION
Configuration
Name: dg1
Enabled: NO
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
dg1 – Primary database
dg2 – Physical standby database
Current status for “dg1″:
DISABLED
– tanitilmis olan bir database’ in ayarlarini CHECK etmek için ;
SHOW DATABASE VERBOSE dg1;
DGMGRL> SHOW DATABASE VERBOSE dg2;
Database
Name: dg2
Role: PHYSICAL STANDBY
Intended State: OFFLINE
Instance(s):
dg2
Properties:
InitialConnectIdentifier = ‘dg2′
LogXptMode = ‘ARCH’
Dependency = ”
DelayMins = ’0′
Binding = ‘OPTIONAL’
MaxFailure = ’0′
MaxConnections = ’1′
ReopenSecs = ’300′
NetTimeout = ’180′
LogShipping = ‘ON’
PreferredApplyInstance = ”
ApplyInstanceTimeout = ’0′
ApplyParallel = ‘AUTO’
StandbyFileManagement = ‘AUTO’
ArchiveLagTarget = ’0′
LogArchiveMaxProcesses = ’10′
LogArchiveMinSucceedDest = ’1′
DbFileNameConvert = ‘dg1, dg2′
LogFileNameConvert = ‘D:\arch, D:\arch\standby_arch’
FastStartFailoverTarget = ”
StatusReport = ‘(monitor)’
InconsistentProperties = ‘(monitor)’
InconsistentLogXptProps = ‘(monitor)’
SendQEntries = ‘(monitor)’
LogXptStatus = ‘(monitor)’
RecvQEntries = ‘(monitor)’
HostName = ‘WINTEST_PC’
SidName = ‘dg2′
LocalListenerAddress = ‘(ADDRESS=(PROTOCOL=tcp)(HOST=WINTEST_PC)(PORT=1521))’
StandbyArchiveLocation = ‘D:\arch’
AlternateLocation = ”
LogArchiveTrace = ’0′
LogArchiveFormat = ‘arch_%t_%s_%r_.arc’
LatestLog = ‘(monitor)’
TopWaitEvents = ‘(monitor)’
Current status for “dg2″:
– tanitilmis olan bir database’ in ayarlarini update etmek için (örnek olarak dg1’ in SidName değerinin nasıl değiştirilebildiğini örnekledim) ;
EDIT DATABASE dg1 SET PROPERTY ‘SidName’='dg1′ ;
DGMGRL> EDIT DATABASE dg2 SET PROPERTY ‘SidName’='dg2′ ;
Property “SidName” updated
– dataguard broker’ i enable etmek için ;
ENABLE CONFIGURATION;
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration;
Enabled: YES
SUCCESS
– failover operasyonunda geçis için standby database’ i hazirlamak (enable etmek) ;
ENABLE DATABASE dg2;
DGMGRL> ENABLE DATABASE dg2;
ENABLE DATABASE dg1;
DGMGRL> ENABLE DATABASE dg1;
Switchover test ;
Switchover testine başlamadan önce primary ve standby sunucularının statülerini kontrol ediyoruz. Show database komutu ile database’ lerimizi sorguladığımızda mutlaka SUCCES mesajını almamız gerekiyor. Eğer alamıyorsak konfigurasyonla ilgili bir problem var demektir.
DGMGRL> show database dg1
Database – dg1
Role: PRIMARY
Intended State: TRANSPORT-ON
dg1
Database Status:
DGMGRL> ENABLE DATABASE dg2
DGMGRL> show database dg2
Database – dg2
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: ON
Switchover işlemi için bir problem gözükmüyor. Operasyona başlamadan önce sql’ den database’ lerin statüsünü kontrol ediyorum.
(sorgu sonuçları select le seçilen alanlar biraz kalabalık olduğundan dolayı net anlaşılamayabilir. )
Primary database ‘i;
select name, controlfile_type, open_mode, protection_mode,
protection_level, database_role, switchover_status,
dataguard_broker, guard_status, current_scn, db_unique_name,
fs_failover_status
from v$database
NAME CONTROLFILE_TYPE OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL DATABASE_ROLE SWITCHOVER_STATUS DATAGUARD_BROKER GUARD_STATUS CURRENT_SCN DB_UNIQUE_NAME FS_FAILOVER_STATUS
——— —————- ——————– ——————– ——————– —————- ——————– —————- ———— ———– —————————— ———————-
DG1 CURRENT READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PRIMARY TO STANDBY ENABLED NONE 890056 dg1 DISABLED
1 row selected
Standby database ‘i;
DG1 STANDBY READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY NOT ALLOWED ENABLED NONE 890091 dg2 DISABLED
Switchover öncesi durumlarınıda baktıkdan sonra, operasyona başlayabiliriz ;
İlk denememde aşağıdaki gibi bir hata aldım. Hatayı dg2 instance’ ını başarıyle primary yaptıkdan sonra dg1’ i standby’ a dönüştürürken verdi, hata mesajı ve logu aşağıdaki gibi,
DGMGRL> switchnover to dg2;
Unrecognized command “switchnover”, try “help”
DGMGRL> switchover to dg2
Performing switchover NOW, please wait…
New primary database “dg2″ is opening…
Operation requires shutdown of instance “dg1″ on database “dg1″
Shutting down instance “dg1″…
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance “dg1″ on database “dg1″
Starting instance “dg1″…
Unable to connect to database
ORA-12545: Connect failed because target host or object does not exist
Failed.
Warning: You are no longer connected to ORACLE.
Please complete the following steps to finish switchover:
start up instance “dg1″ of database “dg1″
Hatayı biraz araştırdıkdan sonra problemin sunucuların hostlarında karşılıklı olarak ip ve hostname’ leri olmadığından verdiğini gördüm, karşılıklı olarak ip ve host’ ları /etc/hosts dosyasına ekledikden sonra (root userı ile eklenmesi gerekiyor) tekrar denedim ;
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is “dg2″
Hatasız olarak swicth operasyonunu tamamladık. Şu anda artık primary database’ imiz dg2 oldu, standby sunucumuz da dg1 oldu. Kontrol edelim ;
Dg1 üzerinde ;
DG1 STANDBY READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE PHYSICAL STANDBY NOT ALLOWED ENABLED NONE 887698 dg1 DISABLED
Dg1’ in artık Standby olduğunu doğruladık. Dg2’ yi kontrol edelim ;