
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.
Leave a Comment