TürkDB Kullanım Kılavuzu TürkDB kullanım kılavuzu — buradaki akışlar hedeflenen ürün deneyimini, kapsamı ve doğrulama noktalarını anlatır.

🇹🇷 Veri yerleşimi hedefi 🐘 PostgreSQL 16 🏠 ClickHouse 24 🍃 MongoDB 7 🐬 MySQL 8 🔴 Redis 7 📋 KVKK değerlendirme hedefi

🔗 Uygulamanızı Bağlayın

TürkDB’nin hedef bağlantı deneyimi, uygulamanın kullanabileceği standart bir DSN/bağlantı bilgisini açıkça göstermektir. Pilot sırasında bu bilginin TLS, izin listesi ve uygulama ayarlarıyla birlikte doğrulanması gerekir.

Bağlantı bilgisini nereden alırsınız?

1

Web UI

Cluster listesi → Cluster adına tıklayın → Bağlantı sekmesi → DSN'yi kopyala.

2

CLI

turkdb cluster get my-cluster --output connection-string
3

REST API

GET https://api.turkdb.io/v1/clusters/{id}/connection
Authorization: Bearer <api-key>

Bağlantı formatları

VeritabanıDSN formatı
PostgreSQLpostgresql://app:<şifre>@<host>:5432/postgres?sslmode=require
MySQLmysql://app:<şifre>@<host>:3306/app?tls=true
MongoDBmongodb://app:<şifre>@<host>:27017/app?tls=true
ClickHouseclickhouse://app:<şifre>@<host>:8443/default?secure=true
Redisrediss://default:<şifre>@<host>:6380
⚠️

Tüm bağlantılar TLS şifreli olarak kurulur. sslmode=disable veya TLS'yi devre dışı bırakan ayarlar reddedilir.

Şifre değişirse ne olur?

Cluster detayında Erişim Yönetimi sekmesinden şifreyi sıfırlayabilirsiniz. Yeni şifreyi uygulamanızın ortam değişkenlerine yazmanız yeterlidir.

📊 Cluster Durumları

bekliyor→ hazırlanıyor→ hazır⇄ duraklatıldı
hazırlanıyor→ hata   hazır→ siliniyor→ (30 gün) kalıcı silindi
DurumAçıklamaYapmanız gereken
bekliyorSıraya alındıBekleyin (~saniyeler)
hazırlanıyorKurulum devam ediyorBekleyin (~2 dakika). E-posta bildirimi gelecek.
hazırCluster çalışıyor, bağlanabilirDSN'yi alıp uygulamanıza ekleyin
duraklatıldıÖdeme sorunu veya manuel durdurmaFaturalama sayfasını kontrol edin
hataKurulum başarısız[email protected] — otomatik bildirim de gönderildi
siliniyorSilinme sürecinde, KVKK 30 günlük beklemeBu süre içinde geri alabilirsiniz: destek iletişim kurun

🌐 Web UI

app.turkdb.io — Cluster oluşturma, izleme, yedekleme ve hesap yönetimi için tek ekran.

➕

Cluster Oluştur / Sil

Tip, boyut ve yaşam döngüsü akışının nasıl çalışması gerektiğini pilotta doğrulayın.

🔗

Bağlantı Bilgisi

DSN üretimi ve güvenli paylaşım davranışını ürün akışının temel parçası olarak değerlendirin.

📈

Metrikler

CPU, bağlantı sayısı, disk, sorgu hızı.

💾

Yedekleme

Manuel yedek + zamanlama + geri yükleme.

🚚

Migration Wizard

Başka bir kaynaktan veriyi görsel adımlarla taşıyın.

📋

Audit Log

Tüm işlemlerin izlenebilir kaydı.

🛡️

KVKK Uyum

Silme kuyruğu, veri export, ihlal takibi.

💳

Faturalama

Plan, kullanım özeti, fatura geçmişi.

⌨️ CLI — turkdb

Web UI'deki her işlemi terminal üzerinden yapan tek binary. Scripting ve CI/CD için idealdir.

Kurulum

Terminal
# macOS / Linux
curl -sSfL https://get.turkdb.io | sh

# Shell tamamlaması (opsiyonel)
turkdb completion bash > /etc/bash_completion.d/turkdb   # bash
turkdb completion zsh  > "${fpath[1]}/_turkdb"            # zsh

Giriş

