73
30 Kasım 2002 Istanbul Linux Kullanıcıları Derneği Düzenli Seminerleri POSTGRESQL Veritabanı Sunucusu Devrim GÜNDÜZ [email protected] TR.NET Sistem Destek Uzmanı http://seminer.linux.org.tr http://www.linux.org.tr/belgeler.php Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir. (Kopyalama hakkı en-gel-le-ne mez! )

POSTGRESQL Veritabanı Sunucusu

Embed Size (px)

DESCRIPTION

POSTGRESQL Veritabanı Sunucusu. Devrim GÜNDÜZ [email protected] TR.NET Sistem Destek Uzmanı http://seminer.linux.org.tr http://www.linux.org.tr/belgeler.php Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir. (Kopyalama hakkı en-gel-le-ne mez!  ). - PowerPoint PPT Presentation

Citation preview

Page 1: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

POSTGRESQLVeritabanı Sunucusu

Devrim GÜNDÜ[email protected]

TR.NET Sistem Destek Uzmanıhttp://seminer.linux.org.tr

http://www.linux.org.tr/belgeler.php

Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir.

(Kopyalama hakkı en-gel-le-ne mez! )

Page 2: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Linux Kullanıcıları Derneği

• Kuruluş• INET-TR 1995 ilk kullanıcı grubu

• Türkiye Linux Kullanıcıları Grubu• 2000 – Dernekleşme

• Kasım 2001 – İlk Genel Kurul

• http://www.linux.org.tr • Günlük 28.000 hit

[email protected] - [email protected]

Page 3: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Linux Kullanıcıları Derneği

• E-posta listeleri• Aylık 1 milyon dolayında e-posta dağıtılmaktadır.• http://liste.linux.org.tr

• FTP sunucusu• 180 GB alan ile Türkiye’nin en büyük ve hızlı

Linux ve Özgür Yazılım FTP sunucusu• Birçok özgür yazılımın resmi yansısı

Page 4: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Linux Kullanıcıları Derneği

• Amaçlarımız• Özgür Yazılım Felsefesini Türkiye’de tanıtıp

yaygınlaştırmak ve özgür yazılımların gelişmesine katkıda bulunmak

• Yerelleştirme• Yeni yazılımların geliştirilmesi• Türkçe belgelendirme• Düzenli eğitim seminerleri

• Dernek Üyeliği

Page 5: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Çalışma Grupları

• Değişik amaçlar için kuruldu.• E-posta listeleri• Web sayfaları• Etkinlikleri

• http://liste.linux.org.tr

Page 6: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Linux Kullanıcıları Derneği

• Desteklediğimiz Etkinlikler• Akademik Bilişim Konferansı • İnternet Haftası kapsamında etkinlikler• Türkiye’de İnternet Konferansları

• Düzenlediğimiz Etkinlikler• Türkiye Linux ve Özgür Yazılım Şenliği• Ankara ve İstanbul’da düzenli seminerler• Gezici Seminerler

• Piknik

Page 7: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

LKD Seminerleri

Sıradaki Seminer14 Aralık 2002 Cumartesi

MySQL Veritabanı Sunucusu

Doruk FİŞEK

[email protected]

Page 8: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

LKD Seminerleri

Sıradaki SeminerINET-TR 2002

Türkiye’de Internet Konferansı

Seminer programı ve ayrıntılı bilgi için: http://seminer.linux.org.tr/konferanslar/inet-tr02

http://www.inet-tr.org.tr

Page 9: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

LKD Seminerleri

• Seminer programı, seminer notları ve ayrıntılı bilgiler için;

http://seminer.linux.org.tr

adresini ziyaret edebilirsiniz.

Page 10: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

GİRİŞ

• Bu sunuda aşağıdaki konular anlatılacaktır:1.1. PostgreSQL’ in tanıtımı PostgreSQL’ in tanıtımı 2.2. Neden PostgreSQL?Neden PostgreSQL?3.3. Teknik açıdan PostgreSQLTeknik açıdan PostgreSQL4.4. PostgreSQL mimarisiPostgreSQL mimarisi5.5. PostgreSQL sınırlamalarıPostgreSQL sınırlamaları6.6. PostgreSQL kurulumuPostgreSQL kurulumu7.7. PostgreSQL veritabanı araçlarıPostgreSQL veritabanı araçları8.8. PostgreSQL veritabanının güvenliğiPostgreSQL veritabanının güvenliği9.9. Veritabanı hakkında ek bilgilerVeritabanı hakkında ek bilgiler

