Windows üzerinde otomatik postgreSql yedek alma işlemi.

Kurgumuzda her gece saat 2 de veritabanının yedeğinin alınması;
Bir txt dosyası oluşturup aşağıdakı komutları içine yapıştırın; farklı kayıdet seçeneği ile”yedekAl.bat” olarak kaydedin;

komutların kısaca işlevi:
D:\postgresql_db_yedek\yedek_son dizini altına fl_{tarih}.backup yedeğini oluşturur;
ör: fl_2014114_165538.backup

not: pg_dump.exe nin bulunduğu dizini kendi kurulum durumunza göre ayarlamanız gerekir;

komutlar:
@echo off

set hour=%time:~0,2%
if “%hour:~0,1%” == ” ” set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if “%min:~0,1%” == ” ” set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if “%secs:~0,1%” == ” ” set secs=0%secs:~1,1%
echo secs=%secs%
set saat=_%hour%%min%%secs%
for /f %%x in (‘wmic path win32_utctime get /format:list ^| findstr “=”‘) do set %%x
set mydate=%Year%%Month%%Day%%saat%

echo %mydate%

set BACKUP_DB=dbName
set BACKUP_FILE=D:\postgresql_db_yedek\yedek_son\fl_%mydate%.backup
SET PGPASSWORD=postgresUserPass
“C:\Program Files (x86)\pgAdmin III\1.18\pg_dump” -i -h serverIp -p 5432 -U postgresUserName -F c -b -v -f %BACKUP_FILE% %BACKUP_DB%

ECHO.
ECHO Yedek alındı.
EXIT

“yedekAl.bat” dosyasını olusturduktan sonra üzerine çift tıklayarak çalışıp çalışmadığını görün.
her gece saat 2 de çalışmasını ayarlayalım;
Denetim Masası\Tüm Denetim Masası Öğeleri\Yönetimsel Araçlar dizininden
Görev Zamanlayıcı uygulamasını çalıştırın, sırasıyla

Bir sonraki adımda Son diyerek işlemi bitiriyoruz; oluşturduğunuz görev üzerinde daha gelişmiş ayarlar düzenlemeler yapabilirsiniz, kısaca ve basitçe olmuştur inşallah 🙂

Oracle dan PostgreSQL’e DATABASE LINK

ilk olarak PotgreSQL odbc driver oracleın kurulu olduğu windows servera kurulacak;
ODBC veri kaynağı yöneticisinden
System DNS sekmesinde ekle butonuna tıklayarak PostgreSQL Unicode veri kynağını seçiyoruz.

PostgreSQL ile ilgili yerleri doldurup test butonuna tıkladığınzda bağlantı başarılı olduğunu görün.
Datasource butonuna tıklayıp “unknowns as LongVarChar” seçeneğini işaretleyin.
(Not: PostgreSQL de tanımlı olup oracelın tanımadığı veri tiplerini LongVarChar olarak gösterecek.
işeretlenmediğinde oracle ilgili alanı yok sayıyor .)

 

Oracle’ın kök dizininde hs\Admin klasörü içine initPG_SQL.ora dosyasını oluşturun
dosyanın içine

HS_FDS_CONNECT_INFO = PG_SQL
HS_FDS_TRACE_LEVEL = 0

parametrelerini yazın;

Oracle’ın kök dizininde network\Admin klasörü içinde tnsnames.ora dosyasının içine aşağıdaki tnsi ekleyin

PG_SQL =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=[ORA_DB_HOSTNAME])(PORT=[ORA_DB_PORT])) (CONNECT_DATA=(SID=PG_SQL))
(HS=OK)
)

Oracle’ın kök dizininde network\Admin klasörü içinde listener.ora dosyasının içine aşağıdaki ayarı yapın

SID_LIST_[LISTENER_NAME]=
(SID_LIST=
(SID_DESC= (SID_NAME=PG_SQL)
(ORACLE_HOME=[ORACLE_HOME])
(PROGRAM=dg4odbc)
)
)

LISTENER in aktif olması için aşağıdaki komutu cmd pencerinde çalştırın
lsnrctl reload [LISTENER_NAME]

Oracleda databas link oluşturup postgreSQL deki taplolara dbLink te girilen pguserName’in yetkileri dahilinde işlemler yapılabilir.

create database link PG_SQL connect to “pguserName” identified by “pguserPass” using ‘PG_SQL’;

select * from “schemaName”.”tableName”@PG_SQL;

 

Kolay gelsin…