dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
SessionArchitecture & Connectivity

Database Session (Veritabanı Oturumu & Durum Kapsamı)

Başarılı kimlik doğrulamasından sonra oluşturulan; GUC parametreleri, hazırlanan ifadeleri (prepared statements), oturum kilitlerini ve geçici tabloları bağlantı kesilene veya DISCARD ALL çağrılana kadar saklayan mantıksal oturum durumudur.

Derin Mimari İncelemesi

Oturum, bağlantı ile transaction arasındaki mantıksal köprüdür. İstemci bir transaction'ı tamamlasa (COMMIT / ROLLBACK) dahi oturum düzeyinde belirlenen değişkenler (SET timezone, SET search_path), oturum kilitleri (pg_advisory_lock) ve geçici nesneler oturum kapanana kadar bellekte kalır.

Transaction pooling kullanan havuzlayıcılarda (PgBouncer transaction mode), sunucu bağlantısı transaction bitiminde serbest bırakıldığı için oturum durumu bir sonraki istemciye sızabilir. Bu nedenle uygulama kodunda oturum düzeyinde SET yerine transaction sınırında otomatik sıfırlanan SET LOCAL veya SET ... FOR TRANSACTION kullanılmalıdır.

İPUCU
Mimari İnceleme: Oturum durumları ve transaction sınırlarının havuzlamadaki etkileri için inceleyin: PostgreSQL Bağlantı Yönetimi: Bağlantı Yaşam Döngüsü, Kapasite ve Havuzlama.

Üretim Gözlem ve Tanı Sorguları

PostgreSQL
SELECT pid, usename, client_addr, state, backend_start, state_change FROM pg_stat_activity WHERE backend_type = 'client backend';
MySQL
SELECT id, user, host, db, command, time, state FROM information_schema.processlist;