man/data_processing
man · Veri İşleme

$ db_deadlock

Bölüm 1 · Veri İşleme

veritabanı ortamındaki kilitlenmeleri (deadlock) ve zaman aşımına uğramış kilit isteklerini tespit edip iptal eden yardımcı program.

SÖZDİZİMİ

db_deadlock [-Vv] [-a e | m | n | o | w | y] [-h home] [-L file] [-t sec.usec]

AÇIKLAMA

db_deadlock aracı, veritabanı ortamı kilit bölgesini tarar ve bir kilitlenme (deadlock) veya zaman aşımına uğramış bir kilit isteği tespit ettiği her seferde ilgili kilit isteğini iptal eder (abort). Varsayılan olarak, bir kilitlenme durumunda iptal edilmek üzere rastgele bir kilit isteği seçilir.

Bir veritabanına erişen birden fazla iş parçacığı (thread) veya süreç (process) olduğunda ve bunlardan en az biri veritabanını değiştirdiğinde, bu araç bir arka plan sunucusu (daemon) olarak çalıştırılmalı veya temel Berkeley DB kilitlenme tespit arayüzleri başka bir şekilde çağrılmalıdır.

SEÇENEKLER

Aşağıdaki seçenekler mevcuttur:

  • -a: Bir kilitlenme tespit edildiğinde, ilgili kilitleyiciyi (locker) iptal eder:

    • m: En fazla sayıda kilide sahip olanı
    • n: En az sayıda kilide sahip olanı
    • o: En eski kilitleyici kimliğine (locker ID) sahip olanı
    • w: En az sayıda yazma kilidine sahip olanı
    • y: En yeni kilitleyici kimliğine sahip olanı

    Kilit veya işlem (transaction) zaman aşımları belirtildiğinde:

    • e: Zaman aşımına uğramış tüm kilit isteklerini iptal eder
  • -h home: Veritabanı ortamı için bir ana dizin (home directory) belirtir; varsayılan olarak geçerli çalışma dizini kullanılır.

  • -L file: db_deadlock aracının yürütülmesini belirtilen dosyaya aşağıdaki biçimde kaydeder; burada ### süreç kimliğidir (process ID) ve tarih aracın başlatıldığı zamandır:

    db_deadlock: ### Wed Jun 15 01:23:45 EDT 1995

    db_deadlock aracı sorunsuz bir şekilde çıkarsa bu dosya kaldırılacaktır.

  • -t sec.usec: Bir sürecin kilit için beklemeye zorlanıp zorlanmadığını görmek amacıyla her sec saniye artı usec mikrosaniyede bir veritabanı ortamını kontrol eder; zorlanan bir süreç varsa, veritabanı ortamı kilit yapılarını inceler.

  • -V: Kütüphane sürüm numarasını standart çıktıya yazar ve çıkar.

  • -v: Ayrıntılı (verbose) modda çalışır, dedektör her çalıştığında mesajlar üretir.

[!NOTE] Eğer -t seçeneği belirtilmemişse, db_deadlock bir kez çalışacak ve çıkacaktır.

Kilitlenme Tespiti ve Ortam Yönetimi

db_deadlock aracı, bir Berkeley DB ortamı kullanır (-h seçeneği için açıklandığı gibi, DB_HOME ortam değişkeniyle veya araç bir Berkeley DB ortamı içeren bir dizinde çalıştırıldığı için). Bir Berkeley DB ortamı kullanırken ortamın bozulmasını önlemek için, db_deadlock aracına her zaman ortamdan ayrılma (detach) ve sorunsuz bir şekilde çıkma fırsatı verilmelidir. db_deadlock'ın tüm ortam kaynaklarını serbest bırakmasını ve temiz bir şekilde çıkmasını sağlamak için ona bir kesme sinyali (SIGINT) gönderin.

db_deadlock aracı, Berkeley DB paylaşılan bellek bölgeleri (shared memory regions) zaten mevcut değilse bunları oluşturmaya çalışmaz. Bölgeyi oluşturan uygulama önce başlatılmalı, ardından bölge oluşturulduktan sonra db_deadlock aracı başlatılmalıdır.

DB_ENV->lock_detect metodu, db_deadlock aracı tarafından kullanılan temel metottur. DB_ENV->lock_detect metodunun bir IEEE/ANSI Std 1003.1 (POSIX) ortamında kullanımına dair bir örnek için db_deadlock aracının kaynak koduna bakın.

ÇIKIŞ DURUMU

db_deadlock aracı aşağıdaki çıkış durumlarını döndürerek çıkar:

  • 0: Başarı durumu.
  • >0: Bir hata oluştu.

ORTAM

  • DB_HOME: Eğer -h seçeneği belirtilmemişse ve DB_HOME ortam değişkeni ayarlanmışsa, DB_ENV->open içinde açıklandığı gibi veritabanı dizininin yolu olarak kullanılır.

AYRICA BAKINIZ

db_archive(1), db_checkpoint(1), db_dump(1), db_load(1), db_printlog(1), db_recover(1), db_stat(1), db_upgrade(1), db_verify(1)