# Tarayıcı açar, hesabınızla giriş yapın
turkdb login

# CI/CD için API key ile
turkdb login --api-key turkdb_xxxxxxxxxxxx
# Cluster oluştur — tier ile boyut seçin (turkdb cluster tiers ile listeleyin)
turkdb cluster create \
  --name my-pg --type postgres --version 16 \
  --tier p9200-h-4 --region ist1

# Yüksek erişilebilirlik ile
turkdb cluster create \
  --name my-pg-ha --type postgres \
  --tier p9200-h-8 --ha

# Listele / detay / DSN
turkdb cluster list
turkdb cluster get    my-pg
turkdb cluster get    my-pg --output connection-string

# Kullanılabilir makine boyutları
turkdb cluster tiers

# HA cluster düğüm durumu
turkdb cluster ha-status my-pg

# Etiket ekle (ortam, takım vb.)
turkdb cluster tag my-pg --set env=prod --set team=backend

# Sil (KVKK gereği 30 gün bekleme başlar)
turkdb cluster delete my-pg --confirm
# Manuel yedek al
turkdb backup create my-pg

# Yedek listesi
turkdb backup list my-pg

# Otomatik yedekleme zamanlaması (cron)
turkdb backup schedule set my-pg \
  --cron "0 3 * * *" --retention-days 14

turkdb backup schedule get my-pg
ℹ️

Yedekler plan sürenize göre otomatik saklanır. Seçtiğiniz makine boyutu dahilindeki depolamada yer tutar.

ℹ️

PITR yalnızca PostgreSQL ve MySQL için desteklenir.

# PITR'ı etkinleştir (WAL/binlog arşivleme başlar)
turkdb cluster pitr enable  my-pg --retention 168  # 168 saat = 7 gün

# Kurtarma penceresini göster
turkdb cluster pitr window  my-pg

# Belirli bir noktaya geri yükle → yeni cluster açılır
turkdb cluster pitr restore my-pg \
  --to   "2026-05-20T14:30:00Z" \
  --name my-pg-recovered

# Restore geçmişi
turkdb cluster pitr history my-pg

# PITR'ı kapat
turkdb cluster pitr disable my-pg
# Mevcut cluster'dan yeni cluster aç (altyapı kopyası — veri taşınmaz)
turkdb cluster fork my-pg --name my-pg-staging

# Farklı boyut ve bölge ile
turkdb cluster fork my-pg \
  --name   my-pg-test \
  --tier   p9200-h-2

# Konfigürasyon parametrelerini de kopyala
turkdb cluster fork my-pg \
  --name           my-pg-copy \
  --include-config

# Fork tamamlanana kadar bekle
turkdb cluster fork my-pg --name my-pg-preview --wait
💡

Fork, CI/CD pipeline'larında geçici test ortamı açmak için idealdir. Testten sonra turkdb cluster delete ile kaldırın.

# DB kullanıcılarını listele
turkdb cluster users list my-pg

# Yeni kullanıcı oluştur (şifre interaktif sorulur)
turkdb cluster users create my-pg \
  --username appuser \
  --role     readwrite

# Salt okunur kullanıcı
turkdb cluster users create my-pg \
  --username reporter \
  --role     readonly

# Kullanıcı sil
turkdb cluster users delete my-pg <user-id>
ℹ️

Roller: readonly (yalnızca okuma), readwrite (okuma + yazma), admin (tam yetki). Her servis için ayrı kullanıcı açmanızı öneririz.

# İzinli IP'leri listele
turkdb cluster allowlist list my-pg

# IP veya CIDR bloğu ekle
turkdb cluster allowlist add my-pg 203.0.113.0/24 \
  --desc "Ofis ağı"

# Kural kaldır
turkdb cluster allowlist remove my-pg <rule-id>

# Tüm kuralları temizle
turkdb cluster allowlist clear my-pg --force
# Son 100 log satırı
turkdb cluster logs my-pg

# Son N satır
turkdb cluster logs my-pg --tail 500

# Canlı log akışı (Ctrl+C ile çıkış)
turkdb cluster logs my-pg --follow
# Webhook oluştur — cluster olaylarında sizin URL'nize POST gönderilir
turkdb webhook create \
  --url    https://hooks.sirket.com/turkdb \
  --secret gizli-anahtar

