Postgresql’de Veri tabanı Ve Tablespace Kavramları

Database Oluşturulması

Postgresql veri tabanı sunucusunda her instance bir veya daha fazla veri tabanını yönetebilir. Postgresql’de veri tabanı kavramı SQL objelerini barındıran bir collection olarak tanımlanır.  Genel olarak her veri tabanı objesi bir veri tabanına ait olur. (System katalog objeleri hariç. Katalog objeleri bütün cluster’a aittir).

Postgresql hiyerarşik yapı şu şekildedir; Server, Veritabanı, Şema ve Table.

Sistem üzerinde tanımlı olan veri tabanları select datanase from pg_database(); komutu ile yada psql üzerinde \l komutu ile görüntülenebilir.

Veri tabanı oluşturma işlemi Create database komutu ile gerçekleştirilir. Bu komutu çalıştırıacak kullanıcının database creation yetkisinin olması gerekir. Aksi belirtilmediği sürece veri tabanının owner’ı kendisini yaratan user olur.

Postgresql sunucusunda ilk oluşturulan veri tabanı initdb işlemi sırasında postgres isimli veri tabanıdır. Daha sonra ise yine initdb işlemi sırasında template1 veri tabanı oluşturulur. Sistemde Create database komutu ile bir veri tabanı oluşturulduğunda, template1 veri tabanının bir kopyası oluşturulur.Aşağıdaki örnekte template1 veritabanında oluşturulan tablo yeni oluşturulan veri tabanında da erişilebilir olması template1 veri tabanından yeni veri tabanının kopyalandığını gösterir.

Bir veri tabanına bağlı connection’ları görünteleyebilmek için aşağıdaki komut kullanılır.

SELECT  * FROM pg_stat_activity WHERE datname = ‘dbname’;

Veri tabanına bağlı olan bir connection’I kill etmek için SELECT pg_terminate_backend (pid) komutu kullanılır. Aşağıdaki komut ise veri tabanına bağlı tüm connection’ları kill etmek için kullanılır.

SELECT pg_terminate_backend (pid) FROM pg_stat_activity WHERE datname = ‘dbname’;

Postgresql Veri Tabanı ALTER VE DROP İşlemleri

Alter database komutu ile mevcut veri tabanı üzerinde değişiklik yapılabilir parametreler veri tabanı seviyesinde değiştirilebilir. Bir Postgresql veri tabanını yeniden isimlendirmek için veya drop etmek için o veri tabanına bağlı bir kullanıcı olmamalıdır. Aşağıdaki komut ile veri tabanı adı değiştilir.

ALTER DATABASE dbname RENAME to newname ;

Veri tabanı silme işlemi DROP DATABASE dbname komutu ile gerçekleştirilir. Veri tabanına bağlı bütün objeler silinir. Veri tabanı silme işlemi geri alınamaz.

Postgresql Veri Tabanında TableSpace Kavramı

Postgresql’de tablespace veri tabanı objelerine ait datafile’ların disk üzerinde tutulacağı dizini belirler. Ve logical isimlendirmeyi disk üzerinde fiziksel bir lokasyona maplemek için kullanılır.

İki adet default tablespace vardır.

  • Pg_defaulttablespace bütün userların verisini tutan tablespace’dir.
  • Pg_globaltablespace ise global veriyi depolar.

CREATE TABLESPACE tablespace_name OWNER user_name LOCATION directory_path;

Komutu yeni bir tablespace oluşturmak için kullanılır. Pg_ ile başlayan isimler kullanılamaz çünkü sistem tablespace’leri bu takma ad ile başlar.

\db+  komutu ile tablespaceler görüntülenebilir.

Bir tablespace’in içerinde veri tabanı yaramtak için sql komutundan sonra tablespace adı verilmelidir.

Aşağıdaki komutlar ile bir tablespace farklı tablespace’ler arasında taşınabilir. Bir tablespace içerinsindeki bütün tabloları başka bir tablespace’e taşımak için ikinci komut kullanılır.

alter table tablename set tablespace pg_default;

alter table all in tablespace space2 set tablespace pg_default;

Aşağıdaki komut tabloların hangi tablespace üzerinde tutulduğunu öğrenmek için kullanılır.

select * from pg_tables where tablespace = ‘tablespacename’;

Veysel YUKSEL
Latest posts by Veysel YUKSEL (see all)

Veysel YUKSEL

RDBMS ve NoSQL veri tabanı yönetimi ve Big Data teknolojileri.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir