Anasayfa » PostgreSQL FDW Kullanımı

PostgreSQL FDW Kullanımı

postgresql-fdw

PostgreSQL FDW Kullanımı, Veritabanı yöneticileri için farklı veritabanları arasında veri alışverişi yapmak, modern uygulamalar için çok önemli bir konu haline gelmiştir. PostgreSQL, genişletilebilirliği sayesinde, diğer veritabanlarıyla kolayca entegre olabilir. Oracle FDW (Foreign Data Wrapper) ise PostgreSQL’in, Oracle veritabanlarına bağlanmasını sağlayan güçlü bir özelliktir.

Bu yazıda, PostgreSQL veritabanında Oracle FDW nasıl kurulur ve kullanılır, adım adım inceleyeğiz. Ayrıca Oracle FDW’yi kullanarak, farklı veritabanlarında bulunan verilere erişim sağlama sürecini detaylı bir şekilde ele alacağız.

Oracle FDW Nedir?

Foreign Data Wrapper (FDW), PostgreSQL’in dış veritabanlarıyla etkileşime geçmesine olanak tanıyan bir özelliktir. Oracle FDW, PostgreSQL’e Oracle veritabanlarını bağlamanızı sağlar. Bu sayede PostgreSQL üzerinden Oracle veritabanındaki verilere sorgu gönderebilir, verileri okuyabilirsiniz.

postgres_fdw – PostgreSQL Documentation

PostgreSQL Tarafında Yapılması Gerekenler

1. oracle_fdw Eklentisini Kurmak için

PostgreSQL sunucusunda oracle_fdw‘yi kurmanız gerekir. Debian/Ubuntu için:

apt install postgresql-15-oracle-fdw

Red Hat/CentOS için:

yum install oracle_fdw

Oracle istemci kütüphaneleri (Oracle Instant Client) da sisteme yüklenmiş olmalıdır.

2. PostgreSQL Üzerinde Genişletmeyi Oluşturun

CREATE EXTENSION oracle_fdw;

Başka bir PostgreSQL veritabanını bağlamak için ise;

CREATE EXTENSION IF NOT EXISTS postgres_fdw;

Oracle_fdw ile Bağlantı Kurulumu

Aşağıda PostgreSQL üzerinden Oracle veritabanına bağlantı sağlamak için

3. Foreign Data Wrapper Tanımla

CREATE FOREIGN DATA WRAPPER oracle_fdw
  HANDLER oracle_fdw_handler
  VALIDATOR oracle_fdw_validator;

4. Oracle Sunucu Bağlantısını Tanımla

CREATE SERVER test_ora
  FOREIGN DATA WRAPPER oracle_fdw
  OPTIONS (dbserver '//scan-ip:1521/TS2DB.test.lokal');

dbserver parametresi Oracle bağlantı cümlesidir. SCAN IP veya doğrudan IP ile kullanılabilir.

Başka bir PostgreSQL veritabanını bağlamak için ise;

CREATE SERVER pg_remote_srv
  FOREIGN DATA WRAPPER postgres_fdw
  OPTIONS (host '192.168.116.150', port '5432', dbname 'remote_db');

5. Kullanıcı Haritalaması (User Mapping)

PostgreSQL kullanıcını mapping e ekle

CREATE USER MAPPING FOR aatmaca
  SERVER test_ora
  OPTIONS (user 'remote_user', password 'remote_pass');

Başka bir PostgreSQL veritabanını bağlamak için ise;

CREATE USER MAPPING FOR local_user
  SERVER pg_remote_srv
  OPTIONS (user 'remote_user', password 'remote_pass');

NOT:Güvenlik açısından şifrelerin .pgpass dosyasında tutulması önerilir.

6. Oracle Tablosunu PostgreSQL’de Tanımlama

Oracle’daki tabloyu PostgreSQL içinde bir foreign table olarak tanımlamak için:

CREATE FOREIGN TABLE test_yeni.table_1 (
  id numeric(38,0),
  adi VARCHAR(50)
)
SERVER test_ora
OPTIONS (schema 'TESTSCHEMA', table 'table_1');

PostgreSQL FDW için;

CREATE FOREIGN TABLE public.remote_employees (
  id INT,
  name TEXT,
  department TEXT
)
SERVER pg_remote_srv
OPTIONS (schema_name 'public', table_name 'employees');

Artık bu tablo PostgreSQL de kontrol edebilirsiniz.


Temizlik için ise

Aşağıdaki komutlarla yapılandırmaları silebilirsiniz:

DROP FOREIGN TABLE IF EXISTS public.remote_employees;
DROP USER MAPPING IF EXISTS FOR aatmaca SERVER pg_remote_srv;
DROP SERVER IF EXISTS pg_remote_srv;
DROP FOREIGN TABLE IF EXISTS test_yeni.table_1;
DROP USER MAPPING IF EXISTS FOR aatmaca SERVER test_ora;
DROP SERVER IF EXISTS test_ora;

Güvenlik ve Performans Notları

  • Oracle FDW sadece SELECT işlemleri için uygundur. INSERT, UPDATE ve DELETE desteklenmez.
  • Performans açısından Oracle tarafında uygun indexler olmalıdır.
  • Büyük veri setleri için LIMIT, OFFSET gibi sorgu sınırlayıcıları kullanılmalıdır.

Bu yazımızda PostgreSQL FDW Kullanımı konusuna değindik diğer yazılar için kategoriye gözatın. Tıklayın.

More Reading

Post navigation

Leave a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir