Set as Homepage   Add to Favourites   Recommend   Contact



Menu

∙ Home
∙ Index (All Topics)
∙ About Me
∙ About This Blog
∙ Favourite Links
∙ RSS Feed

Categories

∙ ASP & PHP (1)
∙ HTML, XML and CSS (2)
∙ C / C++ (5)
∙ Java, JSP and Servlet (0)
∙ SQL-Oracle-PL/SQL (28)
∙ Operating Systems (1)
∙ OFF-Topic (8)

Popular Topics (Top 10)

∙ Decode Function in Oracle SQL (63934)

∙ Derin anlamlı sözler - Bunlar da Türkçe olanlar :) (59652)

∙ Oracle performance analysis - Tracing and performance evaluation (45598)

∙ Differences between C and C++ (36707)

∙ Turkcell Staj Günlüğü - 1: Introduction to Oracle (34238)

∙ When a transaction begins? (33178)

∙ Implicit vs. Explicit cursors - Performance analysis (18183)

∙ Turkcell Staj Günlüğü - 4: Transaction Management (17078)

∙ Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments (15243)

∙ Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals" (15051)


Most Recent (Last 10)

∙ Matematik Asla Yalan Söylemez!

∙ Finding and Removing Loop on a Singly-Linked List

∙ Obfuscated C

∙ Is C a Vitamin? Yes, of course...

∙ Differences between C and C++

∙ Whence C? Why C? Whither C?

∙ Türkçe Karakterli Domain'lerin İç Yüzü

∙ Windows Source Codes

∙ Decode Function in Oracle SQL

∙ Hello World!


Recent Comments (Last 10)

∙ "tebrikler" By yasin on Turkcell Staj Günlüğü - 5: Startup, Shutdown

∙ "Gercekten Güzel Bir Çalışma" By Hüseyin Karabakla on Neden hazır blog'ları kullanmadım ki?

∙ "Konu paralelinde güzel bir özet ek okuma - " By TongucY on Oracle performance analysis - Tracing and performance evaluation

∙ "harika" By burak ozcan on Derin anlamlı sözler - Bunlar da Türkçe olanlar :)

∙ "Tebrikler" By Tarık Bayzın on Turkcell Staj Günlüğü - 1: Introduction to Oracle

∙ "Gayet Başarılı.." By Fahri ATES on Turkcell Staj Günlüğü - 1: Introduction to Oracle

∙ "Helal olsun" By ender onder on Turkcell Staj Günlüğü - 5: Startup, Shutdown

∙ "tebrikler.." By ender ondeer on Turkcell Staj Günlüğü - 4: Transaction Management

∙ "Adulation?" By fizikci on Matematik Asla Yalan Söylemez!

∙ "Rehberlik için çook teşekkürler" By Pınar Tanrıverdi on Kahin'e yolculuk nasıl başlamalı?


Archive (Last 12 Months)

∙ Feb, 2008 (4)
∙ Jan, 2008 (2)
∙ Dec, 2007 (1)
∙ Sep, 2007 (4)
∙ Aug, 2007 (9)
∙ Jul, 2007 (22)
∙ Jun, 2007 (3)
∙ Index (All Records)

Other Related Blogs

∙ Tom Kyte’s Blog
∙ Steven Feuerstein’s Blog
∙ Jonathan Lewis’s Blog
∙ H.Tonguç Yılmaz Oracle Blog
∙ Mennan Tekbir's Blog
∙ Hakkı Oktay’s Blog
∙ Osman Çam’s Blog

Stats

Total Topics
Total Topic Views
Total Comments
Unique Visitors
Total Visitors
: 45
: 683608
: 44

About this blog…
About this blog…
About Me
About Me
Favourite Links
Favourite Links
Neden hazır blog'ları kullanmadım ki?
Neden hazır blog'ları kullanmadım ki?
CSS is more powerful than you imagine
CSS is more powerful than you imagine
Turkcell Staj Günlüğü - 1: Introduction to Oracle
Turkcell Staj Günlüğü - 1: Introduction to Oracle
Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments
Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments
Kahin'e yolculuk nasıl başlamalı?
Kahin'e yolculuk nasıl başlamalı?
Turkcell Staj Günlüğü - 3: Tablespaces, Datafiles and Control Files
Turkcell Staj Günlüğü - 3: Tablespaces, Datafiles and Control Files
Turkcell Staj Günlüğü - 4: Transaction Management
Turkcell Staj Günlüğü - 4: Transaction Management
Image formats - Which to use when
Image formats - Which to use when
Turkcell Staj Günlüğü - 5: Startup, Shutdown
Turkcell Staj Günlüğü - 5: Startup, Shutdown
Turkcell Staj Günlüğü - 6: Oracle Architecture
Turkcell Staj Günlüğü - 6: Oracle Architecture
ASP - Locales and Codepages
ASP - Locales and Codepages
Oracle performance analysis - Tracing and performance evaluation
Oracle performance analysis - Tracing and performance evaluation
Oracle performance analysis - Autotrace workshop
Oracle performance analysis - Autotrace workshop
Oracle performance analysis - Runstats workshop
Oracle performance analysis - Runstats workshop
Oracle performance analysis - Tkprof workshop
Oracle performance analysis - Tkprof workshop
Some favourite quotes
Some favourite quotes
Derin anlamlı sözler - Bunlar da Türkçe olanlar :)
Derin anlamlı sözler - Bunlar da Türkçe olanlar :)
Turkcell Staj Günlüğü - 7: Concurrency and Consistency
Turkcell Staj Günlüğü - 7: Concurrency and Consistency
"Kurtuluş"un hikayesi
"Kurtuluş"un hikayesi
Turkcell Staj Günlüğü - 8: Statement Processing and CBO
Turkcell Staj Günlüğü - 8: Statement Processing and CBO
When a transaction begins?
When a transaction begins?
Implicit vs. Explicit cursors - Performance analysis
Implicit vs. Explicit cursors - Performance analysis
Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals"
Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals"
Affect of gathering table stats to decision of CBO
Affect of gathering table stats to decision of CBO
Bind is bad :) - An interesting case of bind variables fails
Bind is bad :) - An interesting case of bind variables fails
When the explanation doesn't sound quite right...
When the explanation doesn't sound quite right...
Turkcell Staj Günlüğü - 10: Import, Export ve SQL Loader
Turkcell Staj Günlüğü - 10: Import, Export ve SQL Loader
Turkcell Staj Günlüğü - 11: Autonomous Transactions ve Dynamic SQL
Turkcell Staj Günlüğü - 11: Autonomous Transactions ve Dynamic SQL
Difference between db block gets and consistent gets
Difference between db block gets and consistent gets
Object-Oriented Features of Oracle - Part 1: Native Datatypes vs. Object Datatypes
Object-Oriented Features of Oracle - Part 1: Native Datatypes vs. Object Datatypes
Object-Oriented Features of Oracle - Part 2: Object Types and Collection types
Object-Oriented Features of Oracle - Part 2: Object Types and Collection types
Object-Oriented Features of Oracle - Part 3: Object Tables, Object Views and REFs
Object-Oriented Features of Oracle - Part 3: Object Tables, Object Views and REFs
Examining show_space
Examining show_space
Turkcell Staj Günlüğü - 12: Partitioning
Turkcell Staj Günlüğü - 12: Partitioning
Hello World!
Hello World!
Decode Demo #1
Decode Demo #1
Decode Demo #2
Decode Demo #2
Decode Demo #3
Decode Demo #3
Decode Demo #4
Decode Demo #4
Decode Function in Oracle SQL
Decode Function in Oracle SQL
Windows Source Codes
Windows Source Codes
Türkçe Karakterli Domain'lerin İç Yüzü
Türkçe Karakterli Domain'lerin İç Yüzü
Whence C? Why C? Whither C?
Whence C? Why C? Whither C?
Differences between C and C++
Differences between C and C++
Is C a Vitamin? Yes, of course...
Is C a Vitamin? Yes, of course...
Obfuscated C
Obfuscated C
Finding and Removing Loop on a Singly-Linked List
Finding and Removing Loop on a Singly-Linked List
Matematik Asla Yalan Söylemez!
Matematik Asla Yalan Söylemez!
eXTReMe Tracker
Turkcell Staj Günlüğü - 5: Startup, Shutdown
Category: SQL-Oracle-PL/SQL
Date: 13.07.2007 10:42:38


Turkcell'de 12 hafta sürecek olan stajımızın 2. haftasına başladık 9 Temmuz'da, bu makalede ise 9 ve 10 Temmuz günlerinde öğrendiklerimizi aktaracağım.

Bu hafta bazı ufak tefek sıkıntlardan dolayı, pazartesi ve salı günkü sunumlar, normal sunum programımızın dışında gerçekleşti. Tonguç bey bütün yoğunluğuna rağmen bizi yanlız bırakmayarak sohbet tadında güzel sunumlar yaptı, bir çok farklı konu üzerinde durduk. Concepts Guide'dan Chapter 6, 7, ve 12 üzerine biraz konuştuk.

Bu hafta benim açımdan çok yoğun geçtiği için blog entry'ler de biraz gecikti. Pazartesi sabahı biraz vaktim oldu entry hazırlamaya, fakat o da yarım kaldı. Salı günü ise laptopumun şarjını doldurmayı unuttuğum için, masaüstü bilgisayarda Oracle'ı kurcalamak zorunda kaldım :) Eğer bir aksilik olmazsa haftaya salı günü ufak bir performans sunumu yapacağım, "Imlicit vs. Explicit Cursors" hakkında, fakat program biraz sarktığı için belki ertelenir. Biraz ona bakayım dedim, öğleden sonra kendimi tkprof'un içinde bulmuştum :)

