SQL Dili – 2 | ZAFER KARAKUÅž

SQL Dili – 2

PostgreSQL’in Çalıştığı İşletim Ortamları

PostgreSQL VTYS günümüzde birçok iÅŸlemci (RS6000, x86, m88k, Alpha, MIPS, Sparc, m68k, VAX) ve iÅŸletim sistemine (linux 2.0.x, linux 2.2.x,AIX, mklinux, DGUX, FreeBSD, OSF1, Solaris…) baÅŸarıyla taşınabilmiÅŸtir.

PostgreSQL’i Derleme, Kurma ve Çalıştırma

PostgreSQL’i derleyebilmek için sisteminizde bazı gereksinimlere ihtiyacınız olacak. Bunlar: ANSI C derleyicisi (gcc), GNU make, flex 2.5.2 veya üst sürümü ve son olarak byacc.

PostgreSQL kaynak paketinin açılması:

# cd /usr/src
# tar zxvf postgresql-v6.5.2.tar.gz

Derleme öncesi hazırlık: postgres kullanıcısının yaratılması, kaynak kod ve kurulum dizinlerinin hazırlanması:

# useradd -g users -m -d /home/pgdata -c 'PostgreSQL DBA' postgres
# chown -R postgres:users /usr/src/postgresql-6.5.2
# chown -R postgres:users /usr/local/pgsql
# su - postgres

Bundan sonraki işlemler postgres kullanıcısı olarak yapılacaktır. Derlemek için önce configure betiğini çalıştırarak derleme öncesi son yapılandırmayı tamamlamalısınız.

$ cd /usr/src/postgresql-6.5.2
$ ./configure --prefix=/usr/local/pgsql --enable-locale
$ gmake
$ gmake install

Veri Tabanını Tutucu Alanın Hazırlanması

Paylaştırılmış Nesnelerin (Shared Objects) sisteme dahil edilmesi:

$ exit
# echo '/usr/local/pgsql/lib' >> /etc/ld.so.conf
# ldconfig
# su - postgres

Veri Tabanı tutucu alanın hazırlanması

$ export PATH=$PATH:/usr/local/pgsql/bin
$ initlocation /home/pgdata

Şablon veri tabanının yaratılması

$ initdb --pgdata=/home/pgdata --pglib=/usr/local/pgsql/lib

PostgreSQL’de Türkçe Dil DesteÄŸi

Türkçe dil desteği Türkçe Alfabe sırasına uygun sıralamayı ve harfleri küçük harfe veya büyük harfe sorunsuz dönüştürmeyi kapsar. PostgreSQL VTYS bu desteğini işletim sisteminden alır.

Türkçe dil desteğinin etkinleştirilmesi için postgreSQL için bir betik hazırlayalım. Bir düz metin düzenleyicisi ile bir kabuk betiği oluşturalım.

$ vi /usr/local/pgsql/bin/postgresql.sh
--------------------------------------
#!/bin/sh
export LANG=tr
export LC_CTYPE=tr
export LC_COLLATE=tr_TR
export PATH=/usr/local/pgsql/bin:$PATH
rm -f /tmp/.s.PGSQL.5432
postmaster -i -p 5432 -S -D/home/pgdata
--------------------------------------
$ chmod 755 /usr/local/pgsql/bin/postgres.sh

Çalıştırma betiğini sistem açılış betiklerinin içine eklemeliyiz. Bunun için düz metin düzenleyiciniz ile /etc/rc.d/rc.local betiğini açın:

vi /etc/rc.d/rc.local
------------------------------------
echo "PostgreSQL VTYS baslatiliyor..."
su - postgres -c "/usr/local/pgsql/bin/postgresql.sh"
echo "PostgreSQL VTYS baslatildi."
-----------------------------------

PostgreSQL Ön Ucu

Veri Tabanı Yönetim Sistemlerinin yönetimi genelde VTYS ile birlikte gelen ön uç ile yapılır. Bu yönetim hem Veri Tabanlarının hem de verinin yönetimini kapsar. PostgreSQL VTYS ile gelen ön uç psql‘dir.

psql ile Veri Tabanlarına bağlantı:

  • Yerel Veri Tabanına geçerli kullanıcı kimliÄŸi ile eriÅŸim:
    psql -d vtadı
  • Yerel Veri Tabanına geçerli kullanıcı kimliÄŸi dışında bir kimlikle eriÅŸim:
    psql -u -d vtadı
  • Uzak Veri Tabanına geçerli kullanıcı kimliÄŸi dışında bir kimlikle eriÅŸim:
    psql -u -h bilgisayaradı.alanadı -d vtadı
  • Uzak Veri Tabanına geçerli kullanıcı kimliÄŸi dışında bir kimlikle ve varsayılan port numarası dışındaki bir porttan eriÅŸim:
    psql -u -h bilgisayaradı.alanadı -p 7386 -d vtadı