Page 11: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL nedir?

• PostgreSQL, veritabanları için relational modeli kullanan ve SQL standart sorgu dilini destekleyen bir veritabanı yönetim sistemidir. 

• PostgreSQL aynı zamanda iyi performans veren, güvenli ve geniş özellikleri olan bir DBMS’tir. Hemen hemen tüm UNIX ya da Unix türevi (Linux, FreeBSD gibi) işletim sistemlerinde çalışır. Ayrıca NT çekirdekli tüm Windows sistemlerde de çalıştırılabilir. Tabii ki ücretsiz ve açık kodludur.

Kaynak: http://www.postgresql.org

Page 12: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kimler kullanıyor?• Türkiye’deki belli başlı üniversiteler• Maden Tetkik ve Arama Ens., Şeker Fabrikaları• www.begendim.com• .info ve .org alan adları (www.afilias.com)• http://www.sciencetunnel.com• Cisco• BASF• Red Hat • Chrysler• 3Com • USDA, FDA, ve University of California • ....

Page 13: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in tarihi

• PostgreSQL’in geçmişi 1977’de Kaliforniya’ daki Berkeley Üniversitesinde (UCB) yapılan çalışmalara dayanır. UCB’de 1977-1985 yılları arasında Ingres adı verilen relational veritabanı geliştirildi.

• Ingres kodu Relational Technologies/Ingres Corporation tarafından satın alındı ve ilk ticari relational veritabanlarından biri oldu.

Page 14: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in tarihi

• Berkeley’deki ilişkisel veritabanı sunucusu üzerindeki çalışmalar 1986 – 1994 arasında devam etti ve bu veritabanı Postgres adını aldı. Bu kod ise Illustra tarafından satın alındı ve Informix olarak geliştirilmeye başlandı.

• 1994’te SQL özellikleri Postgres’e eklendi ve bu veritabanı Postgres95 adını aldı.

Page 15: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in tarihi

• 1996 yılında Postgres tanınmaya başlandı ve kod geliştirmesi için e-posta listesi açılmasından sonra bir çok gönüllü Postgres’i geliştirmek için çalışmaya başladı. Bu aşamadan sonra Postgres son kez adını değiştirdi ve adındaki “95” ekinin yerine daha uygun olan SQL konmasına karar verildi. Bunun nedeni Postgres’in artık SQL standartlarını desteklemesiydi. Böylece PostgreSQL doğdu.

• Şu andaki sürümü 7.3’tir ve 28 Kasım’da çıkarılmıştır.

Page 16: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• PostgreSQL şirketiniz ve işiniz için diğer veritabanı sistemlerinden üstün olarak aşağıdaki özellikleri sunar:

• PostgreSQL ile, kimse sizi lisans anlaşmalarını kırmanız durumunda,bu yazılım için lisans maliyeti olmadığı için dava edemez.

• Patentli veritabanı satıcılarından daha iyi destek.

Page 17: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• Bu, bazı ek avantajları da beraberinde getirir:• Geniş-ölçeklenebilir yayılma ile daha karlı iş

modelleri

• Herhangi bir aşamada lisansınıza itiraz edilme olasılığının olmaması

• Ek lisanslama maliyetleri olmadan genel araştırmalar ve denemeler yapabilme esnekliliği.

Page 18: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• PostgreSQL, güçlü destek imkanlarına ek olarak, çalışanlarınızın katkıda bulunabileceği profesyonellerden ve renkli kişiliklerden oluşan bir takıma sahiptir.

• Personel giderlerinde çok ciddi tasarruf imkanı

• Yazılımımız, diğer önde gelen patentli veritabanlarına göre daha az ayar ve bakım gerektirme gereksinimleri için tasarlanmış ve yaratılmıştır.Bununla beraber, özelliklerinden, kararlılığından ve başarımından hiçbirşey kaybetmemiştir.

Page 19: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• Buna ek olarak, eğitim programlarımız diğer patentli veritabanı üreticilerine göre cost effective ve pratik olarak gösterilmektedir.

• Çoğu patentli veritabanının aksine, firmalar PostgreSQL' in uzun yıllar boyunca yüksek aktiviteli işlerde hiç bir zaman göçmediğini belirtmektedirler. Bir kez bile değil. PostgreSQL sadece çalışır.

