Aylar: Kasım 2018

make: gcc : Command not found make:*** [oracle_fdw.o] Error 127 Hatası ve Çözümü

make: gcc : Command not found make:*** [oracle_fdw.o] Error 127 Hatası ve Çözümü

Yüklemek istediğiniz extension paketi için bazen standart  kurulumlar yetmez bunun sebebi kullanacağınız extensionın farklı bağımlılıkları olduğundan dolayıdır.Bağımlılıkları yüklemeden  Make komutunu çalıştırdığınızda  aşağıdaki gibi hata alıyorsanız bunun sebebi gerekli paketlerin olmamasından dolayıdır.

gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -DLINUX_OOM_SCORE_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fPIC -I/sdk/include -I/oci/include -I/rdbms/public -I/usr/include/oracle/18.3/client -I/usr/include/oracle/18.3/client64 -I/usr/include/oracle/12.2/client -I/usr/include/oracle/12.2/client64 -I/usr/include/oracle/12.1/client -I/usr/include/oracle/12.1/client64 -I/usr/include/oracle/11.2/client -I/usr/include/oracle/11.2/client64 -I/usr/include/oracle/11.1/client -I/usr/include/oracle/11.1/client64 -I/usr/include/oracle/10.2.0.5/client -I/usr/include/oracle/10.2.0.5/client64 -I/usr/include/oracle/10.2.0.4/client -I/usr/include/oracle/10.2.0.4/client64 -I/usr/include/oracle/10.2.0.3/client -I/usr/include/oracle/10.2.0.3/client64 -I. -I. -I/usr/include/pgsql/server -I/usr/include/pgsql/internal -D_GNU_SOURCE -I/usr/include/libxml2   -c -o oracle_fdw.o oracle_fdw.c

make: gcc: Command not found

make: *** [oracle_fdw.o] Error 127

 

Yukarıdaki hatanın çözümü için   aşağıdaki paketi yüklemeniz gerekmektedir.

yum install gcc

 

 725 total views

PostgreSQL Oracle_fdw

PostgreSQL Oracle_fdw

PostgreSQL yabancı sistemlere bağlanmak veri almak ve sorgulamak için kullanılan ve ortak cevap getirmek veya konuşturmak için tercüman görevi görmektedir. PostgreSQL  de birden fazla fdw(Foreign Data Wrapper ) bulunmaktadır .Bu yazımda bunlardan biri olan oracle_fdw kurulumu ve gerekli paketler nelerden ve nasıl yüklenir onları anlatacağım.

Oracle _fdw kurulumu yaparken oracle instant client’ı yüklememiz gerekiyor .İnstantclient da ise;

İnstantclient-basic_linux,
instantclient_sdk_linux,
instantclient_sqlplus

rpm’lerini yüklemeniz gerekiyor (Versiyon farketmez.)Kurulum için Postgresql için oracle_client kurulumu isimli makalemden yararlanabilirsiniz.

PostgreSQL için Oracle Client Kurulumu

Postgresql tarafında ise standart kurulum yaptıysanız postgresql-devel ve postresql-lib rpm paketlerini versiyonunuza göre indirip kurmalısınız. Oracle_client kurulumu için PostgreSQL için oracle client kurulumu isimli makalemi okuyabilirsiniz.

Gerekli oracle_client sürümünü indirip kurduktan sonra aşağıdaki adımları izleyerek oracle_fdw kurulumunu yapabilirsiniz.
İlk olarak Oracle_fdw extensionını indiriyoruz , indirmek için aşağıdaki linkten faydalanabilirsiniz.

https://github.com/laurenz/oracle_fdw

Oracle_fdw extension dosyalarını indirip makinemizdeki herhangi klasöre aktardıktan sonra  klasöre giriyoruz ve aşağıdaki komutu çalıştırıyoruz.

make

Klasörün içinde make komutunu çalıştırdıktan sonra aşağıdaki gibi çıktı almanız gerekiyor.

Yukarıdaki gibi çıktı almadıysanız ve oracle_utils.c:22:17: fatal error: oci.h: No such file or directory ve make: gcc : Command not found make:*** [oracle_fdw.o] Error 127  gibi  benzer hata aldıysanız Oracle_fdw oracle_utils.c:22:17: fatal error: oci.h: No such file or directory hatası çözümü isimli makelemden ve make: gcc : Command not found make:*** [oracle_fdw.o] Error 127 Hatası ve Çözümü  isimli makalelerden yararlanabilirsiniz.

Yukarıdaki işlem tamamlandıktan sonra  ,bir sonra ki komutu çalıştırarak devam edebilirsiniz.

 make install

Son olarak aşağıdaki komutu çalıştırıyoruz ve  işletim seviyesinde yapılan işlemlerimiz sona eriyor.Bu adımı yapmadan  önce bunun amacı PostgreSQL  kodu ile oracle_fdw kodunu beraber compile etmek için kullanılır.

make NO_PGXS=1

Psql ile postgres’e bağlandıktan sonra aşağıdaki komutu çalıştırarak extensionımızı oluşturuyoruz.

create extension oracle_fdw;

Extension kurulduktan sonra diğer extension kurulumlarında olduğu gibi server oluşturuyoruz.

CREATE SERVER oradb1 FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 'oracle_ip:1521');

User mapping oluşturuyoruz.

CREATE USER MAPPING FOR pguser SERVER oradb1 OPTIONS (USER 'oracleuser', PASSWORD 'OracleUserSifre');

Ve son olarak foreign table oluşturuyoruz.

CREATE FOREIGN TABLE ftbl_ora_test1
 (
 id int OPTIONS (key 'true') NOT NULL,
 item varchar(10),
 upd_date timestamp
 )
 SERVER oradb1 OPTIONS (SCHEMA 'oracle_schema', TABLE 'oracle_tablo');

Tablomuzu da oluşturduktan sonra oracle_fdw extensionımızı kullanabiliriz artık.

 1,676 total views

PostgreSQL için Oracle Client Kurulumu

PostgreSQL için Oracle Client Kurulumu

Oracle_client  localinizden uzak Oracle veritabanlarına bağlanmanız için gereklidir. Oracle_client ile localinizden  oracle’a bağlanmanız için gereklidir. Postgresql de Oracle_fdw için bu kurulumun aşağıdaki gibi yapılması gerekiyor.

İlk olarak oracle’ın sitesinden rpm paketini aşağıdaki linkten indiriyoruz.

https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Linkten aşağıda işaretli olan rpm paketini indirerek makinemize yüklüyoruz.

Paketi yükledikten sonra aşağıdaki komutu çalıştırarak rpm paketini yüklüyoruz.

sudo yum install oracle-instantclient18.3-basic-18.3.0.0.0-1.x86_64.rpm

Kurulum tamamlandı fakat client’ımızın düzgün çalışması için aşağıdaki gibi konfigurasyonları yapmamız gerekiyor.

İlk olarak  link’i update ediyoruz.

sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > \

      /etc/ld.so.conf.d/oracle-instantclient.conf"

Bu işlem bittikten sonra yaptığımız konfigürasyonun  çalışması için aşağıdaki komutu çalıştırıyoruz.

sudo ldconfig

LD_LIBRARY_PATH  environmentını tanıtıyoruz;

export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH

Yukarıdaki Rpm paketini yükledikten sonra sorun yaşamamak için aşağıdaki paketleri yüklemenizi tavsiye ederim.Oracle client 18.3 versiyonunu kurduğum için bu versiyonları indirdim siz versiyonunuza göre indirmelisiniz.

  • oracle-instantclient18.3-sqlplus-18.3.0.0.0-1.x86_64.rpm
  •  oracle-instantclient18.3-devel-18.3.0.0.0-1.x86_64.rpm

 

 

 799 total views,  1 views today

Oracle_fdw   oracle_utils.c:22:17: fatal error: oci.h: No such file or directory   hatası çözümü

Oracle_fdw oracle_utils.c:22:17: fatal error: oci.h: No such file or directory hatası çözümü

 

Oracle_fdw de make yaparken yukarıdaki gibi hata alıyorsanız bunun sebebi ORACLE_HOME için dizin belirtmediğinizden kaynaklanıyor .

Bu hatanın çözümü için  LD_LIBRARY_PATH pathini belirttiğiniz yer ile oracle_home pathini aynı belirtmemiz gerekiyor bunun için aşağıdaki adımları izleyebilirsiniz.

echo $LD_LIBRARY_PATH

LD_LIBRARY_PATH’i gördük şimdi ise Oracle_home için aynı şeyi yapıyoruz.

export ORACLE_HOME=/root/Oracle_client/instantclient_18_3

ORACLE_HOME ‘u tanımladıktan sonra tekrar make yaparak devam ediyoruz.

Yukarıdaki gibi make komutu sorunsuz şekilde çalıştı.

 1,255 total views

MSSQL de servisin change pending durumda kalması

MSSQL de servisin change pending durumda kalması

MSSQL de bazı sebeplerden dolayı servisi restart etmeniz gerekebilir ve servisi restart ettiğiniz de aşağıdaki gibi servisiniz change pending modda kalabilir .  MSSQL servisine bu durumda  hiçbir şekilde müdahele edemeyebilir ve biran önce sorunun çözülmesi için restart yapmak isteyebilirsiniz.

SQL Server servisleri kapatırken  loginleri disable’a çeker(sysadmin ve serveradmin hariç) , sp_who ve sp_lock  çalıştırır ve bunlardan gelen sonuçların(Transact SQL, Stored Procedurel) bitmesini bekler. Bu işlemler de tamamlandıktan sonra instance üzerindeki tüm veritabanlarında checkpoint yapar  ve servis durdurulur.

Fakat aşağıda belirteceğim yöntemle checkpoint yapmadan tüm kullanıcı işlemlerini sonlandırır .Servis başladığında  sonlandırılan işlemler rollback edilir.

MSSQL Servisiniz change pending durumda olsa dahi DAC (Dedicated Admin Connection) ile bağlantıya gerek kalmadan SSMS (SQL Server  Management Studio ) üzerinden connection kurabilirsiniz ve connection kurduktan sonra aşağıdaki komutu yeni bir session açarak çalıştırabilir ve  stop edebilirsiniz.

SHUTDOWN WITH NOWAIT

Komutu çalıştırdıktan sonra aşağıdaki gibi mesaj aldıysanız servisiniz durdu demektir .

 658 total views

PostgreSQL de Universal Unique İdentifier (UUID)

PostgreSQL de Universal Unique İdentifier (UUID)

UUID, “Universally unique identifier” nin kısaltılmışıdır. Kabaca çevirirsek, evrensel benzersiz tanımlayıcı diyebiliriz . Veritabanında satırlara tanımlayıcı olarak integer kullanırız. UUID ise, 36 karakterlik, sayılar ve harflerden oluşan, bir settir ve en önemli özelliği, yüksek derecede benzersiz olmasıdır.

PostgreSQL de bu  özelliği kullanabilmek için uuid-ossp extension’ını yüklememiz gerekmektedir.

Aşağıdaki komut yardımı ile extension’ı yükleyebiliriz;

CREATE EXTENSION "uuid-ossp";

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki gibi  oluşturulduğunu görüyoruz.

Extension’ı oluşturduk . Deneme amaçlı UUID değer oluşturalım ve bunu da  uuid_generate_v1() fonksiyonunu kullanarak oluşturalım .uuid_generate_v1() fonksiyonu ,bilgisayarın mac adresi,geçerli zaman damgası ve rastgele  değer kombinasyonuna dayanarak yeni UUID değerini  oluşturur.

t1  adında tablo oluşturuyoruz ve bu tablonun için UUİD veri tipinde kolonumuzu oluşturuyoruz.

CREATE TABLE t1 (
    id uuid DEFAULT uuid_generate_v4 (),
    Adı VARCHAR NOT NULL,
    Soyadı VARCHAR NOT NULL,
    email_adresi VARCHAR NOT NULL,
    telefon VARCHAR,
    PRIMARY KEY (id)
);

Tablomuz oluşturuldu  .Bu tabloya insert yaparak sonuçlara bakalım.

INSERT INTO t1 (
    Adi,
    Soyadi,
    email_adresi,
    telefon
)
VALUES
    (
        'Faruk',
        'Erdem',
        'farukerdemm@outlook.com.tr',
        '4452'
    ),
    (
        'ufuk',
        'Erdem',
        'jasda@hotmail.com',
        '787078'
    ),
    (
        'Utku',
        'Erdem',
        'asd@hotmail.com',
        '4011212'
    );

Aşağıda görüldüğü gibi id kolonunda UUID veri tipinde verilerimizi görüyoruz.

 

 

 620 total views

PostgreSQL Şema İsmini Değiştirmek

PostgreSQL Şema İsmini Değiştirmek

Syntax durumlarından büyük küçük harflerine takılmamak için veya farklı isim belirlemek için şema ismini değiştirmek isteyebiliriz. Bunun için aşağıdaki script’i kullanabiliriz.

Aşağıdaki gibi ilk olarak \dn komutu ile şemaları listeliyoruz.

Faruk şemasının ismini aşağıdaki komut yardımı ile  değiştiriyoruz.

ALTER SCHEMA faruk RENAME TO ERDEM;

Şema ismini ERDEM olarak değiştirdik ve \dn komutu ile ismin değişip değişmediğini kontrol edelim.

Yukarıda görüldüğü üzere faruk şemasını erdem olarak değiştirdik.

 471 total views

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