# Belirli olaylar için (yoksa tüm olaylar)
turkdb webhook create \
  --url    https://hooks.sirket.com/turkdb \
  --events cluster.ready,cluster.failed

# Listele / test / sil
turkdb webhook list
turkdb webhook test       <webhook-id>
turkdb webhook deliveries <webhook-id>
turkdb webhook delete     <webhook-id>
ℹ️

Her istek X-TurkDB-Signature başlığı ile HMAC-SHA256 imzalanır. Kendi sunucunuzda imzayı doğrulayarak sahte istekleri ayırt edebilirsiniz.

# KVKK uyum özeti
turkdb compliance summary

# Bekleyen veri silme kuyruğu (KVKK Md. 7)
turkdb compliance deletion-status

# Veri erişim talebi (KVKK Md. 11)
turkdb compliance export request
turkdb compliance export list
turkdb compliance export get <export-id>

# Veri ihlali kaydı — 72 saat Kurul bildirim geri sayımı başlar (Md. 12)
turkdb compliance breach report \
  --title       "Yetkisiz Erişim" \
  --description "Detaylı açıklama..." \
  --severity    high \
  --affected    150
turkdb compliance breach list
turkdb compliance breach close <breach-id>
# Plan ve tüm seçenekler
turkdb billing plan

# Bu dönemin kullanımı ve tahmini fatura
turkdb billing usage

# Fatura geçmişi
turkdb billing invoices
turkdb billing get <invoice-id>
# Ekip üyelerini listele
turkdb member list

# Yeni üye davet et
turkdb member invite [email protected] --role admin

# Rolü değiştir
turkdb member role <member-id> readonly

# Üyeyi kaldır
turkdb member remove <member-id>

🔗 REST API

Tüm işlemler REST API üzerinden de yapılabilir. CI/CD scriptleri, özel yönetim araçları ve üçüncü taraf entegrasyonlar için kullanın.

Base URL: https://api.turkdb.io/v1
Auth: Authorization: Bearer <api-key>

# Cluster oluştur
curl -s -X POST https://api.turkdb.io/v1/clusters \
  -H "Authorization: Bearer turkdb_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"my-pg","type":"postgresql","tier":"p9200-h-4","region":"ist1","engine_profile":"geo-postgis","enabled_capabilities":["postgis"]}'

# Bağlantı bilgisini al
curl -s https://api.turkdb.io/v1/clusters/{id}/connection \
  -H "Authorization: Bearer turkdb_xxx"

Temel Endpoint'ler

GET
/clusters
Cluster'larınızı listeler
POST
/clusters
Yeni cluster oluşturur
GET
/clusters/{id}
Cluster detayı ve durumu
GET
/clusters/{id}/connection
DSN ve bağlantı bilgileri
DELETE
/clusters/{id}
Cluster siler
POST
/clusters/{id}/fork
Cluster'ı klonlar (altyapı kopyası)
GET
/clusters/{id}/capability-changes
Motor capability taleplerini listeler
POST
/clusters/{id}/capability-changes
PostGIS, ClickHouse materialized view vb. capability talebi oluşturur
Body: {"capability":"postgis","target_state":"enable"}
POST
/clusters/{id}/capability-changes/{change_id}/approve
Preflight geçmişse talebi onaylar
POST
/clusters/{id}/capability-changes/{change_id}/execute
Destek onaylı değişikliği agent komut kuyruğuna alır
POST
/clusters/{id}/capability-changes/{change_id}/verify
Smoke test kanıtıyla capability sonucunu doğrular
GET
/clusters/{id}/ha-status
HA düğüm durumu ve quorum bilgisi
POST
/clusters/{id}/backups
Manuel yedek başlatır
GET
/clusters/{id}/backup-schedule
Otomatik yedekleme zamanlaması
POST
/clusters/{id}/backup-schedule
Yedekleme zamanlaması oluşturur/günceller
Body: {"cron_expression":"0 3 * * *","retention_days":14}
GET
/clusters/{id}/pitr-window
PITR kurtarma penceresi (en erken–en geç)
POST
/clusters/{id}/pitr-restore
Belirli zamana geri yükleme başlatır
GET
/clusters/{id}/metrics
Anlık CPU, bağlantı, disk metrikleri
GET
/clusters/{id}/logs
Son log satırları (?tail=100)
GET
/clusters/{id}/db-users
DB kullanıcı listesi
POST
/clusters/{id}/db-users
DB kullanıcısı oluşturur
GET
/clusters/{id}/allowlist
IP izin listesi
POST
/clusters/{id}/allowlist
IP/CIDR kuralı ekler
POST
/clusters/{id}/migrations
Veri taşıma işi başlatır
GET
/clusters/{id}/migrations/{mid}
Migration ilerleme durumu
GET
/tiers
Kullanılabilir makine boyutları ve fiyatları
POST
/api-keys
API key oluşturur
DELETE
/api-keys/{id}
API key iptal eder

Tam OpenAPI 3.1 spec: api.turkdb.io/openapi.yaml

🏗️ Terraform Provider

Infrastructure as Code ile cluster'larınızı Terraform state'inde yönetin.

# versions.tf
terraform {
  required_providers {
    turkdb = {
      source  = "turkdb/turkdb"
      version = "~> 0.4"
    }
  }
}

provider "turkdb" {
  api_key = var.turkdb_api_key
}

# PostgreSQL cluster
resource "turkdb_cluster" "main" {
  name            = "my-app-db"
  type            = "postgresql"
  provider_id     = "plusclouds"
  machine_tier_id = "p9200-h-4"
  region          = "tr-ist-1"

  postgresql_version = "16"
  storage_gb         = 50
  replicas           = 2
  engine_profile     = "geo-postgis"
  enabled_capabilities = ["postgis"]

  tags = {
    env  = "production"
    team = "backend"
  }
}

data "turkdb_cluster_connection" "main" {
  cluster_id = turkdb_cluster.main.id
}

output "dsn" {
  value     = data.turkdb_cluster_connection.main.dsn
  sensitive = true
}
ℹ️

Terraform provider'da genel kaynak adı turkdb_cluster'dır. Hassas DSN değerini state'e yazmak yerine turkdb_cluster_connection data source'u ile okuyun ve çıktıyı sensitive işaretleyin.

☸️ Kubernetes Operator

Kubernetes kullanıyorsanız TürkDB cluster'ını bir K8s kaynağı gibi yönetin. Bağlantı bilgisi otomatik olarak bir Secret'a yazılır — uygulamanız doğrudan bu Secret'ı okuyabilir.

# Cluster tanımı (GitOps'a commit edebilirsiniz)
apiVersion: database.turkdb.io/v1alpha1
kind: PostgreSQLCluster
metadata:
  name: my-app-db
  namespace: production
spec:
  forProvider:
    tier:   p9200-h-4
    region: ist1
    backup:
      enabled:       true
      retentionDays: 14
  writeConnectionSecretToRef:
    namespace: production
    name:      my-app-db-conn   # bu Secret otomatik doldurulur
💡

Secret içinde host, port, username, password ve dsn alanları hazır gelir. Deployment'ınızda envFrom ile doğrudan kullanabilirsiniz.

🗄️ Hangi Veritabanını Seçmeli?

VeritabanıNe için?PITRHA
PostgreSQL 16Genel amaçlı, OLTP, transactional uygulamalar, JSON/JSONB, full-text✅ WAL✅ Patroni
MySQL 8Web uygulamaları, CMS, e-ticaret, mevcut MySQL altyapısı✅ Binlog✅ Group Replication
MongoDB 7Esnek şema, döküman modeli, hızlı prototip, yarı-yapılandırılmış veri❌✅ Replica Set
ClickHouse 24OLAP, büyük hacimli analitik, log analizi, raporlama❌✅ Shard/Replica
Redis 7Önbellek, oturum yönetimi, mesaj kuyruğu, düşük gecikmeli geçici veri❌Hedef: Sentinel

🧩 Motor Profilleri ve Sonradan Açılan Özellikler

Her motor özelliği aynı riskte değildir. Bu yüzden TürkDB’de özellikler ikiye ayrılır: cluster açılışında seçilen motor profilleri ve mevcut cluster üstünde preflight/onay/doğrulama ile açılan capability değişiklikleri.

Cluster açılışında seçilen profiller

MotorProfilNe sağlar?Neden baştan?
PostgreSQLstandard, geo-postgisStandart CNPG veya PostGIS uyumlu imaj + init extensionPostGIS binary/imaj seçimi kurulumu etkiler.
MySQLstandard-oltp, ha-pitr, migration-cdc-readyPercona MySQL, HA/PITR ve ROW binlog hazırlığıReplication, binlog ve PITR politikası sonradan riskli değişir.
MongoDBreplica-set, shardedReplica set veya config server + shard + mongos topolojisiSharding basit toggle değil, topoloji kararıdır.
ClickHousesingle-node-analytics, replicated-analytics, sharded-warehouseTek node, Keeper destekli replica veya shard/replica düzeniVeri dağılımı ve Keeper topolojisi baştan tasarlanmalıdır.
Rediscache, persistent-cache, sentinel-ha, redis-stackEphemeral cache, AOF/RDB, Sentinel HA veya Redis Stack modülleriKalıcı format, quorum ve imaj seçimi çalışma biçimini değiştirir.

Mevcut cluster üstünde yapılabilecekler

MotorCapabilityOperasyon sınıfıAkış
PostgreSQLPostGIS, CDC/logical replication, bazı parametrelerimage_migration veya rolling_restartPostGIS için fresh backup, destek onayı, agent execute ve geometry smoke test gerekir.
MySQLSlow query log, max connections, binlog CDC, audit/performance eklentilerionline, rolling_restart veya image_migrationPercona apply ve binlog uyumluluğu preflight ile kontrol edilir.
MongoDBTTL/text/2dsphere index, profiler; sharding migrationonline veya new_cluster_migrationIndex build etkisi gösterilir; sharding için yeni cluster/migration planı gerekir.
ClickHouseMaterialized view, dictionary, TTL, quota/settingsonlineMaterialized view talebi DDL detaylarıyla alınır, agent Job çalıştırır ve row-count smoke test ister.
RedisEviction policy, maxmemory, persistence, Sentinel, Redis Stackonline, rolling_restart, image_migration veya topology_migrationVeri kaybı ve restart etkisi plan ekranında açık gösterilir.
ℹ️

engine_profile motor profilini, enabled_capabilities ise profil veya onaylı sonradan değişikliklerle aktif hale gelen özellikleri gösterir. Web UI, REST API ve Terraform provider aynı alanları kullanır.

💡

PostGIS ihtiyacı baştan biliniyorsa yeni PostgreSQL cluster’ı geo-postgis profiliyle açmak en temiz yoldur. Mevcut cluster’da açılacaksa backup, onay ve smoke test adımları tamamlanmadan capability tamamlandı sayılmaz.

⚡ Yüksek Erişilebilirlik (HA)

HA seçeneğinde asıl değer, primary düşüşü olduğunda replikanın devralma süresi, uygulama reconnect davranışı ve veri kaybı riskinin açıkça ölçülebilmesidir. Üretim kapsamı bu ölçümler ve seçilen paketle birlikte netleştirilir.

🐘 PostgreSQL
Patroni — otomatik leader seçimi
1 primary + 2 standby
🐬 MySQL
InnoDB Group Replication
En az 3 üye (tek sayı)
🍃 MongoDB
Replica Set
1 primary + 2 secondary
🔴 Redis
Redis Sentinel
3 sentinel + N replica
ℹ️

HA, cluster oluşturma sırasında --ha flag'i ile veya Web UI'den etkinleştirilir. HA cluster'ları standart cluster'lardan daha fazla kaynak kullanır — fiyat etkilenir.

💰 Makine Boyutları ve Fiyatlandırma

TürkDB, PlusClouds Leo One Hybrid Value serisi üzerinde çalışır. Uygulamanızın ihtiyacına göre doğru boyutu seçin.

TiervCPURAMDahili DiskAylık (~USD)
p9200-h-121 GB10 GB$3
p9200-h-222 GB20 GB$6
p9200-h-424 GB40 GB$12
p9200-h-848 GB80 GB$24
p9200-h-16816 GB160 GB$48
p9200-h-32832 GB320 GB$96
p9200-h-64864 GB640 GB$192

Tüm tier listesi için: turkdb cluster tiers veya app.turkdb.io/pricing

💡

Disk dahili depolamayı aşarsa GB başına ek ücret uygulanır. Web UI'den mevcut kullanımı ve tahmini faturayı görebilirsiniz.

💾 Yedekleme & Point-in-Time Recovery

Otomatik yedekleme

Tüm cluster'lar günlük otomatik yedek alır. Varsayılan saklama süresi 7 gündür; retention_days ile 365 güne kadar artırabilirsiniz.