• Efsanevi güvenilirlik ve kararlılık

Page 20: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• Kaynak kodu herhangi bir ücret ödenmeden alınabilir. Eğer personeliniz PostgreSQL'i herhangi bir şekilde geliştirmek ya da özelleştirmek isterlerse bunu herhangi bir ek ücret ödemeden minimum çaba ile yapabilirler.

• Bu, PostgreSQL' in her gün dünyanın her bir tarafından gelen destekle büyümesini sağlamaktadır.

• Çoklu platformda çalışma özelliği

Page 21: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• PostgreSQL hemen tüm Unix türevi (son kararlı sürüm ile birlikte 34) üzerinde çalışabilmektedir.

• Aynı zamanda, doğal Windows uyumluluğu PostgreSQL 7.4 sürümü ile birlikte gelecektir.

• Yüksek hacimli işlemler için tasarlanmıştır.

Page 22: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• PostgreSQL' in yüksek hacimli ortamlarda gereksinimleri karşılayabilmesi için MVCC adı verdiğimiz çoklu satır veri saklama stratejisini kullanıyoruz.

• Önde gelen patentli veritabanı üreticileri de çeşitli nedenlerle bu teknolojiyi kullanmaktadırlar.

Page 23: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• Grafik tabanlı veritabanı tasarım ve yönetim araçları• Veritabanını yönetmek için

• pgAdmin• pgAccess

• Veritabanı yaratmak için • Tora

• Çok sayıda yüksek kalitede grafik arayüzlü araçları vardır.

Page 24: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Teknik açıdan PostgreSQL

• Bazı teknik özellikler açısından, PostgreSQL şunları sunar:

• %100 ACID uyumlu• ANSI SQL uyumlu• Referential Integrity• Replikasyon (ticari ve ticari olmayan çözümler)

ana veritabanının (master) çok sayıda başka veritabanlarına (slave) çoklanmasını sağlar.

Page 25: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Teknik açıdan PostgreSQL

• ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python, and Ruby için doğal arabirimler.

• Rules• Views• Triggers• Sequences• Inheritance• Outer-Joins

Page 26: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Teknik açıdan PostgreSQL

• Stored Procedures• Kod geliştiriciler işin açık API• Doğal SSL Desteği• UNION, UNION ALL ve EXCEPT sorgularına

destek• Doğal Kerberos Yetkilendirmesi• Fonksiyonel ve Partial Indexler• Procedural Diller

Page 27: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Teknik açıdan PostgreSQL

• MD5, SHA1, XML ve diğer işlevsel özelliklerin yüklenebilmesi.

• Diğer SQL-uyumlu sistemlerle paylaşabilmek için taşınabilir SQL yaratan araçlar.

• Özelleştirilmiş, kullanıcı-tanımlı veri tipleri için geliştirilebilir veri tipi sistemi ve hızla gelişen yeni veri tipleri.

• Daha az SQL-uyumlu RDBMS'lerden geçişi kolaylaştıran cross-database uyumluluk fonksiyonları

Page 28: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Neden PostgreSQL?

• Birden fazla işlemcide rahatlıkla çalışabiliyor.

• Çok kullanıcılı sistemlerde daha hızlı erişim sağlar.

• Son derece güvenli bir altyapıda çalışır (Linux çekirdeği)

• ODBC desteği ile MS ürünleri ile veri aktarımı yapabilir.

• Ticari bir veritabanı olmadığı için, hızdan ziyade güvenliğe önem veriyor.

Page 29: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Desteklenen Platformlar

• Linux (Kernel 2.0.X ve üzeri)• AIX 4.3.2• HP – UX 9.0x ve 10.20• IBM• FreeBSD 4.X • IRIX 6.5.6f• MacOS-X Darwin• NetBSD 1.4, 1.4u

• QNX 4.25• SCO OpenServer 5• SCO Unix Ware 7• Solaris 2.5.1-2.7• Sun OS 4.1.14• WinNT/Cygwin• BSDI 4.0.1• BeOS 5.0.3

Page 30: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in mimarisi

• PostgreSQL’in gücü, onun mimarisinden gelir. Ticari veritabanı sistemleri ile ortak olarak PostgreSQL sunucu-istemci ortamında kullanılabilir. Bu hem kullanıcılar hem de geliştiriciler açısında oldukça fazla yarar sağlar.

• PostgreSQL kurulumunun kalbi veritabanı sunucu işlemidir (process). • Postmaster olarak adlandırılır . Tek bir sunucu üzerinde

çalışabilir.

Page 31: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in mimarisi

• Veritabanındaki bilgilere erişebilecek programlar sunucu tarafında çalışır. İstemci tarafındaki programlar, sunucu ile aynı makinede olsalar bile veriye direk olarak erişemezler.

• İstemci – sunucu mimarisi, uygulamaların ayrı ayrı makinelerde çalışmasına izin verir. İstemcilerimizi sunucudan ayırmak için bir ağ kurabilir, ve istemci uygulamalarınızı geliştirmek için kullanıcılara uygun bir ortam kullanabilirsiniz.

Page 32: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in mimarisi

• İstemci-sunucu mimarisi iş gücünün bölünmesine yardımcı olur. Büyük miktarda veriyi tutabilecek ve erişilebilecek şekilde düzenlenmiş bir sunucu makinesi güvenli bir veri deposu olarak kullanılabilir.

• Gelişmiş grafiksel uygulamalar istemciler için geliştirilebilir.

• Web tabanlı uygulamalar da istemci tarafındaki işlemlerinizi görebilir.

Page 33: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’ in mimarisi

Page 34: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Sınırlamaları• Tablolara eklenen veriler büyüyünce, veritabanlarını kontrol etmek

zorlaşır ve veritabanlarının başarımı düşer. Burada PostgreSQL’in bir farkı yoktur.

• En fazla büyüklük, disk alanı ve sanal bellekle sınırlıdır. Sınıra yaklaşıldığında, veritabanı yavaşlamaya başlar.

• Sanal belleği bile aşacak bir işlem yapıldığında, PostgreSQL’in başarımı fiziksel açıdan çok kötü olacaktır (ya da bir işlem olmayacaktır!).

• Burada bahsedilmeyen diğer sınırlamalar işletim sistemi ya da ağın veri iletme hızına bağlıdır. Örneğin, ODBC ile yapılan sorguların sürücüye bağlı olan sınırları vardır. Hafıza ile ilgili sınırlamalar da vardır (çok büyük bir sorgunun sonucu gibi)

Page 35: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Sınırlamaları

• Veritabanı için max büyüklük:• Bir tablo için max büyüklük:• Bir row için max büyüklük:• Bir field için max büyüklük• Tablo içindeki max row

sayısı:• Tablo içindeki max column

sayısı:• Tablo içindeki max index

sayısı:

• Sınırsız • 64 TB (Tüm işletim sistemlerinde)• Sürüm 7.1 ve sonrasında sınırsız• Sürüm 7.1 ve sonrasında 1 GB

• Sınırsız• 1600

• Sınırsız

Burada bahsedilen sınırlamalar, fiziksel sınırların haricindeki sınırlardır.

Page 36: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Veri Tipleri

• PostgreSQL, Users’ Guide ve psql’deki \dT komutu ile de görülebileceği gibi oldukça fazla veri tipini destekler.

• Sadece SQL standardı değil, kendine özel başka veri tipleri de kullanır.

• Serial, inet, circle, polygon...• http://seminer.devrim.oper.metu.edu.tr/pg

adresinde bu veri tiplerini bulabilirsiniz.

Page 37: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Kurulumunun Anatomisi

• Uygulamalar (applications), • Yardımcı programlar (utilities) • Veri dizinlerinden (data directories)

Ana PostgreSQL uygulamaları (postmaster ve postgres) istemcilerden veri erişimini sağlayan servislerin sunucu tarafındaki kodunu içerirler.

Page 38: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Kurulumunun Anatomisi

• Tipik bir PostgreSQL kurulumu tüm bu bileşenleri bulundurur.

• /usr/local/pgsql – Kaynak Kod• /var/lib/pgsql - rpm

Page 39: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Kurulumunun Anatomisi

Ana PostgreSQL dizininin alt dizinleri de aşağıdaki gibidir:

• Bin• Data • Doc • Lib • Man • Share • include

Page 40: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kurulum - I (Red Hat Linux - RPM)

• PostgreSQL tüm Red Hat sürümleri ile birlikte gelmektedir ve Red Hat üzerinde kolayca kurulmaktadır.

• “SQL Database Server”

• Eğer elinizde RedHat’ın eski sürümü ya da başka bir Linux sürümü varsa, http://www.ca.postgresql.org adresinden 7.2.3 için gereken rpm paketlerini bulabilirsiniz.

Page 41: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kurulum - II (RedHat Linux - RPM)

• 1.Adım : Dosyalar• Postgresql Ana paket• postgresql-libs Library dosyaları, v7.1.0 ve sonrasını kurarken

önemlidir. • postgresql-devel Development için gereken dosya ve kitaplıklar.• postgresql-jdbc PostgreSQL için Java database connectivity• postgresql-odbc PostgreSQL için Open database connectivity• postgresql-perl Perl için PostgreSQL arayüzü• postgresql-python Python için PostgreSQL arayüzü• postgresql-server Bir sunucuyu yaratmak ve çalıştırmak için

gerekli programlar

Page 42: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kaynak Koddan PostgreSQL Kurulumu (Linux)

• Eğer Windows, Unix kullanıyor, ya da kullandığınız Linıx dağıtımında rpm kullanamıyorsanız, PostgreSQL’ i kaynak kodundan kurabilirsiniz.

• PostgreSQL’in kaynak kodunu http://www.postgresql.org ya da herhangi bir yansısından indirebilirsiniz.

• Ülkemizde ftp.gazi.edu.tr adresi PostgreSQL’in resmi yansısıdır.

Page 43: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kaynak Koddan PostgreSQL Kurulumu (Linux)

• Kaynak kodu derlemek için , Linux ya da Unix sisteminizde development için gereken uygulamaların kurulmuş olması gerekir. Bunlar C derleyicisini, make uygulamasını ve veritabanı yaratmak için gereken diğer uygulamaları kapsar. Linux dağıtımları genellikle Free Software Foundation' ın development ortamı için GNU uygulamaları ile gelir. Bunlar GNU C derleyicisi (gcc) 'yi içerir (Linux için standart derleyicidir). GNU uygulamaları tüm UNIX platformları için indirilebilir, ve PostgreSQL kurulumları için de önerilir.

Page 44: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’i başlatma

• PostgreSQL’i RPM den kurduğunuzda kaynak koddan kuruluma göre çoğu işlemi yapmanıza gerek kalmaz.

• İlk çalıştırma esnasında veritabanının initialize edilmesi gerekmektedir. Bu sırada ana tablo olan template1 yaratılır, yapılandırma dosyaları ve veri alanı oluşturulur.

Page 45: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

postgresql. conf

• Veritabanı sunucusunun yapılandırma dosyasıdır. Erişim hariç tüm işlemler bu dosya aracılığı ile yapılır.

tcpip_socket = false

max_connections = 800 # 1-1024port = 6879sort_mem = 512

shared_buffers = 1600 # min 16

• postgresql.conf içinde yapılan her değişiklikten sonra bnu değişikliklerin geçerli olması için PostgreSQL’in yeniden başlatılması gerekir (Sunucunuzun değil!!!)

Page 46: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

pg_hba.conf dosyasının düzenlenmesi

• Varsayılan değer olarak, PostgreSQL uzaktan erişime izin vermez.

• Bu dosya veritabanının dosya alanında (örneğimizde /usr/local/pgsql/data) bulunur ve veritabanına bağlanmak için uzaktan erişecek istemcilerle ilgili izin ya da red bilgilerini içerir.

Page 47: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

pg_hba.conf dosyasının düzenlenmesi

• host all 192.168.0.0 255.255.0.0 trust • Bu satır, IP adresi 192.168 ile başlayan herhangi bir

bilgisayarın (host) tüm veritabanlarına (all) şifresiz olarak (trust) bağlanma izni verir.

Page 48: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Veritabanı güvenliği

• Güvenlik nedeni ile sunucu işlemlerinini kesinlikle root olarak yapmamalısınız. Tüm işlemler postgres kullanıcısı kullanılarak yapılmalıdır. Olası bir sorunda, system dışından birisi root erişimi kazanabilir.Bu nedenle, postmaster root olarak çalıştırılamayacaktır.

• Güvenlik açısından root a (ya da id’si 0 olan başka kullanıcı varsa onlara) postgres izninin verilmemesi gerekir. Varsayılan olarak root başlangıçta postgres kullanıcısı değildir ve postmaster i başlatamaz.

Page 49: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Güvenlik: Veritabanına şifre koyma

• PostgreSQL veritabanı sunucuna varsayılan erişim şifresizdir. Yani sunucu üzerindeki herkes –U parametresini postgres değeri ile birlikte geçirirse veritabanına erişim hakkı kazanır.

