Veritabanı Yöneticilerinin İlk Sorguladığı Şeyler

Veritabanı Yöneticileri (DBAlar), genellikle iş günlerine veya sorun giderme oturumlarına başlarken, veritabanının sağlığı, performansı ve durumu hakkında hızlı bir genel bakış elde etmek için belirli sorgular çalıştırırlar. Buna sağlık kontrolü veya günlük rutin denir. Bu sorgular, potansiyel sorunları belirlemelerine, sistem kaynaklarını izlemelerine ve her şeyin sorunsuz çalıştığından emin olmalarına yardımcı olur. İşte DBAların her şeyden önce çalıştırdığı üç temel sorgu ve bunların neden kritik olduğuna dair açıklamalar:

## 1. Veritabanı Çalışma Süresi ve Durumunu Kontrol Etme

“`sql
SELECT
   instance_name,
   status,
   database_status,
   startup_time,
   host_name
FROM
   v$instance;
“`

**Çıktı Örneği:**

| INSTANCE_NAME | STATUS | DATABASE_STATUS | STARTUP_TIME       | HOST_NAME     |
|—————|——–|—————–|——————–|—————|
| ORCL          | OPEN   | ACTIVE          | 2023-10-01 08:00:00| db-server-01  |

**Neden Önemli?**

– **Veritabanı Erişilebilirliği:** Veritabanının çalışıp çalışmadığını doğrular.
– **Çalışma Süresi:** Veritabanının son başlatıldığından bu yana ne kadar süredir çalıştığını gösterir, bu da beklenmeyen yeniden başlatmaları tespit etmeye yardımcı olabilir.
– **Durum:** Veritabanının sağlıklı bir durumda olup olmadığını gösterir (örneğin, ‘OPEN’, ‘MOUNTED’ veya ‘DOWN’).

## 2. Aktif Oturumları ve Kaynak Kullanımını İzleme

“`sql
SELECT
   sid,
   serial#,
   username,
   status,
   program,
   sql_id,
   event,
   wait_time,
   seconds_in_wait
FROM
   v$session
WHERE
   status = ‘ACTIVE’;
“`

**Çıktı Örneği:**

| SID | SERIAL# | USERNAME | STATUS | PROGRAM     | SQL_ID    | EVENT                  | WAIT_TIME | SECONDS_IN_WAIT |
|—–|———|———-|——–|————-|———–|————————|———–|—————–|
| 123 | 45678   | APP_USER | ACTIVE | sqlplus.exe | abc123xyz | db file sequential read| 0         | 5               |

**Neden Önemli?**

– **Performans İzleme:** Aktif oturumları ve ne yaptıklarını belirler, uzun süren sorguları veya kaynak darboğazlarını tespit etmeye yardımcı olur.
– **Sorun Giderme:** Belirli olayları bekleyen oturumları ortaya çıkarır (örneğin, G/Ç, kilitler), bu da performans sorunlarını gösterebilir.
– **Kaynak Kullanımı:** Kimin bağlı olduğunu ve hangi kaynakları tükettiğini anlamaya yardımcı olur.

## 3. Tablo Alanı Kullanımını Kontrol Etme

“`sql
SELECT
   tablespace_name,
   file_name,
   bytes / 1024 / 1024 AS size_mb,
   (bytes – (SELECT SUM(bytes) FROM dba_free_space WHERE file_id = file_id)) / 1024 / 1024 AS used_mb,
   (bytes – (SELECT SUM(bytes) FROM dba_free_space WHERE file_id = file_id)) / bytes * 100 AS pct_used
FROM
   dba_data_files;
“`

**Çıktı Örneği:**

| TABLESPACE_NAME | FILE_NAME           | SIZE_MB | USED_MB | PCT_USED |
|—————–|———————|———|———|———-|
| USERS           | /u01/oradata/users01| 1024    | 800     | 78.12    |
| SYSTEM          | /u01/oradata/system01| 512     | 450     | 87.89    |

**Neden Önemli?**

– **Depolama İzleme:** Her tablo alanında ne kadar alan kullanıldığını ve ne kadarının kullanılabilir olduğunu takip eder, bu da alan tükenmesi hatalarını önlemeye yardımcı olur.
– **Kapasite Planlama:** Dolmak üzere olan tablo alanlarını belirler, bu da DBAların proaktif olarak daha fazla alan eklemesine olanak tanır.
– **Performans Etkisi:** Dolu tablo alanları performans düşüşüne neden olabilir, bu nedenle kullanımı izlemek kritiktir.

## 4. Engelleme Kilitlerini Kontrol Etme

“`sql
SELECT
   blocking_session,
   sid,
   serial#,
   wait_class,
   event,
   seconds_in_wait
FROM
   v$session
WHERE
   blocking_session IS NOT NULL;
“`

**Çıktı Örneği:**

| BLOCKING_SESSION | SID | SERIAL# | WAIT_CLASS   | EVENT                     | SECONDS_IN_WAIT |
|——————|—–|———|————–|—————————|—————–|
| 123              | 456 | 78901   | Application  | enq: TX – row lock contention | 120             |

**Neden Önemli?**

– **Kilitlenme Tespiti:** Diğer oturumları engelleyen oturumları belirler, bu da uygulama zaman aşımlarına veya hatalara neden olabilir.
– **Performans Darboğazları:** Veritabanını yavaşlatan çekişme sorunlarını çözmeye yardımcı olur.

## Bu Sorgular Neden DBAlar İçin Kritiktir?

1. **Proaktif İzleme:** Bu sorgular, veritabanının sağlığına ilişkin bir anlık görüntü sağlar, bu da DBAların sorunları büyümeden önce yakalamasına olanak tanır.
2. **Sorun Giderme:** Performans sorunlarının, kaynak çekişmesinin veya depolama sorunlarının kök nedenini hızlı bir şekilde belirlemeye yardımcı olurlar.
3. **Operasyonel Verimlilik:** Bu sorguları düzenli olarak çalıştırarak, DBAlar veritabanının en iyi şekilde çalıştığından emin olabilir ve beklenmeyen kesintilerden kaçınabilir.

Bu sorgular, bir DBA’nın araç setinin temelini oluşturur ve genellikle sürekli denetim için otomatikleştirilir veya izleme araçlarına entegre edilir.