Point-in-Time Recovery (PITR)

PostgreSQL ve MySQL cluster'larında PITR etkinleştirirseniz sürekli WAL/binlog arşivleme başlar. Yanlış silinen veriler veya başarısız migration sonrası saniye hassasiyetiyle geri dönebilirsiniz.

1

PITR etkinleştirin

Web UI → Cluster → Yedekleme → PITR Aç. Ya da: turkdb cluster pitr enable my-pg

2

Kurtarma zamanını belirleyin

Örnek: migration hatası öncesi 5 dakika → 2026-05-20T14:25:00Z

3

Restore başlatın

turkdb cluster pitr restore my-pg --to "2026-05-20T14:25:00Z" --name my-pg-recovered

4

Verileri doğrulayın, sonra DSN'yi değiştirin

Orijinal cluster çalışmaya devam eder. Doğrulama tamamlanınca uygulamanızı yeni cluster'a yönlendirin.

ℹ️

Restore her zaman yeni bir cluster oluşturur — orijinal cluster'a dokunulmaz.

🍴 Cluster Fork

Var olan bir cluster'ın altyapı yapılandırmasını kopyalayarak yeni bir cluster açar. Veri taşınmaz — yalnızca aynı tip, versiyon ve parametreler kopyalanır.

📌 Ne zaman kullanılır?
  • Üretim ortamını taklit eden staging ortamı açmak
  • CI/CD'de pull request başına geçici test DB'si
  • Küçük boyutlu geliştirme ortamı (farklı tier ile)
# Staging: aynı konfigürasyon, daha küçük boyut
turkdb cluster fork prod-db \
  --name staging-db --tier p9200-h-2

# Veriyle birlikte kopyalamak için önce fork, sonra migration başlatın

🚚 Veri Taşıma

Başka bir kaynaktan TürkDB'ye veri taşımak için Web UI'deki Migration Wizard'ı kullanın. Arka planda çalışan bir iş olarak başlar — bağlantınızı kesmenize gerek yok.

Kaynak TipiAçıklama
Mevcut DBHost/port/şifre ile başka bir DB'ye bağlanır, veriyi çeker
Dosya YüklemeSQL dump veya CSV dosyası yükleyin
Canlı CDCSürekli değişim yakalama — sıfır kesinti geçiş için
Bulut SağlayıcıAWS RDS, Google Cloud SQL, Azure Database'den doğrudan
Kaynak MotorHedef
PostgreSQLTürkDB PostgreSQL
MySQLTürkDB MySQL
MongoDBTürkDB MongoDB
ClickHouseTürkDB ClickHouse
CSV / SQL dumpHerhangi bir TürkDB cluster
⚠️

Kaynak DB şifreniz sunucumuza gönderilir ancak veritabanımıza kaydedilmez. Migration tamamlandıktan sonra tüm kimlik bilgileri silinir.

👤 Veritabanı Kullanıcıları

Her cluster'a birden fazla veritabanı kullanıcısı ekleyebilirsiniz. Her servis veya takım için ayrı kullanıcı oluşturmak güvenlik açısından önerilir.

RolYetkiKullanım
readonlyYalnızca SELECTRaporlama, analiz araçları
readwriteSELECT + INSERT/UPDATE/DELETEUygulama servisleri
adminTam yetki (DDL dahil)Migration araçları, yönetim

🛡️ IP İzin Listesi

Cluster'ınıza bağlanabilecek IP adreslerini veya CIDR bloklarını kısıtlayabilirsiniz. Yalnızca tanımlı kaynaklardan erişim gelir; diğerleri reddedilir.

📌 Yaygın kullanım senaryoları
  • Ofis ağı CIDR'ı → geliştirici erişimi
  • CI/CD runner IP'si → otomatik test ve deployment
  • Uygulama sunucuları → belirli bir IP aralığı

📋 Loglar

Cluster'ın veritabanı log satırlarını Web UI'den veya CLI'dan görüntüleyebilirsiniz. Yavaş sorgular, bağlantı hataları ve uyarılar burada yer alır.

turkdb cluster logs my-pg               # son 100 satır
turkdb cluster logs my-pg --tail 500  # son N satır
turkdb cluster logs my-pg --follow    # canlı akış

📈 Metrikler

Nerede bulunur?

1

app.turkdb.io → Cluster listenize gidin

2

Cluster adına tıklayın

