Ay: Ekim 2018

Postgresql Random Data Yüklemek

Postgresql Random Data Yüklemek

Bazı durumlarda veritabanına random veriler girerek  veritabanının boyutunu artırmak isteyebiliriz .Bunun için aşağıdaki scripti çalıştırabilirsiniz.

Aşağıdaki scriptte t_random adında tablo  oluşturuyoruz.

CREATE TABLE t_random AS SELECT s, md5(random()::text) FROM generate_Series(1,5) s;

Tablo oluşturulduktan sonra insert işlemini yaparak tablonun boyutunu arttırıyoruz.

INSERT INTO t_random VALUES (generate_series(1,1000000000), md5(random()::text));

Aşağıdaki komut yardımı ile de tablonun boyutunu öğrenebiliriz.

SELECT pg_size_pretty(pg_relation_size('t_random'));

 

 464 total views

MSSQL CPU’yu Yoran Sorgular

MSSQL CPU’yu Yoran Sorgular

Veritabanında performans çalışması yapmak istediniz ve cpu değerleriniz yüksek çıkıyor  aşağıdaki sorgu ile  cpu’yu yorgan sorguları kontrol edebilir ve bun sorgu sonucu çıkan sorguları  düzenleyerek cpu değerlerinizi düşürebilirsiniz.

 

Select

     q.[text],

     SUBSTRING(q.text, (qs.statement_start_offset/2)+1,

        ((CASE qs.statement_end_offset

          WHEN -1 THEN DATALENGTH(q.text)

         ELSE qs.statement_end_offset

         END - qs.statement_start_offset)/2) + 1) AS statement_text,

     qs.creation_time,          

     qs.last_execution_time,

     qs.execution_count,

     qs.total_worker_time/1000000 as total_cpu_time_sn,

     qs.total_worker_time/qs.execution_count/1000 as avg_cpu_time_ms,

     qp.query_plan,

     DB_NAME(q.dbid) as database_name,

     q.objectid,

     q.number,

     q.encrypted

from

    (select top 50

          qs.creation_time,

          qs.last_execution_time,

          qs.execution_count,

               qs.plan_handle,

          qs.total_worker_time,

          qs.statement_start_offset,

          qs.statement_end_offset

    from sys.dm_exec_query_stats qs

    order by qs.total_worker_time desc) qs

cross apply sys.dm_exec_sql_text(plan_handle) q

cross apply sys.dm_exec_query_plan(plan_handle) qp

--where DB_NAME(q.dbid)='Database_Adı'

order by qs.total_worker_time desc

 

 621 total views

Postgresql User Adını Değiştirmek

Postgresql User Adını Değiştirmek

Postgresql de kullanıcı oluşturdunuz fakat isminin değişmesi istendi ya da farklı nedenlerden dolayı  değiştirmeniz gerekti  bunun için kullanıcıyı silip tekrar oluşturup tekrar yetkilendirmenize gerek yok aşağıdaki komutu kullanarak user adını değiştirebilirsiniz.

 

ALTER USER  Kullanıcının_eski_ismi RENAME TO Kullanıcının_yeni_ismi;

 420 total views

Postgresql de uzun süren sorguları bulmak ve kill etmek

Postgresql de uzun süren sorguları bulmak ve kill etmek

Veritabanın performansını izlemek veya anlık lockları bulup kill etmek için ya da  modifiye etmek için aşağıdaki sorgulardan faydalanabilirsiniz.

SELECT  pid,  
now() - pg_stat_activity.query_start AS duration,
  query, 
 state  
FROM pg_stat_activity

WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';

Yukarıdaki komutta 5 dakikadan uzun süren sorguları getirir.Aşağıdaki komut yardımı ile ExclusiveLock olan sorguları bulmanıza yardımcı olur.

SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa ON pl.pid = psa.pid where mode ='ExclusiveLock';

Yukarıdaki sorgular yardımı ile sorgunuzu buldunuz ve sorgunuza ait pid(processes id) değerini öğrendikten sonra aşağıdaki komut yardımı ile durdurabilirsiniz.

SELECT pg_cancel_backend (__ pid__);

Sorguyu tamamen pg_cancel_backend komutunu kullanarak durdurmak birkaç saniye sürebilir .

Yada  aşağıdaki komutu kullanarak direk o session’ı kill edebilirsiniz .

SELECT pg_terminate_backend (__ pid__);

pg_terminate_backend komutu  tutarsızlığa neden olabilir , dikkatli kullanmanızı tavsiye ederim.

 466 total views

Postgresql Örnek Veritabanı Yükleme

Postgresql Örnek Veritabanı Yükleme

Postgresql de bazen denemeleri ,testleri yapacağımızda örnek veritabanına ihtiyaç duyabiliyoruz. Bunun için epel reposunda da bulunan  pagila’yı kullanabiliriz. Pagilla’yı yüklemek için aşağıdaki adımları izleyebilirsiniz.

Pagila veritabanını yüklemeden önce epel reposunu yüklemeniz gerekiyor.
Aşağıdaki komut yardımı ile epel reposunu yükleyebilirsiniz.

yum install epel-release

Repoyu indirdikten sonra pagilanın dosyalarını yüklemek için aşağıdaki komutu çalıştırıyoruz.

yum install pagila

Yukarıdaki gibi pagila’nın dosyaları kuruldu şimdi nerede olduğuna bakalım.

cd / yaptıktan sonra  aşağıdaki komut yardımı ile paketi arıyoruz.

find / -name 'pagila*';

Yukarıda pagilanın dosyalarının bulunduğu path’i gördük sıra bunları yüklemeye geldi bunun için postgrese bağlanıyoruz.