Tonguç bey'in sunumlarından aldığım bazı notları paylaşacağım bu makalede:

• Oracle instance'ı şu dört durumdan birinde olabilir: CLOSED, UNMOUNT, MOUNT, OPEN. CLOSED MODE, instance'ın kapalı olduğu moddur. Bu durumda sadece sysdba olarak bağlanarak instance açılabilir. Instance'ın açılabilmesi için, initialization parameter dosyası veya server parameter dosyası(SPFILE) okunur. Bu dosyalar instance ve database ile ilgili parametereleri içerir. UNMOUNT MODE, instance'ın açılmış, fakat database'in mount edilmemiş durumudur. SPFILE veya initialization parameter file okunur, fakat control dosyaları okunmaz. Control dosyalarımızla ilgili bir problemimiz varsa, instance'ımızı bu mode'da başlatıp problemimizi çözebiliriz. MOUNT MODE, instance açılmış, database mount edilmiş, fakat database açılmamış durumudur. Mount etmek, database'i o instance ile ilişkilendirmek olarak düşünülebilir. Oracle, database'e ait bilgiler (datafileların konumu, redolog dosyalarının konumu vs.) içeren control dosyasını okuyarak database'i mount eder. OPEN MODE, herşeyin açık, database'in ayakta olduğu mode'dur. Redolog dosyaları ve datafile'lar okunur. Database, bir önceki zamanda anormal bir şekilde sonlanmışsa instance recovery yapılır, undo tablespace edinilir.

Database'in her durumunu örneklemek için aşağıdaki kod parçasını çalıştırdım:

C:\oraclexe\app\oracle\admin\XE\udump>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Cum Tem 13 09:17:54 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> quit
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Produ
ction

Açık bir instance'da olduğum için önce kapattım. Şu anda instance'ımız CLOSED mode'unda. Şimdi login olmaya çalışalım:

C:\oraclexe\app\oracle\admin\XE\udump>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Cum Tem 13 09:20:14 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn tcell/tcell
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

Gördüğünüz gibi, normal kullanıcılar login olamıyor, çünkü database kapalı. Sadece sys, sysdba olarak login olabilir.

SQL> conn sys as sysdba
Enter password:
Connected to an idle instance.

Bağlandık ama idle instance yazıyor. Instance kapalı demek. Bu noktada herhangi bir tabloya erişmeye çalışalım.

SQL> select * from t;
select * from t
*
ERROR at line 1:
ORA-01034: ORACLE not available

Elbette erişemiyoruz. Şimdi NOMOUNT mode'a alalım:

SQL> startup nomount
ORACLE instance started.

Total System Global Area  146800640 bytes
Fixed Size                  1286220 bytes
Variable Size              62918580 bytes
Database Buffers           79691776 bytes
Redo Buffers                2904064 bytes

Instance açıldı, parametre dosyası okundu ve SGA allocate edildi. Şimdi database'imiz NOMOUNT Mode'da. Bu noktada bir tabloya erişmeye çalışalım:

SQL> select * from t;
select * from t
              *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only

Hımm, bak sen! Neymiş o fixed table/view'lar?

SQL> select object from v$access;

OBJECT
--------------------------------------------------------------------------------

GV$ACCESS
V$ACCESS
X$KGLDP
X$KGLLK
X$KGLOB
X$KSUSE

6 rows selected.

Sadece bu 6 sistem tablosu tanımlı. Şimdi database'imizi mount edelim, ve yine tabloya erişmeye çalışalım:

SQL> alter database mount;

Database altered.

SQL> select * from t;
select * from t
              *
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only

Yine aynı durumdayız. Database daha açık değil. User'lar da tanımlı değil. Yine sadece sysdba bağlanıp database'ı açabilir. Şimdi database'i açalım:

SQL> alter database open;

Database altered.

NAME
--------------------------------------------------
bilal

Sonunda okuduk tablomuzu :) Şu anda database tamamiyle ayakta. Şimdi bir kaç deneme daha yapalım, ama önce instance'ı yine kapatalım:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.

Total System Global Area  146800640 bytes
Fixed Size                  1286220 bytes
Variable Size              62918580 bytes
Database Buffers           79691776 bytes
Redo Buffers                2904064 bytes
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted

Unmount iken direk OPEN mode'a almaya çalıştık yemedi :) Peki bütün bu adımları yapmak zorunda mıyız db'yi açmak için? Tabiki hayır. Şimdi direk startup diyelim bakalım ne olacak:

SQL> shutdown immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  146800640 bytes
Fixed Size                  1286220 bytes
Variable Size              62918580 bytes
Database Buffers           79691776 bytes
Redo Buffers                2904064 bytes
Database mounted.
Database opened.
SQL>

Download Code

Gördüğünüz gibi tek tek bütün işlemleri bizim yerimize yaptı. Herhangi bir sorun yok parametre dosyasında veya control dosyasında. DB açıldı.

• Database kapama komutu 3 türlüdür: SHUTDOWN, SHUTDOWN IMMEDIATE ve SHUTDOWN ABORT. SHUTDOWN normal kapamadır. Mevcut transactionların sonlanmasını bekler, bu arada yenilerine izin verilmez. Hepsi sonlanınca kapanır. Bu özellikle çalışan sistemlerde pek kullanılmaz. SHUTDOWN IMMEDIATE, bütün aktif transaction'ları rollback yaparak hemen kapanır. Genelde bu kullanılır. SHUTDOWN ABORT ise bütün işlemleri anında iptal ederek direk kapatır. Elektriği çekmekle aynı şey denebilir :) Anormal bir kapanmadır. Bu şekilde kapatılırsa ilk açılışta instance recovery yapılır.

"Database and Instance Startup and Shutdown" Concepts Guide'dan 12. Chaper'ın konusu. Biraz daha ayrıntısını okumak isterseniz: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/startup.htm

OLAP: Online Analytic Processing demektir. OLAP sistemler raporlama sistemleridir örneğin. Bu sistemlerde uzun süreli büyük sorgular çalıştırılır. Optimizaysonu bu ihtiyaçlar göz önünde bulundurularak yapılır. Örneğin, su sistemlerde çok fazla blok okuma ve harddisk'te büyük sort işlemleri yapılacağı düşünülerek configüresyon ve hardware olarak ona göre optimize edilebilir

OLTP: Online Transaction Processing demektir. OLTP sistemler normal transaction bazında sistemlerdir. Bu sistemlerde kısa sürelik çok sorgu çalıştırılır. Bu sistemlerde aynı anda bir çok kullanıcı bağlı olup çok sayıda ufak sorgu çalıştırılacağı düşünülerek ona göre tune edilir.

• Bir SQL sorgusu sırayla şu adımlardan geçer: Parse, Bind, Execute ve Fetch. Sorgu önce parse edilir. Sonra varsa bind değerleri yerleştirilir. Sonra çalıştırılır ve sonuç fetch edilir. Parsing genelde çok maliyetli bir iştir. Sorgu ve etkilenen objeler analiz edilerek execution plan oluşturulur. Bu nedenle, aynı sorgudan yüzlerde kere çalışacaksa, yüzlerce kez bunu yapmamamak adına, Oracle her çalıştırılan sorguya bir hash değeri atar. Çalıştırılmak istenen sorgu ile daha önce çalıştırılan bir sorgunun hash değeri aynı ise, yani aynı sorgu bir kez daha çalıştırılacaksa tekrar parse edilmez. Böylece parse maliyetinden kurtulunur. Hash değeri SQL'in text'ine göre atandığı için, ufak harf farklılıkları, fazladan boşluk, büyük/küçük harf farkı gibi şeylerde sorgu aynı olsa bile farklı hash değerleri üretilir. Buna dikkat etmek gerekir. Bir de, bind variable kullanma konusunun öne burada kendini gösterir. Bu konunun ayrıntısına bind variable'lar ile ilgili sunumdan sonra gireceğiz.

Beni almış olduğum notların bir kısmı bu kadar. Bunun dışında bir çok farklı konulara da giriş yapıldı, fakat onlar ilerleyen sunumlarda ayrıntılarıyla gelecek, o yüzden burada yazmaya gerek görmedim. Bu makalede genelde startup-shutdown üzerinde durmuş olduk.

Herkese iyi çalışmalar diliyorum.

Related Topics

Comments

tsk
Name: Cengiz SERTKAYA
URL: URL not entered.
Date: 02.10.2007 19:49:30


Arkadasim cok tesekkurler.Karsilastigim problemin cözümünde cok yardimci oldu.Eline yüregine saglik.

Helal olsun
Name: ender onder
URL: URL not entered.
Date: 16.02.2009 20:21:37


sana helal olsun diyorum gerçekten o kadar çok yardımcı oldu ki bu yazıların İnşallah hakettiğin yerlere gelirsin..
Başarılar Diliyorum..

tebrikler
Name: yasin
URL: URL not entered.
Date: 09.07.2009 19:55:39


Yaptığın bu çalışmadan dolayı sana çok teşekkür ederim.Hayatının devamında sana başarılar dilerim...:)



© Copyright. All rights reserved. Designed by Bilal Hatipoğlu. RSS Feed  Valid W3C XHTML 1.0 Document  Valid W3C CSS Document