Cluster Detay sayfası açılır.

3

Metrikler sekmesine tıklayın

Bu sekme yalnızca hazır durumundaki cluster'larda görünür. Cluster henüz hazır değilse sekme aktif olmaz.

💡

Metrikler her 30 saniyede otomatik yenilenir — sayfayı yenilemenize gerek yok.

Metrikler sekmesinde ne görürsünüz?

⚡

Sorgular / Saniye

Anlık QPS değeri. Zaman serisi grafiğiyle son birkaç dakikayı gösterir.

⏱️

Ortalama Gecikme

Sorgu başına ortalama yanıt süresi (ms). Zaman serisi grafiğiyle izlenir.

🔄

Replikasyon Gecikmesi

HA cluster'larında primary → standby veri aktarım gecikmesi (sn). > 1 sn turuncu, > 30 sn kritik.

💾

Son Yedekleme

Son otomatik yedeklemenin durumu ve zamanı.

🗄️

Depolama Kullanımı

Halka grafik: kullanılan / toplam disk. %85 üzeri uyarı rengiyle gösterilir.

🔗

Bağlantı Havuzu

Aktif bağlantı sayısı / maksimum. %60+ sarı, %80+ kırmızı renkte gösterilir.

Yavaş Sorgular sekmesi

Cluster Detay sayfasında Yavaş Sorgular sekmesi ayrı bir performans aracıdır. Hangi sorgularınızın yavaş çalıştığını görüp optimizasyon yapabilirsiniz.

Gösterilen bilgiAçıklama
Ortalama süre (ms)Bu sorgunun tüm çağrılarının ortalama süresi
Maksimum süreEn yavaş tek çalışma
Çağrı sayısıSorgu kaç kez çalıştı
Cache hit oranı>%95 yeşil, altı sarı — düşükse index veya sorguda sorun var
Satır / çağrıHer çağrının döndürdüğü ortalama satır sayısı
Tam sorgu metniSatıra tıklayınca açılır, kopyalanabilir
ℹ️

Yavaş Sorgu eşiğini (ms) kendiniz ayarlayabilirsiniz. Varsayılan olarak belirli bir sürenin üzerindeki sorgular listelenir. "Sıfırla" butonu istatistikleri temizler.

API ile metrik okuma

GET https://api.turkdb.io/v1/clusters/{id}/metrics
Authorization: Bearer <api-key>

Yanıtta şu alanlar gelir: queries_per_second, avg_query_latency_ms, replication_lag_seconds, active_connections, max_connections, storage_used_bytes, storage_total_bytes, backup_status, last_backup_at, timestamp.

🔔 Webhook

Cluster olayları gerçekleştiğinde belirlediğiniz URL'e otomatik POST isteği gönderilir. Slack bildirimi, PagerDuty alarmı veya kendi otomasyon sistemleriniz için kullanın.

OlayNe zaman tetiklenir?
cluster.readyCluster hazır duruma geçti
cluster.failedProvisioning veya HA hatası
cluster.deletedCluster silindi
backup.completedYedekleme tamamlandı
backup.failedYedekleme başarısız
ha.failoverPrimary değişti
ℹ️

Her istek X-TurkDB-Signature başlığı ile imzalanır. Alıcı tarafta imzayı doğrulayarak sahte isteklerden korunun.

💳 Faturalama

Faturalama seçilen makine tier'ına göre hesaplanır. Her ayın 1'inde iyzico (BDDK lisanslı) üzerinden otomatik çekim yapılır.

KalemNasıl hesaplanır?
Cluster maliyetiTier'ın saatlik ücreti × çalışma saati
Ek diskDahili depolamayı aşan GB × birim fiyat
HA surchargeHA cluster'larda ekstra düğüm maliyeti
⚠️

Ödeme başarısız olursa cluster'lar silinmez, duraklatılır. 7 gün içinde ödeme yapılırsa otomatik devreye girer.

👥 Ekip Yönetimi

Birden fazla kişinin aynı tenant üzerinde çalışması için üye ekleyebilir ve rol atayabilirsiniz.

RolCluster yönetimiFatura görüntülemeÜye yönetimiTenant silme
owner✅✅✅✅
admin✅✅❌❌
memberGörüntüle❌❌❌
readonlyListele❌❌❌
ℹ️

Terraform ve Kubernetes Operator için admin rolünde bir API key kullanın.

