ORACLE DERS 2SERVER KONFİGİRASYONLARIDedicated ServersHer bir Client prcessi için server tarafında Server processi ayarlan...
Kullanıcılar Server üzerinde bulunan Server Processlerini paylaşırlar.Bunuda Server üzerinde bulunanDispatchelar vasıtası ...
1-)Listener herhangi bir bağlantı olup olmadığını bekler,Eğer bir bağlantı olursa ilgili dispatcher ıayarlamaya çalışır.2-...
İnit.ora file’ın içinde dispatcher sayısı ayarlanabilir.Aynı şekilde shared server sayısıda init.ora dosyası içinden ayarl...
DATA DİCTİONARY VİEW LARI KULLANIMIDatadictionary viewlar ve dinamci performans viewları ile sistem hakkında çok detaylı b...
Örneğin,SQL > SELECT owner, object_name, object_typeFROM dba_objects;SQL > SELECT owner, object_name, object_typeFROM all_...
CONTROL FILE VE YÖNETİMİ        Her Oracle veritabanının bir kontrol dosyası vardır. Kontrol dosyasında veritabanının fizi...
SQL> CONNECT SYS/ORACLE@NEWDB as sysdba;SQL> shutdown immediate;$ CP d:oracleoradatanewdbCONTROL01.CTL d:oracleoradatanewd...
NAME------------------------------------/u01/home/db03/ORADATA/u01/ctrl01.ctl/u01/home/db03/ORADATA/u01/ctrl01.ctl2 rows s...
REDOLOGLAR VE YÖNETİMİVeritabanındaki tüm “commit” olmuş değişikliklerin , kurtarma yapılırken kullanılmak üzere kaydedild...
Redo log file dolduğu zaman LGWR işlemcisi yeni bir gruba yazdırır.Redologlar Gruplar ve grupların memberları şeklinde çal...
(‘D:oracleoradatanewdbREDO04_a.LOG, D:oracleoradatanewdbREDO04_b.LOG)SIZE 100M;Aşağıdaki Sql de mevcut bir gruba yenibir m...
Bir gruptaki member’ı devre dışı bırakmak istersekte,SQL> ALTER DATABASE DROP LOGFILE MEMBER$HOME/ORADATA/u04/log3c.rdo;
Bir redolog’un içeriğini temizlemek istiyorsak,SQL> ALTER DATABASE CLEAR LOGFILE$HOME/ORADATA/u01/log2a.rdo;Redologlarda g...
GROUP# SEQUENCE# BYTES MEMBERS STATUS--------- ---------- -------- --------- ---------1 688 1048576 1 CURRENT2 689 1048576...
Arcn : ARCH görevi aslinda seçimlik bir arka plan görevi olmasina ragmen bir çok sistem için özellikletavsiye edilir. Eger...
Upcoming SlideShare
Loading in …5
×

Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan

695 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
695
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan

  1. 1. ORACLE DERS 2SERVER KONFİGİRASYONLARIDedicated ServersHer bir Client prcessi için server tarafında Server processi ayarlanır.Client tarafı ve Server ayrı olmasızaten bir avantaj oluşturur.Shared Servers
  2. 2. Kullanıcılar Server üzerinde bulunan Server Processlerini paylaşırlar.Bunuda Server üzerinde bulunanDispatchelar vasıtası ile yaparlar.İstek kuyruğa girip eğer yeterli Server prosesi varsa devreyealınır.Dedicated server da 100 tane user prosesi için 100 tane server prosesi gerekir.Ama Shared serverda sadece 10 tane server prosesi yeterlidir.Böylece memory kullanımı daha etkin olabilir.Tnsnames.ora file ında,Server=Shared yada Dedicated diyerek ayarlama yapabiliriz.ORADATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = administ-db80da)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORADATA) (SERVER = DEDICATED) ) )
  3. 3. 1-)Listener herhangi bir bağlantı olup olmadığını bekler,Eğer bir bağlantı olursa ilgili dispatcher ıayarlamaya çalışır.2-)Eğer bağlantı gerçekleşmişse Listener dispatcher’ın adresini kullanıcıya verir.3-)En son kullanıcı dispatcherla bağlantıyı sağlamış olur.1-)Kullanıcı dispatcher a bir istek yollar.2-)Dispatcher bunu SGA da istek kuyruğuna yerleştirir.3-)Shared server ilgili isteği istek kuyruğundan alır.4-)Daha sonra shared server bunu Dispatcher’ın cevap kuyruğuna yerleştirir.5-)Dsipatcher cevabı kuyruktan çeker.6-)Daha sonra cevap kullanıcıya döner.
  4. 4. İnit.ora file’ın içinde dispatcher sayısı ayarlanabilir.Aynı şekilde shared server sayısıda init.ora dosyası içinden ayarlanabilir.İnit.ora dosyasından yine aynı şekilde max_dispatchers,max_shared_servers,SHARED_SERVER_SESSIONS, ayarlanabilir.CIRCUITSUser Prosesleri Dispatcher la aktif olduğundan itibaren birer Circuit oluşturular.İnit.ora dosyasında circuitsparametresi bu bağlantı sayısını gösterir.$ lsnrctl services listener_nameYazarak servislerin durumu kontrol edilebilir.Aynı zamanda V$CIRCUIT, V$SHARED_SERVER, V$DISPATCHER, V$SHARED_SERVER_MONITOR,V$QUEUE, V$SESSION dictionary view lardan da yardım alınabilir.
  5. 5. DATA DİCTİONARY VİEW LARI KULLANIMIDatadictionary viewlar ve dinamci performans viewları ile sistem hakkında çok detaylı bilgilertoplayabilmekteyiz.Database’in mantıksal ve fiziksel yapısı ile ilgili bilgiler alınabilir,Objelerin doluluk oranları ile ilgili bilgiler toplanabilir,Tablolar arasındaki ilişkiler gözlemlenebilir,Kullanıcılar,roller ve yetkiler hakkında bilgi alınabilir.Oracle sistemi yetkilendirilmelirine dayalı olduğu için bazı viewlara erişip bazılarına erişimimiz yoktur.
  6. 6. Örneğin,SQL > SELECT owner, object_name, object_typeFROM dba_objects;SQL > SELECT owner, object_name, object_typeFROM all_objects;SQL > SELECT owner, object_name, object_typeFROM users_objects;İle arasındai farklar görülebilir.SQL > SELECT * FROM dictionary; komutu çalıştırılar database’in kullandığı tüm data dictionary viewlargörülebilir.Dinamik performans viewları ise V$_ ile başlamaktadır,ÖrneğinSQL > SELECT * FROM V$FIXED_TABLE;SQL > SELECT * from V$INSTANCE;
  7. 7. CONTROL FILE VE YÖNETİMİ Her Oracle veritabanının bir kontrol dosyası vardır. Kontrol dosyasında veritabanının fizikselyapısı ile ilgili bilgileri tutulur. Veritabanı, redo log dosyalarında olduğu gibi kontrol dosyalarının da birdenfazla kopyasının tutulmasını desktekler. Kontrol dosyalarında tutulan bilgilerin bazıları veritabanının adı,redo log dosyalarının yerleri ve adları, veritabanın yaratıldığı zamandır. Oracle veritabanı örneğinin heraçılışında, kontrol dosyası veritabanı ve redo dosyalarının yerlerinin bulunup veritabanı işlemlerineaçılması için kullanılır. Eğer veritabanının fiziksel yapısında bir değişiklik olursa, kontrol dosyası Oracletarafından otomatik olarak değiştirilir. Kontrol dosyası veritabanının kurtarılmasında da kullanılır.Kontrol file’lar database’in mount modunda aktif olurlar.Bir kontrol file aşağıdaki gibi bilgileri tutmaktadır.Database ismini ve kimliğiniDatabase’in yaratılma zamanınıTablespacelerin isimleriniDatafile ve Redologların isim ve lokasyonlarıAktif olan redolog’un sequnce numaasınıCheckpoint bilgisiniUndoSegment’in başlangıcı ve SonuRedolog Arşiv bilgisiniBackup bilgisini.Kontrolfile’lar db lokasyonunda control01.ctl,control02.ctl,control03.ctl isimli olarak db yaratılırkenoluşurlar.Bunları daha sonra çoğaltmak mümkündür.Ama DB ilk oluştğunda 3 tane oluşur.DB üzerindeyapılan herhangi bir değişiklik otomatik olarak her birine yansır.CONTROL FILE ÇOĞALTIMIİlk olarak SPFILE kullanarak bu çoğaltmayı yapmak istiyorsak,$ SQLPLUS /NOLOG
  8. 8. SQL> CONNECT SYS/ORACLE@NEWDB as sysdba;SQL> shutdown immediate;$ CP d:oracleoradatanewdbCONTROL01.CTL d:oracleoradatanewdbCONTROL04.CTLSQL> startup nomount;SQL> ALTER SYSTEM SET control_files =‘d:oracleoradatanewdbCONTROL01.CTL’,’d:oracleoradatanewdbCONTROL02.CTL’,’d:oracleoradatanewdbCONTROL03.CTL’ , ’d:oracleoradatanewdbCONTROL04.CTL’ SCOPE=BOTH;SQL> ALTER DATABASE MOUNT;SQL> ALTER DATABASE OPEN;Eğer bu işlemi init.ora dosyasından yapmak istersek,$ SQLPLUS /NOLOGSQL> CONNECT SYS/ORACLE@NEWDB as sysdba;SQL> shutdown immediate;$ CP d:oracleoradatanewdbCONTROL01.CTL d:oracleoradatanewdbCONTROL04.CTLBu aşamada initi.ora dosyasını açıp içinecontrol_files=d:oracleoradataoradataCONTROL01.CTL, d:oracleoradataoradataCONTROL02.CTL,d:oracleoradataoradataCONTROL03.CTL, d:oracleoradataoradataCONTROL04.CTLekliyoruz.SQL> startupİstenirse control file ‘ın backup’ını almakta mümkündür.Bunu aşağıdaki komutlarla yapabiliyoruz.SQL> ALTER DATABASE BACKUP CONTROLFILE TO FILENAMESQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;Kontrol file ların durumu ve içeriği hakkında bilgi almak istiyorsak dinamik performanc viewlarınabaşvurmak gerekmektedir.SQL> SELECT name FROM V$CONTROLFILE;
  9. 9. NAME------------------------------------/u01/home/db03/ORADATA/u01/ctrl01.ctl/u01/home/db03/ORADATA/u01/ctrl01.ctl2 rows selected.SQL> SELECT name, value from V$PARAMETERWHERE name = ‘control_files’;NAME Value------------- -------------------------------------control_files /u01/home/db03/ORADATA/u01/ctrl01.ctlSQL> SELECT type, record_size, records_total, records_usedFROM v$controlfile_record_sectionWHERE type=’DATAFILE’;TYPE RECORD_SIZ RECORDS_TO RECORDS_US------- ---------- -------- ------------------DATAFILE 180 30 41 row selected.SQL> show parameters control_files;NAME TYPE VALUE------------ ------- ------------------------------control_files string /u01/home/db03/ORADATA/u01/ctrl01.ctl
  10. 10. REDOLOGLAR VE YÖNETİMİVeritabanındaki tüm “commit” olmuş değişikliklerin , kurtarma yapılırken kullanılmak üzere kaydedildiğidosyalardır. En az iki redo log grubu tanımlanır. Bu dosyaların boyu ve grup sayısı veri tabanı yaratılırkensisteme tanımlanır. Sonradan bu tanımlar değiştirilebilmektedir. Redo log dosyalarının boyu , ideal olarakyarım saatte bir değişecek (swich) şeklinde ayarlanmalıdır. Redo log dosyalarının çok küçük olması ,sistemde beklemelere neden olur. Çok büyük olmasa da veri tabanı açılırken yapılan otomatik kurtarmaişleminin çok uzun sürmesine yol açar ve aktif redo log dosyalarının silinmesi yada bozulması durumundada daha fazla veri kaybı olmasına neden olur. Redo log dosyalarının boyunun iyi ayarlanamamasıOracle’ın dezavantajlarına bir örnek oluşturmaktadır.Sistemin güvenliği açısından her gruptaki redo log’u iki kopya olarak veri tabanı farklı disketlerde yaratmakgerekir. Redo log’lar kesinlikle raid disk üzerine konulmamalıdır. Çünkü redo log dosyaları üzerine sürekliyazma yapılmaktadır ve raid diskler yazma işleminin yavaşlatır.Redo log dosyaları bir döngü içersindedir. Bir gruptaki redo log dolduğunda otomatik olarak diğer grubageçer ve işlem bu şekilde devam eder.Eğer veri tabanı arşiv modda ise bu dolan redo log dosyasının bir kopyası arşiv.log olarak kopyalanır vekurtarma amaçlı saklanır.Veriye yapılan tüm değişiklik işlemlerini tutmakla yükümlüdür.Datafile’lara (bir şekilde) değişen bilgiyazılamadığı durumlarda redo loglardan bu işlemler görülebilir ve yapılan işlemin kaybı önlenir.Bu dosyalarında çoğullanma imkanı vardır.Farklı diskler üzerinde 2 ya da daha fazla kopyası tutulabilir.Bu dosyanın amacı özetle sistem ya da donanım kaynaklı(harddisk göçmesi vs.) olası hatalardadatafile’lara kalıcı şekilde yazılamayan bilgileri kurtarmaktır.Örneğin bir elektrik kesintisinde henuzdatafile’lara yazılmayan ve memory de bulunan bilgiler kaybedilir.Sistem tekrar ayağa kalktığında Oracleilk önce redo log lara bakar.Kalıcı olarak datafile’a yazılamayan bilgi olduğunu görür ve yarım kalan işlemisonlandırır.Bu sayede veritabanı elektrik kesintisi olmadan evvelki konuma gelinmiş olur.
  11. 11. Redo log file dolduğu zaman LGWR işlemcisi yeni bir gruba yazdırır.Redologlar Gruplar ve grupların memberları şeklinde çalışma gösterir.Örneğin 3 adet redo grubumuzolsun,her birinin 2 şer tane member’ı olsun.Çalışma mantığı olarak oracle bu 3 gruba birdenyazmaz.Birinin işi bittiğinde diğerine geçer,ama bir gruptaki meberların her birine yazılır.Database yaratılırken verilen maxlogfiles parametresi maximum kaç tane redolog olacağının bilgisini verir.Bir redolog ne zaman diğerine(Diğer redolog) geçer,1-)Log Switch geldiğinde,2-)Checkpoint anında,3-)Transactionlar için redolog dolduğundaFAST_START_MTTR_TARGET parametresi ayarlanarak switch süresi saniye süresinden belirlenir.REDOLOGLARIN ÇOĞALTILMASIAşağıdaki sorgu ile database’e yeni bir redolog grubu ekleme imkanı bulmaktayız.SQL> ALTER DATABASE ADD LOGFILE GROUP 4
  12. 12. (‘D:oracleoradatanewdbREDO04_a.LOG, D:oracleoradatanewdbREDO04_b.LOG)SIZE 100M;Aşağıdaki Sql de mevcut bir gruba yenibir member ekleme fırsatı bulabilmekteyiz.SQL> ALTER DATABASE ADD LOGFILE MEMBER$HOME/ORADATA/u04/log1c.rdo TO GROUP 1,Mevcut bir grubu devre dışı bırakmak istiyorsakta aşağıdaki sorguyu kullanmalıyız.SQL> ALTER DATABASE DROP LOGFILE GROUP 3;
  13. 13. Bir gruptaki member’ı devre dışı bırakmak istersekte,SQL> ALTER DATABASE DROP LOGFILE MEMBER$HOME/ORADATA/u04/log3c.rdo;
  14. 14. Bir redolog’un içeriğini temizlemek istiyorsak,SQL> ALTER DATABASE CLEAR LOGFILE$HOME/ORADATA/u01/log2a.rdo;Redologlarda gerçekten sistemimiz için çok öenmlidir.Bu yüzden bunlarıda farklı disklerde tutup güvenliğisağlamak çok öenmlidir.En son olarakta redologlar hakkında bilgi toplamak için data dictionary viewlarından yararlanıyoruz.SQL> select * from v$logfile; Logfiller hakkında bilgi alırız.SQL> select * from v$log_history; Control filelar üzerinde log fileların bilgilerini alırız.SQL> select * from v$log; Logfiller hakkında bilgi alırız.SQL> SELECT group#, sequence#, bytes, members, statusFROM v$log;
  15. 15. GROUP# SEQUENCE# BYTES MEMBERS STATUS--------- ---------- -------- --------- ---------1 688 1048576 1 CURRENT2 689 1048576 1 INACTIVE2 rows selected.SQL> SELECT member FROM V$LOGFILE;MEMBER-------------------------------------/u01/home/db03/ORADATA/u03/log02a.rdo/u01/home/db03/ORADATA/u03/log01a.rdoARŞİV REDOLOG FİLESDatabase eğer arşiv modundaysa redolog dosyaları düzenli olarak arşivlenir ve arşiv dosyası olaraksaklanır.Daha sonra geçmişe dönük bir krutama yada data almak istediğimizde bu arşiv dosyaları kullanılmaktadır.Database’İn arşiv yada noarchive olup olmadığını anlamak için,SQL > select log_mode from v$database;LOGMODE--------------------------------------ARCHİVELOGBir database’i arşiv moduna almak için çeşitli yöntemler vardır.Ama bilinmesi gerekn parametreLOG_ARCHIVE_START parametresinin TRUE olmasıdır.
  16. 16. Arcn : ARCH görevi aslinda seçimlik bir arka plan görevi olmasina ragmen bir çok sistem için özellikletavsiye edilir. Eger bu görev çalistiriliyorsa veritabani ARCHIVELOG kipinde çalisiyor demektir. Buseçenek;tablespace ‘lerin çevrim-içi (on-line) yedeklenmesinemedya failure ‘dan çevrim-içi kurtarmaya ,günlük kütüklerinin otomatik olarak arsivlenmesine izin verir.ARCH görevi, günlük kütüklerinin kopyalarini, yerleri daha önce belirlenmis disk ya da teyp birimleriüzerine çikarir.SQL> SELECT archiverFROM v$instance;ARCHIVE---------STOPPED1 row selected.

×