Oracle Clusterware yetenekleri kullanılarak otomatik failover-switch işlemleri kolayca yönetilebiliyor. Ayrıca sadece oracle veritabanı veya diğer oracle ürünleri için değil herhangi üçüncü parti bir uygulamanın clusterware kaydı mümkün. Yapılması gereken kayıt scriptlerinin doğru şekilde oluşturulması. (start stop check parametreleri için doğru exit code ları döndürmesi yeterli)
![]() |
| Detaylar: http://docs.oracle.com/cd/B28359_01/rac.111/b28255/intro.htmOracle Identity Management (IOD) Control: oid.scr Apache (httpd) control: httpd.scr |
Oracle active data guard sistemi, özetle; primary database tarafından standby database tarafına transfer edilen archive logların uygulanması (apply) biçiminde çalışır. Bağlantı problemleri sıralı logların transferinde eksiklerin oluşmasına neden olabilir. Bu durumda eksik loglar primary database tarafında diskte değilse, rman ile recover edilir.
Örn; RESTORE ARCHIVELOG FROM SEQUENCE 203524 UNTIL SEQUENCE 203524 thread 1; gibi
Primary side tarafında diskte yer alan loglar standby tarafına iletilecektir.
Standby tarafında transfer edilen sıralı loglar MRP prosesi tarafından işlenir. Transfer problemi varsa bu durum alertlog a GAP olarak yansır. Standby database tarafında MRP prosesinin durumu kontrol edilerek hangi logda problem olduğu kolayca anlaşılabilir.
MRP prosesinin durumu şu sorgu ile kontrol edilir.
select status,sequence# from v$managed_standby WHERE PROCESS=’MRP0′;
eğer aradaki eksik log sayısı ağ üzerinden gönderilemeyecek kadar fazlaysa archivelog ‘lar manuel olarak taşınabilir diske alınır. Disk standby tarafına mount edilerek şu şekilde logların manuel register olması sağlanır.
ALTER DATABASE REGISTER LOGFILE ‘/media/disk/thread_1_seq_202393.1444.761832629′ ;
Eksik log olmamasına rağmen MRP prosesi archivelog ları standby tarafında sıraya alıyor fakat işlemiyorsa, en son işlemeye çalıştığı archivelog tekrar manuel register edilmeye çalışılmalıdır.
Son işlenen archivelog listesi şu şekilde görüntülenebilir,
select * from (SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc) t1 where rownum<300;
Redo Apply servisi başlatmak için;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Redo Apply servisi durdurmak için;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
AWR raporu sayesinde oracle database performansı ve ayarlarıyla ilgili özet-detay bilgiler izlenebilir.
awr raporu awrrpt.sql script’i ile oluşturulur.
script $ORACLE_HOME (/u01/app/oracle/product/11.2.0/db_1) rdbms/admin dizini altında bulunmaktadır.
sys hesabı kullanılarak sqlplus komut ekranında aşağıdaki gibi çalıştırılır.
SQL> @?/rdbms/admin/awrrpt.sql
Raporun kapsayacağı gün, rapor adı, saat bilgileriyle ilgili sorular cevaplanır.
Tamamlandığında bulunduğunuz dizinde dosya oluşacaktır.
select to_char(first_time,’yyyy-mm-dd HH24:MI’),
round(mb),
round(mb – (avg(mb) over ())) dev_from_avg
from (select trunc(first_time) first_time,
sum(blocks*block_size)/1048576 mb
from v$archived_log
group by trunc(first_time))
order by first_time;
archivelog’lara ait günlük toplam size bilgilerini görüntüler.
Oracle Linux 4
Oracle Linux 5
Oracle Linux 6
OEL5 için örnek kurulum;
# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-el5.repo
# yum list
# yum install firefox
Dışarı alma işlemi,
mkdir /u01/dumpdir
sqlpls
sys as sysdba
SQL> create directory DUMPDIR as ‘/u01/dumpdir’;
SQL> GRANT read, write ON DIRECTORY DUMPDIR TO DBUSERNAME;
SQL> expdp DBUSERNAME/PASSWORDU@DBNAME schemas=DBUSERNAME directory=DUMPDIR dumpfile=DBUSERNAME.dmp
tekrar içeri aktarırken,
kullanıcı adı, tablespace-datafile ayarlarının yapıldığını varsayıyoruz,
impdp schemas=DBUSERNAME directory=DUMPDIR dumpfile=DBUSERNAME.dmp
SQL> ALTER SYSTEM SET RESOURCE_LIMIT = TRUE scope=both;
SQL>CREATE PROFILE limitlikullanici LIMIT SESSIONS_PER_USER 3 IDLE_TIME 30 CONNECT_TIME 600;
SQL>ALTER USER TESTUSER PROFILE limitlikullanici;
Max IDLE time değeri dakika cinsinden. aynı anda 3 session’dan fazla oturum açılmaya çalışıldığında,
ORA-02396: exceed maximum idle time, please connect again
hatası ile karşılaşılacak,
select event from gv$session where username=’APP1′ and status=’ACTIVE’ and machine=’ntserv1′;
Active session sayısı olması gerekenden daha fazla olan uygulamanın event’lerinde yukarıdaki uyarı yer alıyor,
beklemeye neden olan sql bilgisini aşağıdaki gibi alabiliyoruz,
select sid, sql_text
from gv$session s, gv$sql q
where sid in (select sid
from gv$session where state in (‘WAITING’)
and wait_class != ‘Idle’ and event=’enq: TX – row lock contention’
and (
q.sql_id = s.sql_id or
q.sql_id = s.prev_sql_id));
Düğüme ait tüm parentların bulundukları seviye bilgisi ile beraber alınması;
SELECT distinct key_id, language_key, script_name, level
FROM gui_breadcrumb x CONNECT BY PRIOR key_id=root
START WITH key_id =29 order by level desc;
Düğüme ait tüm çocukların alınması,
SELECT distinct key_id, language_key, script_name, level FROM gui_breadcrumb x
CONNECT BY PRIOR root=key_id START WITH key_id =32 order by level desc;