Aylar: Eylül 2018

Postgresql Foreign Data Wrapper

Postgresql Foreign Data Wrapper

Postgresql yalın halde sunulmuş RDMS veritabanlarından birisidir.Bundan dolayı dblink  , Foreign Data Wrapper gibi özelliklerden faydalanmak için extension yüklememiz gerekir.

Postgresql de bulunan Foreign Data Wrapper teknolojisi ile   farklı uzak sistemlere bağlanmanızı ve   uzak sistemler üzerinden sorgulama ,yazma işlemleri yapmanıza imkan sağlar.  Foreign Data Wrapper özelliği Postgresql ‘in 9.1 versiyonu ile gelmiştir.

Fdw(Foreing Data Wrapper) ile farklı sistemlerden  veri çekmek,yazmak  için farklı  extensionların yüklenmesi gerekmektedir. Bunlardan bir kaçı aşağıdaki gibidir.

  • Postgresql – Postgresql  => postgres_fdw
  • Postgresql – MSSQL        =>tds_fdw
  • Postgresql  – Redis          => redis_fdw
  • Postgresql – MYSQL       => Mysql_fdw
  • Postgresql -MongoDB    =>Mongo_fdw

Aşağıdaki uygulamamız da Postgresql  den  Postgresql  sunucuya Fdw yapacağız.

 

Foreing Data Wrapper için ilk adım olan extension paketini aşağıdaki gibi ekliyoruz.

Extension paketi yüklendikten sonra foreign data wrapper için kullanacağımız  server’a erişebilmemiz için aşağıdaki komutu birinci makine de çalıştırıyoruz. Bu komut uzak bilgisayara bağlanmak için superuser kulanıcısı ile çalıştırılması gerekir.

Yukarıda erişmeye çalıştığımız makinenin connection bilgileri ile foreign data wrapper için serverımızı oluşturduk şimdi hangi kullanıcı ile erişeceğini belirtiyoruz.

Ben postgres user’ı ile yaptım siz farklı kullanıcı ile de yapabilirsiniz.

Server ve User Mapping ‘i oluşturduktan sonra aşağıdaki gibi tablomuzu oluşturuyoruz.

Ve foreign tablomuz oluşturuldu kontrol etmek için aşağıdaki komuttan faydalanabilirsiniz.

Komut ile kontrol ettiğimizde aşağıdaki c3 adındaki server ismimiz ile foreign_table tablomuzun oluşturulduğunu görüyoruz.

573 total views, no views today

Postgresql de Tablo Kolonlarını Ve  Veri Tiplerini Görmek

Postgresql de Tablo Kolonlarını Ve Veri Tiplerini Görmek

PG ADMIN yada herhangi ona benzer application  kullanmıyorsanız  ve  oluşturduğunuz tablonun   kolonlarında ki veri tipini görmek istiyorsanız aşağıdaki komut size yardımcı olacaktır. Bu komutu çalıştırmanız için postgres ‘ e bağlanmanız gerekmektedir.

\d tablo_adi


Yukarıda örnek de s ve md5  adında integer ve text  tiplerinde kolonlarımızın  olduğunu görmekteyiz.

Daha ayrıntılı istiyorsanız \d+ yazmanız yeterlidir.

1,167 total views, 1 views today

Postgresql Between Komutu

Postgresql Between Komutu

Veritabanın da bulunan tabloda iki değer arasında ki verileri çekmek için(ilk ve son değer de dahil olmak üzere) between komutunu kullanabilirsiniz. Between komutunun syntax’ı ve kullanımına örnek aşağıdaki gibidir.

Syntax: SELECT*FROM Tablo_adı Where kolon_adi BETWEEN ilk_deger  AND son_deger;

 

 

401 total views, 1 views today

Postgresql Tablo Taşıma

Postgresql Tablo Taşıma

Veritabanlarında bazen tablonun create script’ini alıp aynı tabloyu da farklı isimle oluşturmak isteyebiliriz ya da  içindeki verilerle beraber farklı isimde oluşturmak isteriz bunun için birkaç yöntem vardır  .Bu yazımda yeni tablo oluşturarak
aktarmaktan bahsedeceğim.

Veritabanına  bağlanıp kopyalayacağımız tabloyu görelim

Yukarıda d1 tablosunu  içi boş şekilde oluşturmak için aşağıdaki komutu kullanabilirsiniz.

 

Yukarıdaki komutu çalıştırdıktan sonra \dt+ ile kontrol ettiğimizde içinde data olmadan oluşturulduğunu görüyoruz.

İçinde veriler ile kopyalamak için aşağıdaki komutu kullanabiliriz.

Yukarıda görüldüğü gibi içinde ki data ile aktarılmış oldu. Bunlara ek olarak tablonuzun içinde ki farklı kayıtları atabiliriz.Örnek olarak  28056 ile  30000 kayıt arasında ki verilerle d1_condition isimli tablo oluşturuyoruz.

Aşağıda görüldüğü gibi d1_condition adında tablomuz oluşturulmuştur.

 

 

 

 

 

444 total views, 1 views today

Postgresql Dblink

Postgresql Dblink

Dblink iki postgresql sunucu arasında veri aktarımı için gereklidir.

Dblink kullanımı diğer veritabanlarına benzer yapıdadır fakat bu yapıyı kullanabilmemiz için extension paketini akfit hale getirmemiz gerekiyor.

Sonraki makalelerimde PostgreSQL ve  Oracle , PostgreSQL ve MSSQL arasında Dblink kurulumlarını anlatacağım.