Psql -U postgres

Postgres user’ı ile bağlandık ve şimdide  pagila veritabanı oluşturup içine dizinlerdeki dosyaları yükleyelim.

create database pagila;

Pagila veritabanımız oluştuktan sonra “\c pagila” yazarak bağlanıyoruz ve aşağıdaki işlemleri sırası ile yapıyoruz.

Schama ,tablo,type ,domain,function gibi nesneler aşağıda oluşturuluyor.

\i /usr/share/pagila/pagila-schema.sql

Yukarıda oluşturulan tablolara insert scripti yardımı ile veriler yükleniyor.

\i /usr/share/pagila/pagila-insert-data.sql

Tablolar alter ediliyor ve copy komutu ile veriler yükleniyor.

 \i /usr/share/pagila/pagila-data.sql

Veritabanı oluşturduk ve içine veriler basıldı psql e bağlanarak \l+ artı komutuyla  veritabanının boyutunu kontrol edebilirsiniz.

 869 total views

PostgreSQL kurulumu

PostgreSQL kurulumu

Repolarda genel de olan Postgresql 9.2 versiyonudur isterseniz bu versyonu kurabilirsiniz.

https://www.postgresql.org/download/linux/redhat/

Yukarıdaki linkten işletim sistemini versiyonu seçtikten sonra çıkan yum install ile başlayan linki kopyalayarak yapabilirsiniz.

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

Yukarıdaki yum install paketini yükledikten sonra  /etc/yum.repos.d pgdp-10-centos adında repo yüklenmiş olacaktır.

Repo yüklendikten sonra kuruluma geçiyoruz.

yum install postgresql10-contrib postgresql10-server postgresql10 postgresql10-dev postgresql10-lib

Yukarıdaki komut çalışıtırdıktan sonra aşağıdaki gibi onay yeri gelecektir.

Y  yazarak onaylayıp devam ediyorz

Complete! Yazısını gördükten  aşağıdaki komut yardımı ile postgres kullanıcısına bağlanıyoruz .

Su postgres

Sıradaki işlem initdb yapmak oluyor;

 /usr/pgsql-10/bin/initdb /var/lib/pgsql/10/data/

İnitdb den sonra ki kısımı isterseniz değiştirebilirsiniz ( /var/lib/pgsql/10/data yazılan yer)

Root kullanıcısına geçerek aşağıdaki komutu çalıştırıp servisi enable ediyoruz.

systemctl enable postgresql-10.service

Enable ettikten sonra aşağıdaki komut yardımı ile servisi başlatıyoruz.

 systemctl start postgresql-10.service

Bu işlem de yapıldıktan sonra servisimizi kontrol edelim.

systemctl status postgresql-10.service

Servisimiz çalıştığını aşağıdaki gibi görüyoruz.

 

 

 

 644 total views

Postgresql Makefile54  Hatası ve Çözümü

Postgresql Makefile54 Hatası ve Çözümü

Postgresql’in reposunda olmayan farklı extension paketini yüklemeye çalıştığımızda aşağıdaki hataya benzer hata
alabiliriz bunun çözümü için  paketleri yüklememiz gerekiyor bu paketleri yükledikten sorun çözülecektir.

Makefile:54: /usr/pgsql-10/lib/pgxs/src/makefiles/pgxs.mk

Extensionları yüklememiz için postgresql libs ve dev paketlerini yüklememiz gerekir.

Postgresql10 da make54 hatası almamak paketi için  aşağıdaki paketler yüklenmelidir.

yum install centos-release-scl-rh

Postgresql library paketini yüklüyoruz.

yum --enablerepo=centos-sclo-rh-testing install rh-postgresql10-postgresql-libs
yum install postgresql-libs

Postgresql sürümüne bağlı olarak dev paketini yüklüyoruz

yum install postgresql10-devel-10.5-1PGDG.rhel7.x86_64.rpm

Bunlar yüklendikten sonra tekrar  işlemlerinize devam edebilirsiniz.

 745 total views

Postgresql  MSSQL Server arasında Foreign Data Wrapper

Postgresql MSSQL Server arasında Foreign Data Wrapper

Postgresql de farklı veritabanlarından veri çekilebileceğinden  Postgresql Foreign Data Wrapper isimli yazımda bahsederek postgresql den postgresql e fdw(Foreign Data Wrapper)  yapmıştık bu  yazımda Mssql ile Postgresql arasında  tds_fdw extensionından faydalanarak bağlantı yapacağız .

Postgresql den Mssql Server’a bağlanmak için tds_fdw extensionından faydalanacağız fakat bundan önce  kurmamız gereken birkaç paket olacak bunları aşağıdaki gibi yüklememiz gerekiyor.

Kuruluma geçmeden önce  Postgresql kurulumunu lib ve dev paketlerini yüklemeden yaptıysanız versiyonunuza göre rpm paketlerini bularak yüklemeniz gerekmektedir.

Postgresql de lib ve dev paketlerini kurduk varsayarak devam ediyoruz ve root kullanıcısında devam ediyoruz.

GNU Derleyicisini extension paketi  Tds_fdw uzantısının bağlı olduğu paketleri beraberinde getirdiği için   yüklememiz gerekiyor.

Yum install gcc-y

Başka bir extension bağımlılığımız  için yüklememiz gerek epel reposudur. Bunun sebebi extensionımız için gerekli olan freetds ‘in içinde olmasıdır.

İlk olarak aşağıdaki gibi rpm paketini indiriyoruz.

 746 total views,  2 views today

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