Ana içeriğe atla
Ana Sayfa

Ana menü

  • Anasayfa
  • Hakkımızda
  • Ürünler
  • Projeler
  • İletişim
  • Atölye
  • English
  • Turkish
PostgreSQL Yedek Alma(Backup) ve Kurma(Restore)

Veritabanları için ilişkisel modeli kullanan, SQL standart sorgu dilini destekleyen, güçlü özelliklere ve avantajlara sahip ücretsiz ve açık kodlu veritabanı yönetim sistemi olan PostgreSQL ‘de oluşturulan veritabanının yedeğini alma (Backup) ve alınan yedeği aynı veya farklı bir veritabanı adıyla tekrar kurma(Restore) işlemleri anlatılacaktır.

Dosyaları buradan indirebilirsiniz: https://github.com/eliif/PostgreSQLOtomatikYedekAlma/

 

waiting

 

Başlamadan önce yukarda belirtildiği gibi yeni bir veritabanı oluşturup bu veritabanının tablolarını ekledikten sonra yedek alma işlemi gerçekleştirilecektir. Hali hazırda olan veritabanlarınızın yedeğini almak için bu adımın yapılmasına gerek olmayacaktır.

waiting

 

DB_Project adında oluşturulan veritabanına gerekli tabloları eklendikten sonra yedeği alınmak istenen veritabanının üzerine gelinip sağa tıkladıktan sonra Backup seçeneği seçilmektedir.

waiting

 

Bu işlem gerçekleştikten sonra alınacak olan yedeğin adının ve dosya yolunun belirlenmesi gerekmektedir. Burada dikkat edilmesi gereken önemli bir nokta belirtilen yolun yazma yetkisine açık olması gerekmektedir. Aksi durumda Permission denied hatası ile karşılaşılacaktır.

waiting

 

Encoding ve Role name belirlendikten sonra Backup alma işlemi tamamlanmaktadır. Alınan Backup istenilirse farklı isimde bir veritabanına veya aynı veritabanı ismiyle kurulmak istenilirse var olan veritabanının silinmesi ve aynı isimde veritabanının oluşturulması durumunda tekrar kurulması mümkün olmaktadır. Bu işlem için veritabanının üzerine gelindikten sonra sağa tıklanıp Restore seçeneği seçilmelidir.

waiting

 

Filename, Format ve Role name belirlendikten sonra Restore işlemi tamamlanmaktadır.

Windows'da Otomatik Yedekleme

İlk olarak manuel olarak yedek alıp, alınan yedeği tekrar kurma işlemleri anlatılmıştır. Fakat bu işlem hem zaman hem de dikkat isteyen bir işlem olmaktadır özellikle büyük veritabanlarının yedek alma işlemlerini otomatik olarak gerçekleştirmek daha sağlıklı olmaktadır. Otomatik yedek alma işlemlerinin birçok yöntemi bulunmaktadır. Bu yöntemlerden pgdump ile yedek alma anlatılacaktır. Böylece belirlenen zamanlarda yedek alıp bir sonraki yedeğin alınacağı tarih geldiğinde bu yedeğin üzerine yazmasını engelleyip yeni bir yedek oluşturmasıdır.

İlk olarak istenilen bir dizinde yedeklerin saklanacağı bir klasör oluşturmak ve içine .bat uzantılı bir dosya eklemek gerekmektedir.

waiting

 

 

C:\YEDEKLER adında bir klasör oluşturulup backup.bat adında bir dosya eklenmiştir. Bu backup.bat dosyasınının içine gereken kod yazılması gerekmektedir.

@echo off

for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (

set dow=%%i

set month=%%j

set day=%%k

set year=%%l

)

set datestr=%month%_%day%_%year%

set BACKUP_FILE=<NameOfTheFile> _%datestr%.backup

SET PGPASSWORD=<PassWord>

echo on

pg_dump -h <HostName> -p 5432 -U <UserName> -F c -b -v -f %BACKUP_FILE% <DATABASENAME>

backup.bat dosyasına yazılan kod açıklanacak olursa;

datestr: Bu değişkene backup alınan tarih atanmaktadır. Böylece hangi yedeğin ne zaman aldığının bilgisi verilmektedir. Yukarda gün ay ve tarih bilgisi yer almaktadır istenirse saat ve dakika bilgisi de eklenebilir. Bunun için eklenilmesi gereken kod parçası aşağıdaki gibidir.

for /f "tokens=1-3 delims=: " %%i in ("%time%") do (

set hour=%%i

set min=%%j

set sec=%%k

)

for /f "delims=" %%i in ('dir "%target_backup_path%" /b/a-d ^| find /v /c "::"') do set count=%%i

set /a count=%count%+1

set datestr=%month%_%day%_%year%_% hour %_% min %

şeklinde değiştirmek yeterli olacaktır. En sonda örnek bir kod verilecektir.

BACKUP_FILE: <NameOfTheFile> yerine istediğiniz bir ad yazılmalıdır.

PGPASSWORD: <PassWord> yerine veritabanı şifresi yazılmalıdır.

HostName: Veritabanının bulunduğu sunucu adresi yazılmalıdır.

<UserName>: kullanıcı adı girilmesi gerekir.

<DATABASENAME>:Yedeği alınacak olan veritabanının adı yazılmalıdır.

pg_dump : Ortam değişkenlerinden PostgreSQL içindeki bin klasörünün yolu tanımlanmalıdır.

waiting

 

  • Bu işlemleri yaptıktan sonra Task Scheduler den görev tanımlamak gerekmektedir.

waiting

Task Scheduler açıldıktan sonra yukardada gösterildiği gibi yeni bir görev tanımlamak gerekmektedir. Görevin adı ve detayı yazılmalıdır.

waiting

Oluşturulan görevin ne sıklıkla tetiklenmesi gerektiği belirlenmektedir.

waiting

Görevin başlama tarihi ve saat belirlenmektedir. Ve belirlenen zamanda yedek alma işlemi tetiklenmektedir.

waiting

Oluşturulan backup.bat dosyasının yolunu belirlemek gerekmektedir.

waiting

Böylece görev tamamlanmaktadır. Artık belirlediğiniz tarihte otomatik yedek alma işlemi gerçekleştirilmiş olmaktadır.

İstenildiğinde oluşturulan görev güncellenebilmektedir.

waiting

Yukarda göründüğü gibi otomatik yedekleme işlemi gerçekleşmiş oldu.

.bat uzantılı dosyaya yazılması gereken kodun bir örneği aşağıdaki gibidir.

@echo off

for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (

set dow=%%i

set month=%%j

set day=%%k

set year=%%l

)



for /f "tokens=1-3 delims=: " %%i in ("%time%") do (

set hour=%%i

set min=%%j

set sec=%%k

)

for /f "delims=" %%i in ('dir "%target_backup_path%" /b/a-d ^| find /v /c "::"') do set count=%%i

set /a count=%count%+1

set datestr=%year%_%month%_%day%_%hour%_%min%

set BACKUP_FILE=yedek_%datestr%.backup

SET PGPASSWORD=2018

echo on

pg_dump -h 15.15.15.15 -p 5432 -U postgres -F c -b -v -f %BACKUP_FILE% DB_Project

Atölye

Mocha Js Test Framework’ü
Behavior Driven Development (BDD) Nedir ?
Expression vs. Statement
Veritabanı Yedeği Alan Script [BASH]
'Unable to load script from assets ‘index.android.bundle’ (React Native) hatasının çözümü
PostgreSQL Yedek Alma(Backup) ve Kurma(Restore)
Drupal Console ile Drupal 8 İçin Gereken Modül Yapısının Kurulması
Windows İçin Türkçe Drupal 7 Kurulumu
Cordova Android Facebook Login İşlemi
Çalışan bir Drupal 7 sitesinin MySql’den Postgresql’e geçirilmesi
JAVA7'de Callback Oluşturma
Drupal Genel Bigiler
Angular 6 ile Proje Oluşturma ve Servislere Bağlanma

TURNA TEKNOLOJİ ANONİM ŞİRKETİ

Teknopark Ankara Teknoloji Geliştirme Bölgesi

2224. Cd. No:1/C619 Yenimahalle ANKARA

 

Telefon: 0 312 504 29 40

Eposta: info@turnateknoloji.com

Fax: 0 312 504 29 40

Ana menü

  • Anasayfa
  • Hakkımızda
  • Ürünler
  • Projeler
  • İletişim
  • Atölye

waiting waiting waiting

TURNA TEKNOLOJİ ANONİM ŞİRKETİ © 2020