psql’in baÅŸlıca komutları:
psql’de komutlar ile baÅŸlar.

  • l
    PostgreSQL Veri Tabanı Yönetim Sistemi üzerindeki tüm Veri Tabanlarını listeler.
  • d
    Bağlı bulunan Veri Tabanındaki tüm kullanıcı tablo, indis ve serileri listeler.
  • z PostgreSQL VTYS’deki tüm veri tabanlarının eriÅŸim haklarını gösterir
  • h SQL deyimleri hakkında yardım verir
  • ? psql ön ucunun komutları hakkında yardım verir

DBA (DataBase Administrator) Kimdir?

Veri Tabanını oluÅŸturan, bakımını yapan ve çevrim içi kalmasından sorumlu kiÅŸidir. PostgreSQL VTYS’de bu kiÅŸi Veri Tabanını initlocation ve initdb programlarını kullanarak oluÅŸturan kiÅŸidir. Yani postgres kullanıcısıdır. Bu kiÅŸi VTYS’de tanımlı tüm Veri Tabanları üzerinde en üst düzey yetkiye sahiptir, Veri Tabanı kendisinin olmasa bile. Veri Tabanı Yönetim Sistemindeki diÄŸer tüm kullanıcıları DBA ya da DBA’ın yetki verdiÄŸi kullanıcılar yaratır ve eriÅŸim yetkilerini verir.

template1 Veri Tabanı

template1 Veri Tabanı şablon Veri Tabanıdır. Yeni yaratılan tüm Veri Tabanları, template1 Veri Tabanı içinde tanımlı tüm kullanıcı tablo, indis ve serilerini buradan oluşturur. initlocation ve initdb programları çalıştırıldıkları anda template1 Veri Tabanı oluşur.

Örnek Bir Veri Tabanının Yaratılması

psql’de SQL Deyimi ile

Kabukta PostgreSQL ile gelen araçları kullanarak

Örnek Bir Veri Tabanı Kullanıcısının Yaratılması

psql’de SQL Deyimi ile

Kabukta PostgreSQL ile gelen araçları kullanarak

Kullanıcı Yetkilerinin Tanımlanması

Erişim Yapılandırması

PostgreSQL VTYS’de eriÅŸim yapılandırması pg_hba.conf dosyası ile yapılır. pg_hba.conf dosyası Veri Tabanı Tutucu Alanın kökünde yer almaktadır. EriÅŸim denetim mekanizmalarında deÄŸiÅŸiklik yapmak için bu dosyayı düz metin düzenleyici ile düzenlemeniz ve PostgreSQL çok kullanıcılı ard ucunu yeniden baÅŸlatmanız yeterlidir.

pg_hba.conf dosyasında 3 çeşit satır bulunur:

  • # ile baÅŸlayan satırlar açıklama satırıdır, PostgreSQL tarafından göz ardı edilir.
  • local vtadı | all doÄŸrulama [argüman]
  • IP_adres vtadı | all doÄŸrulama [argüman]

Örnekler:

  • local all ident sameuser
  • local denemevt trust
  • 192.168.0.23 denemevt crypt
  • 192.168.0.0 geçicivt trust

Yedekleme ve Geri Yükleme

PostgreSQL VTYS’deki bir Veri Tabanını yedeklemek için pg_dump araç programı kullanılır. Bu programa verilebilen bazı argümanların anlamları:

-a Sadece veriyi döker.
-d dökümü SQL insert deyimleri olarak yapar.
-f dosya.sql dökümü dosya.sql dosyasına yazar.
-u farklı bir kullanıcı kimliği ile döküm alma.
-h uzak Veri Tabanının bilgisayar adresi.
-s sadece Veri Tabanı şemasını alır, veriyi dökmez.
-p uzak Veri Tabanına varsayılandan farklı bir porttan bağlantı kurar.

  • $ pg_dump -a -d -f denemevt.sql denemevt
    denemevt veri tabanındaki veriyi insert SQL deyimleri olarak denemevt.sql dosyayısına döker.
  • $ pg_dump -h bilgisayar.adresi -p 6789 -u -d -f denemevt.sql denemevt
    bilgisayar.adresi bilgisayarı üzerindeki denemevt Veri Tabanına, 6789 numaralı porttan bağlanır ve Veri Tabanı şeması ile veriyi SQL deyimleri olarak denemevt.sql dosyasına yazar.

Geri yükleme iÅŸlemi psql ile yapılmaktadır. psql’e i dosya.sql komutunu verdiÄŸimizde, dosya.sql dosyasından tüm SQL deyimlerini okur ve iÅŸletir. Bu ÅŸekilde pg_dump ile yedeklemiÅŸ olduÄŸumuz Veri Tabanına geri dönmüş oluruz.

  • Blogger Post
  • Delicious
  • Facebook
  • FriendFeed
  • Google Bookmarks
  • Technorati Favorites
  • Twitter
  • WordPress
  • Share/Bookmark

Yorum Yapın

Mesajınız