Aşağıdaki komut yardımı ile dblink’i aktif hale getiriyoruz.

Aktif hale getirdikten sonra aşağıdaki komutu kullanarak bağlanabilirsiniz.

Aşağıdaki sorgu’da kullanılan  parametreleri aşağıdaki tablo’da bulabilirsiniz.

  • host=192.168.87.154 –> bağlanmak istediğiniz sunucu IP’si
  • user=postgres –> bağlanmak istediğiniz postgresql’de yetkisine sahip kullanıcı
  • password=P@sSWoRD1! –> bağlanmak istediğiniz postgresql’de yetkisine sahip kullanıcı şifresi
  • dbname=link_d1′ –> bağlanmak istediğiniz postgresql’deki veritabanı ismi
  • ‘select id,ad from db_lnk1’ –> bağlanmak istediğiniz postgresql’den çekmek istediğiniz sorgu
  • linktable(id int, ad varchar(150 –> linktable benim verdiğim bir isim. Siz başka bir isim de verebilirsiniz. linktable içinde sorgumuzda kullandığımız db_lnk1 isimli tablo’daki kolonların tip’lerini belirttik.

Bu iki sunucu arasında dblink ile sorgu çekebilmek için iki sunucu’nun postgresql port’ları üzerinden konuşabilmesi gerekiyor.

Kurumunuzda firewall kullanıyorsanız ilgili ekipten ilgili port’lar için karşılıklı erişim talep etmelisiniz.

Eğer firewall kullanmıyorsanız ve pg_hba.conf dosyasında kısıtlama yaptıysanız bu iki sunucu arasında erişimin açık olması için gerekli tanımlamaları yapmalısınız.

708 total views, no views today

Postgres e Bağlıyken İşletim Sistemi Seviyesinde Komut Çalıştırmak

Postgres e Bağlıyken İşletim Sistemi Seviyesinde Komut Çalıştırmak

Psql de işlem yapıyorsunuz fakat işletim sistemi tarafında bir şeye bakmaya ihtiyaç duydunuz bunun için Psql den çıkıp tekrardan bağlanmanız gerekir fakat \! komutu ile buna gerek kalmadan komutu çalıştırıp size sonucu dönecek ve tekrar bağlı olduğunuz postgresql kullanıcınız  ile devam edeceksiniz.

Kullanımı aşağıdaki gibidir.

395 total views, no views today

Postgresql  de Tablespace İçindeki Objeleri Görmek

Postgresql de Tablespace İçindeki Objeleri Görmek

Tablespaceler oluşturdunuz ve bunların içinde neler olduğuna bakmak istediniz fakat nasıl bakacağınızı bilmiyorsanız aşağıdaki script size yardımcı olacaktır.

 

Postgresql Tablespace oluşturmak

Postgresql Tablespace oluşturmak

Tablespace, veritabanı nesneleri için farklı saklama yerleri belirtmekte faydalıdır.

Tablespace neden gereklidir ?

Kurulum yaparken farklı bir dizin belirtmediyseniz ve default dizin dolduysa ve hiçbir şekilde dizini büyütülemiyorsa bu sizin veritabanızın çalışmasını engeller fakat farklı bir disk de tablespace oluşturulup sistem yeniden yapılandırılırsa sorun olmayacaktır.

Veritabanlarınızın bazıları hızlı çalışması gerekebilir ve bunları ssd dizinine yerleştirerek performansı artırabilirsiniz ya da arşivleme yapılan uygulama da eski dataları yavaş disk üzerinde tablespace oluşturarak  maliyeti düşürebilirsiniz.

Tablespace kavramı MSSQL de ki filegroup mantığına benzemektedir fakat MSSQL den farklı olarak tek filegroup’un içinde tek file bulunuyor birden fazla file oluşturulamıyor.

Veritabanları, şemalar, tablolar, indexler ve sequenceler tablespaceler içinde oluşturulabilir. Bunu yapmak için o tablespace üzerinde CREATE yetkisi olan kullanıcı ilgili komuta tablespace adını bir parametre olarak vermemiz gerekmektedir.

Bu kadar açıklamadan sonra örneğe geçelim

 

Tablespace için dizinimizi oluşturuyoruz.

Dizin oluşturulduktan sonra postgres kullanıcısına o dizinde yetki veriyoruz.

Dizin oluşturma ve yetkilendirme işlemi yapıldı sonra ki adım ise veritabanına bağlanıp tablespace’i oluşturmak olacak.

Tablespace de oluşturulduktan sonra aşağıdaki komut yardımı ile kontrol edelim;

spcname   | spcowner | spcacl | spcoptions

————+———-+——–+————

pg_default |       10 |        |

pg_global   |       10 |        |
f                   |       10 |        |

 

Yukarıda görüldüğü gibi tablespace oluşturduk.

Oluşturulan Tablespace’i default yapmak için ‘Default Tablespace’i Değiştirmek ‘ isimli yazıma göz atabilirsiniz.

Default Tablespace’i Değiştirmek

Default Tablespace’i Değiştirmek

Tablespace  hakkında detaylı bilgi ve örnekli anlatımı için  table space oluşturmak isimli yazımı okumanızı tavsiyE ederim.

Postgresql de objeleri oluştururken  farklı Tablespace belirtmezseniz  Postgresql default olarak pg_default  Tablespace de oluşturur.

Bunu değiştirmek isterseniz aşağıdaki parametreden faydalanabilirsiniz.

Postgresql’e bağlandıktan sonra;

Ör :

 

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa