2. Select * from me ;Select * from me ;
'nde
okudu, algoritmalar ve veri tabanları ile
orada tanıştı.
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 'de
çalışıyor.
Twitter :
Blog :
YTÜ Matematik Mühendisliği
PostgreSQL
Markafoni
@apatheticmagpie
kadinyazilimci.com
3. Neden PostgreSQL ÇokNeden PostgreSQL Çok
Güzel?Güzel?
(Atomicity, Consistency, Isolation, Durability)
Hot Standby
Streaming replication
/
ACID
MVCC Multi Version Concurrency Control
WAL Write-Ahead Logging
Point-in-Time Recovery
Standby server and high availability
Procedural languages
Partitioning Inheritance
Cost based optimiser
Multi platform support
Tablespaces
4. Neden PostgreSQL ÇokNeden PostgreSQL Çok
Güzel?Güzel?
( / )
: check constraints, unique
constraints, foreign keys, primary keys...
: , , ...
: MongoDB, Hadoop, Redis , MySQL
Triggers
Functions
Views Materialized Updatable
Constraint enforcement
Extension system hstore pg_stat_statements pg_trgm
Temporary tables
Unlogged tables
Foreign Data Wrappers
5. Postgres Yönetmek Çok Kolay!Postgres Yönetmek Çok Kolay!
pgAdminpgAdmin
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.
7. Terminal ve psqlTerminal ve psql
psql Postgres'in etkileşimli (interaktif) terminalidir.
Komutlar size çok hız kazandıracaktır.
psql -h 127.0.0.1 -U gulcin -d pgday
l ve l+
c
dt ve dt+
di ve di+
d ve d+
du
dp
df
db
x
q
?
11. OS ConfigurationOS Configuration
Backup Logical&PhysicalBackup Logical&Physical
HA SetupHA Setup
MonitoringMonitoring
Log AnalyzingLog Analyzing
Bloat ManagementBloat Management
Anahtar GörevlerAnahtar Görevler
12. Yedekleme PolitikasıYedekleme Politikası
Tavsiye:Tavsiye: Backup and Recovery ManagerBackup and Recovery Manager
for PostgreSQLfor PostgreSQL
BarmanBarman
“ A good backup tool is not for keeping
backups, it's for keeping your job.
Simon Riggs
13. Optimizasyon YapmaOptimizasyon Yapma
System TuningSystem Tuning
OS TuningOS Tuning
Hardware TuningHardware Tuning
Performance TuningPerformance Tuning
Query TuningQuery Tuning
Index ManagementIndex Management
Software ConfigurationSoftware Configuration
15. Upgrade PlanlamaUpgrade Planlama
Versiyonlar arasındaki farkları listelemeVersiyonlar arasındaki farkları listeleme
Mevcut yapıya nasıl etkisi olacaMevcut yapıya nasıl etkisi olacağğını araını araşştırmatırma
Neler kazandıracaNeler kazandıracağğını hesaplama / öngörmeını hesaplama / öngörme
GeçiGeçişşi planlamai planlama
Kaynakları doKaynakları doğğru kullanmaru kullanma
Yenilikleri incelemeYenilikleri inceleme
pg_upgradepg_upgrade
16. SistemiSistemi İİzlemezleme
, , , gibi yazılımlarla veri tabanı
sunucularımızı ve veri tabanlarımızı kontrol edebilirsiniz.
Tavsiye: bir 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.
Nagios PRTG New Relic Cacti
check_postgres bucardo
17. Sistemi Analiz EtmeSistemi Analiz Etme
Logları toplayıp analiz edersek çok daha iyi anlamış oluruz. Bunun
için aşağıdaki araçları kullanabilirsiniz.
Log analiz etmek üzere tasarlanmış bu araçlar log incelemenizi ve
bunlardan yola çıkarak kararlar almanızı sağlayacaktır.
pg_fouine
pgbadger
pgCluu
19. Postgres ve DBA Hayatı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.
20. Postgres ve DBA Hayatı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)
21. Git kullanın!Git kullanın!
çok güzel. ile hemen öğren.
apt-get install git // Debian tabanlı dağıtım Ubuntu gibi.
yum install git // RHEL
yum install git-core // Fedora vs.
Gitlab Demo
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
22. Nereden BaNereden Başşlayayım?layayım?
Postgres kaydolun.
Günde 1 mail ile ne kadar çok şey öğrenebileceğinize inanamazsınız.
: PostgreSQL yönetimi
: Kullanıcılar için genel bir tartışma alanı
: Postgres ve ona bağlı servis duyuruları
: Postgres performansına ilişkin konular
blogunu takip edin.
( , , , , ,
, , , , )
mail listelerine
pgsql-admin
pgsql-general
psql-announce
psql-performance
Planet PostgreSQL
2ndQuadrant pgExperts VMware OmniTI EnterpriseDB
EndPoint credativ Cybertec CommandPrompt OpenSCG
23. Postgres ÖPostgres Öğğrenmenin ilkrenmenin ilk
yolu: Oku!yolu: Oku!
Karşılaştığınız her konsept için yazılmış
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.
PostgreSQL
belgesini