Select * from me ;

YTÜ Matematik Mühendisliği 'nde okudu, algoritmalar ve veri tabanları ile orada tanıştı.

PostgreSQL ile karşılaşana dek birçok veri tabanı ile çalıştı ama artık pek tercih etmiyor.

Açık kaynak kod ve özgür yazılım seven bir DBA. Çok az şey biliyor ve çok şey öğrenmek istiyor, şu an Markafoni'de çalışıyor.

Twitter : @apatheticmagpie

Blog : kadinyazilimci.com

 

Neden PostgreSQL Çok Güzel?

Neden PostgreSQL Çok Güzel?

Triggers

Functions 

Views (Materialized / Updatable)

Constraint enforcement : check constraints, unique constraints, foreign keys, primary keys...

Extension system : hstore, pg_stat_statements,  pg_trgm...

Temporary tables 

Unlogged tables

Foreign Data Wrappers : MongoDB, Hadoop, Redis , MySQL

 

 

 

Postgres Yönetmek Çok Kolay!

pgAdmin

Postgres'in grafik arayüzüdür. Sorgu analiz etme, çalışan sorguları gözlemleme özellikleri mevcuttur. Kullandığınız özelliklerin kodlarını görebilir, değiştirebilir ve düzenleyebilirsiniz.

pgAdmin

Terminal ve psql

psql Postgres'in etkileşimli (interaktif) terminalidir.

 

 psql -h 127.0.0.1 -U gulcin -d pgday 

 

Komutlar size çok hız kazandıracaktır.

 

\l ve \l+
\c 
\dt ve \dt+
\di ve \di+
\d ve \d+
\du
\dp
\df
\db
\x
\q
\?

Rutin DBA görevleri

PostgreSQL'i Kurmak

Linux

apt-get install postgresql
yum install postgresql

Mac

Şu linkten EDB versiyonunu indirebilirsiniz.

Windows

Kurulum için şu linkten yararlanabilirsiniz.

 

 

PostgreSQL'i Ayarlamak

postgresql.conf pg_hba.conf

recovery.conf

Bloat Management

OS Configuration

Backup Logical&Physical

HA Setup

Monitoring

Log Analyzing

 

Anahtar Görevler

Yedekleme Politikası

Tavsiye: Barman Backup and Recovery Manager for PostgreSQL

A good backup tool is not for keeping backups, it's for keeping your job.

Simon Riggs

Optimizasyon Yapma

System Tuning

  • OS Tuning

  • Hardware Tuning 

Performance Tuning

  • Query Tuning

  • Index Management

  •  Software Configuration

Optimizasyon Yapma

Tavsiye: PoWA PostgreSQL Workload Analyzer

Upgrade Planlama

Versiyonlar arasındaki farkları listeleme

Yenilikleri inceleme

Mevcut yapıya nasıl etkisi olacağını araştırma

Neler kazandıracağını hesaplama / öngörme

Geçişi planlama

Kaynakları doğru kullanma

pg_upgrade

Sistemi İzleme

 

NagiosPRTGNew RelicCacti gibi yazılımlarla veri tabanı sunucularımızı ve veri tabanlarımızı kontrol edebilirsiniz.

Tavsiye: check_postgres bir bucardo projesidir.​

check_postgres veri tabanımızın çeşitli özelliklerini izleyip kontrol edebilmemize yarayan bir betiktir.  Nagios  gibi yazılımlarla veya bağımsız betiklerle çalışabilecek şekilde tasarlanmıştır.

Sistemi Analiz Etme

Logları toplayıp analiz edersek çok daha iyi anlamış oluruz. Bunun için aşağıdaki araçları kullanabilirsiniz.

pg_fouine

pgbadger

pgCluu

 

Log analiz etmek üzere tasarlanmış bu araçlar log incelemenizi ve bunlardan yola çıkarak kararlar almanızı sağlayacaktır.

Sistemi Analiz Etme

Postgres ve DBA Hayatı

  • İşleri olabildiğince otomatize edin.
  • Bir yedekleme politikanız olsun.
  • Yedekleriniz güvenli ve kullanılabilir olsun.
  • Tablo ve dizin (index) boyutlarının artışını kontrol edin.
  • Uzun süren sorguları loglayın ve bu sorguları düzenli aralıklarla iyileştirin.
  • Loglara düşen hataları inceleyin ve nasıl bir soruna işaret ettiklerini anlamaya çalışın, araştırın.
  • Vacuum analyze, autovacuum, full vacuum işlerini planlayın.
  • Veri tabanı kilitleri hakkında fikir edinin ve nasıl izleyip kontrol edeceğinizi bilin.

Postgres ve DBA Hayatı

İşleri otomatize etmek için 'crontab' komutu çok faydalı olacaktır. Yedekleme, vacuum yapma gibi rutinler her DBA'in hayatını kurtaran faydalı alışkanlıklardır. 

gulcin# crontab -l
00 02  * * *  sh /home/postgres/scripts/getbackup.sh
0 05  * * *  sh /home/postgres/scripts/restore_test_db.sh
#WAL Archive CleanUp
0 02  * * *  sh /var/lib/pgsql/removewal_archive.sh
 crontab -e // crontab dosyasını düzenlemeye yarar.
# * * * * *  çalıştırılacak komut
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── haftanın günü (0 - 7) (0'dan 6'ya Pazar'dan Cumartesi'ye demektir; 7 Pazar, 0 da Pazar.)
# │ │ │ └────────── ay (1 - 12)
# │ │ └─────────────── ayın günü (1 - 31)
# │ └──────────────────── saat (0 - 23)
# └───────────────────────── dakika (0 - 59)

Git kullanın!

 
apt-get install git // Debian tabanlı dağıtım Ubuntu gibi.
yum install git // RHEL
yum install git-core // Fedora vs.

 

Gitlab çok güzel. Demo ile hemen öğren.

 

ssh-keygen -t rsa -C "yildirim.gulcin88@gmail.com"
cat ~/.ssh/id_rsa.pub

 

git config --global user.name "Gulcin Yildirim"
git config --global user.email "yildirim.gulcin88@gmail.com"

 

mkdir pgday
cd pgday
git init
touch README
git add README
git commit -m 'Welcome to PGDay İstanbul 2015!'
git remote add origin git@demo.gitlab.com:gitlab/pgday.git
git push -u origin master

Nereden Başlayayım?

Postgres mail listelerine kaydolun.

Günde 1 mail ile ne kadar çok şey öğrenebileceğinize inanamazsınız.

 

pgsql-admin : PostgreSQL yönetimi

pgsql-general : Kullanıcılar için genel bir tartışma alanı

psql-announce : Postgres ve ona bağlı servis duyuruları

psql-performance : Postgres performansına ilişkin konular

 

Planet PostgreSQL blogunu takip edin.

(2ndQuadrant,pgExperts,VMware,OmniTI,EnterpriseDB,  EndPoint,credativ,Cybertec,CommandPrompt,OpenSCG)

Postgres Öğrenmenin ilk yolu: Oku!

 

Karşılaştığınız her konsept için yazılmış PostgreSQL belgesini bulup okuyun. 

Postgres belgeleme konusunda en zengin açık kaynak kodlu projelerden biridir.

Çok sık kullandığınız özellikleri bile okuyun çünkü ufak bir detay hayat kurtarıcı olabilir.

 

"Why do I love Postgres?

- Because I'm not a DBA. 

Teşekkürler!

Soru var mı?

PostgreSQL DBA Neler Yapar?

By Gülçin Yıldırım Jelínek

PostgreSQL DBA Neler Yapar?

Bu sunum, 9 Mayıs Cumartesi günü, Boğaziçi Üniversitesi'nde gerçekleştirilen PGDay İstanbul 2015 etkinliği için hazırlanmıştır. #pgdaytr @PGDayTR

  • 5,935