🏛️ KVKK Uyumu

TürkDB’nin uyum tarafındaki hedefi veri yerleşimi, erişim kaydı, silme talebi ve export gibi süreçleri görünür kılmaktır. KVKK yükümlülükleri pilot kapsamı, sözleşme ve hukuki değerlendirmeyle birlikte netleştirilmelidir.

KVKK MaddesiGereklilikTürkDB'de nasıl karşılanır?
GenelKişisel veri belirli bölgede kalmalıVeri yerleşimi, yedek konumu ve destek erişimi pilot/sözleşme kapsamında açıkça belirlenmelidir
GenelErişim log kaydıHangi işlemlerin ne kadar süre auditleneceği pilot kapsamı ve uyum gereksinimine göre netleştirilmelidir
Md. 7Silme talebi 30 gün içinde yerine getirilmeliSilme kuyruğu, imha kanıtı ve raporlama akışı pilot/sözleşme kapsamında doğrulanmalıdır
Md. 11Veri sahibi verilerinin kopyasını talep edebilirWeb UI → Uyum → Veri Export / turkdb compliance export request
Md. 12İhlal 72 saat içinde Kurul'a bildirilmeliİhlal kayıt ve bildirim takibi hukuki süreçle birlikte ele alınmalıdır
🚨

Veri ihlali tespitinde 72 saat içinde Kişisel Verileri Koruma Kurulu'na bildirim zorunludur. turkdb compliance breach report komutu bu süreyi kayıt altına alır ve hatırlatır.

Aylık KVKK kontrol rutini

  • Web UI → Uyum → Özet: açık ihlal veya bekleyen silme var mı?
  • Bekleyen silmelerde kalan gün < 5 ise imha yaklaşıyor
  • Audit Log'u gözden geçirin: beklenmedik erişim var mı?
  • Gelen veri export taleplerini yanıtlayın

❓ Sık Sorulan Sorular

Uygulamam hangi adrese bağlanmalı?

Web UI veya CLI'dan bağlantı bilgisini alın. Bu adres bağlantı yönetimi içerir — doğrudan veritabanı sunucusuna bağlanmıyorsunuz, bağlantı katmanı üzerinden geçiyorsunuz.

Sildiğim cluster'ın verisi ne zaman tamamen yok edilir?

KVKK Md. 7 gereği silme talebinden 30 gün sonra kalıcı imha gerçekleşir. Bu süre içinde destek birimiyle iletişime geçerek kurtarma talep edebilirsiniz.

Bağlantı limitine ulaştım, ne yapmalıyım?

İki seçenek: (1) Daha büyük bir tier'a geçin. (2) Uygulama tarafında connection pool kütüphanesi kullanın (PgBouncer, HikariCP, vb.).

Hangi veritabanını seçmeliyim?

Genel web uygulamaları için PostgreSQL, mevcut MySQL altyapısıyla uyumluluk için MySQL, esnek döküman modeli için MongoDB, büyük ölçekli analitik için ClickHouse, önbellek ve oturum için Redis.

Migration'da kaynak DB şifrem güvende mi?

Kimlik bilgileriniz yalnızca migration işi süresince şifreli olarak tutulur ve iş tamamlandıktan sonra silinir. Veritabanımıza yazılmaz.

HA cluster ile standart cluster arasındaki fark?

HA cluster birden fazla düğüm çalıştırır. Primary düştüğünde replika otomatik devreye girer — uygulamanız kısa bir yeniden bağlanma süresinin ardından çalışmaya devam eder. Standart cluster'da ise Primary düştüğünde sizden manuel müdahale gerekebilir.

Tier'ı sonradan değiştirebilir miyim?

Evet. Web UI'de Cluster → Ayarlar → Tier Değiştir. Küçük bir kesinti (genellikle < 30 sn) oluşabilir.

API key'im sızdı, ne yapmalıyım?

Hemen Web UI → API Keys veya turkdb api-key delete <id> ile iptal edin. Ardından yeni bir key oluşturun ve sistemlerinize güncelleyin.

🆘 Destek

📧

E-posta

[email protected] — iş günleri 09–18

🏛️

KVKK

[email protected] — uyumluluk soruları

📖

Dökümanlar

docs.turkdb.io

📊

Durum Sayfası

status.turkdb.io — kesinti ve bakım bildirimleri