• Güvenliğin 3 aşaması vardır:• Kullanıcılar için şifre tanımlama • Veritabanına erişim için şifre sorgulamasını

zorunlu hale getirme.• Tablo erişimlerini kısıtlama

Page 50: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Güvenlik: Veritabanına şifre koyma

• Tablo erişimlerini kısıtlama, standart SQL komutları ile yapılır (GRANT, REVOKE)

• PostgreSQL’de kolon bazlı erişim kontrolü mümkündür. Bunun için, erişilecek kolon(lar) üzerinde view yaratılıp izinler bu view üzerine verilmelidir.

Page 51: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Güvenlik: Veritabanına şifre koyma

• Kullanıcılar için şifre tanımlama pg_passwd komutu ile yapılmaktadır.

• Buradaki kullanıcıların sistemdeki gerçek kullanıcı olmalarına gerek yoktur. Sanal bir kullanıcı ile güvenliği arttırabilirsiniz. Tablonun / veritabanının tüm haklarını o kullanıcıya da verebilirsiniz.

Page 52: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Güvenlik: Veritabanına şifre koyma

• PostgreSQL’in bu şifreyi kullanması için pg_hba.conf dosyasına

• host all 127.0.0.1 255.255.255.255 password passwdf

satırı eklenmelidir. PostgreSQL restart edilirse, bash-2.04$ psql pgornek -p 5455 -U lkduserPassword: ...pgornek=# \q

Page 53: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Programlama Arayüzleri

• C• PHP• Java• Python• Delphi• Perl• Tcl• Tk

Page 54: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL araçları - psql

• Oracle’daki SQL*PLUS gibi PostgreSQL’de psql adında command line aracı vardır. PostgreSQL veritabanları genellikle bu uygulama tarafından yaratılır ve yönetilir. psql :

psql [seçenekler] [veritabanı_adı [kullanıcı_adı]] 

biçiminde çalışır.

Page 55: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL araçları - psql

• [postgres@localhost postgres] psql pgornek

• Varsayılan veritabanı, kullanıcı adı, sunucu makine adı ve dinlenilen port numarası sırasıyla PGDATABASE, PGUSER, PGHOST ve PGPORT çevre değişkenlerinin ayarlanması ile değiştirilebilir.

 • Bu varsayılan değerler yine sırasıyla psql’e –

d, -U, -h ve –p seçeneklerini geçirerek değiştirilebilir.

Page 56: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL araçları - psql

• psql' e PostgreSQL’in desteklediği herhangi bir SQL komutunu verebilirsiniz. Desteklenen SQL komutlarının listesini \h iç komutu ile görebiliriz. Özel olarak istenen bir komut varsa \h sql_komutu ile de yardımı alabiliriz. \? iç bize tüm iç komut listesini verecektir.

Page 57: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL araçları - psql

• İki çeşit komut biçimi vardır: İç (internal) komutlar ve SQL komutları. Bunların tam listesini http://devrim.emo.org.tr/belgeler.php

adresinde bulabilirsiniz.

Page 58: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL araçları - psql

• psql de komutlar birden fazla satırda yazılabilir. Böyle zamanlarda psql promptu ‑> şekline dönüşecek ve daha fazla girişin beklendiği belirtilecektir:

[postgres@localhost postgres] /usr/local/pgsql/bin/psql pgornek. . .pgornek=> SELECT * pgornek-> FROM musteripgornek->;...[postgres@localhost postgres]

Page 59: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Görsel Araçlar – PgAdminII

• Windows ortamında çalışır.• ODBC gerektirir.• Oldukça geniş bir kullanıcı kitlesi

bulunmaktadır.• Ücretsizdir• http://pgadmin.PostgreSQL.org

Page 60: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Görsel Araçlar – PgAdminII

Page 61: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Görsel Araçlar – Pg Explorer

• Windows ortamında çalışır.• ODBC gerektirir.• http://www.pgexplorer.com

Page 62: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Görsel Araçlar – phpPgAdmin

• Web arayüzlü olduğu için, çalıştırıldığı ortamdan bağımsızdır.

• postgres kullanıcısı ile veritabanınızı yönetebileceğiniz gibi belirli bir kullanıcı ile belirli bir veritabanını da yönetebilirsiniz.

• Her türlü kayıt ekleme, silme, değiştirme; veritabanı/tablo yaratma vb işlemlerini SQL bilmeden yapabilirsiniz.

Page 63: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Görsel Araçlar – PHPPgAdmin

• Veritabanının içeriğini bir dosyaya boşaltabilir, daha sonra bu içeriği başka bir sunucuda da kullanabilirsiniz.

• Bunların dışında PostgreSQL’in SQL komutlarını çalıştırabilirsiniz.

• Türkçe dil desteği 2.4.2 sürümü ile gelmiştir.• http://phppgadmin.sourceforge.net adresinden

ücretsiz olarak indirilebilir.

Page 64: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

ÖNEMLİ NOT : PostgreSQL’i

k-e-s-i-n-l-i-k-l-e

“kill –9” ile durdurmayınız!!!

Page 65: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL Veritabanı yaratma

Bir PostgreSQL sunucusunda, yeni bir veritabanı yaratmanın iki yolu vardır:

1. createdb komutu ile

$ /usr/local/pgsql/bin/createdb pgornek

CREATE DATABASE

2. psql arabirimi ve SQL yardımıyla:

 

$ /usr/local/pgsql/bin/psql –d template1

template1=> CREATE DATABASE pgornek;

CREATE DATABASE

Page 66: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’de tablo yaratma

Tablo yaratma, veri girme, güncelleme, silme gibi işlemler bildik SQL

komutları ile yapılır. Bu komutlar daha önce anlatıldığı gibi psql yardımıyla

postmaster a iletilebilir.

Page 67: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

PostgreSQL’i durdurma

PostgreSQL sunucu işlemini düzgün olarak durdurmak önemlidir. Bu yazılmayı bekleyen

verinin veritabanına işlenmesini ve shared memory’de kullandığı kaynakları

boşaltmasına yarar.

Page 68: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Ek Bilgiler

psql, initdb, createuser, createdb uygulamaları hakkında detaylı bilgiyi man sayfalarından alabilirsiniz. İşlemlerinizi kolaylaştırmak açısından PostgreSQL uygulamalarının yollarını kabuğunuza tanıtmanız uygun olacaktır. Bunun için, standart UNIX/Linux kabuğunuzun başlangıç dosyasına (.profile ya da .bashrc) aşağıdaki satırları ekleyiniz:

 PATH=$PATH:/usr/local/pgsql/binMANPATH=$MANPATH:/usr/local/pgsql/manexport PATH MANPATH

Page 69: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Ek Bilgiler

• Veritabanında açılan her bağlantıyla ilgili bilgiler shared memory de tutulur. Dolayısıyla shared memory’nin büyük olması bağlantıları daha iyi yönetilmesi demektir.

• buffer : Tablolardan okunan rowlar önce buffera gelir . sonra kullanıcıya aktarılır; tam tersi de olur. Eğer free RAM iniz varsa buffer ve shared memory ye dağıtabilirsiniz. Tablolar çok fazla hareket görüyorsa buffer değeri yüksek tutulmalıdır. Disk I/O oranı düşer; bu da oldukça fazla hız artışı sağlar. Genel olarak performansta dikkat edilmesi gereken 3 unsur bulunmaktadır:

• CPU , hafıza (RAM) ve Hard Disk.

Page 71: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

Kaynaklar

• http://www.pgsql.com/ • http://www.commanprompt.com• http://foundries.sourceforge.net/databases• http://gborg.PostgreSQL.org

• www.wrox.com - Beginning Databases with PostgreSQL, 2001

Page 72: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

E-Posta Listeleri

[email protected] Veritabanları için tartışma listesi (üye olmak için, http://liste.linux.org.tr web arayüzünü

kullanabilirsiniz.)

[email protected] (PostgreSQL Türkiye E-Posta Listesi . PostgreSQL üzerinde

her türlü konu konuşulabilmektedir.)

• www.ca.PostgreSQL.org adresinden ulaşabileceğiniz tüm e-posta listeleri

Page 73: POSTGRESQL Veritabanı Sunucusu

30 Kasım 2002Istanbul

Linux Kullanıcıları DerneğiDüzenli Seminerleri

POSTGRESQLVeritabanı Sunucusu

Devrim GÜNDÜ[email protected]

TR.NET Sistem Destek Uzmanıhttp://seminer.linux.org.tr

http://www.linux.org.tr/belgeler.php

Bu sunu, herhangi bir izne gerek olmadan istenilen şekilde kullanılabilir.

(Kopyalama hakkı en-gel-le-ne mez! )