Continuous Archiving and Point-In-Time Recovery (PITR)

PITR aktive etmek ve Base Backup almak:

1- postgresql.conf   dosyası aşağıdaki şekilde değiştirilir:

archive_mode = on # allows archiving to be done   
# (change requires restart)
archive_command = 'copy "%p" "C:\\\Program Files\\\PostgreSQL\\\8.4\\\data\\\archive\\\%f"' # command to use to archive a logfile segment
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables

2- PostgreSQL server baştan başlatılır.
3- SELECT pg_start_backup(‘label’);  //Checkpoint oluşturmak   //where label is any string you want to use to uniquely identify this backup operation. (One good practice is to use the full path where you intend to put the backup dump file.)
4- Herhangi bir backup programıyla database klasörünün yedeği alınır (Örn: tar)

5- SELECT pg_stop_backup();     //Backup’un tamamlandığını belirtir.

Recovery:

1- Server durdurulur.
2- Çökmüş olan veya geri dönüştürülmesi istenen database klasörümüzü bir başka yere taşırız. (arşivi tutan klasör hariç)
3- Base backup bu klasörün yerine kopyalanır.        // Restore the database files from your base backup. Be careful that they are restored with the right ownership (the database system user, not root!) and with the right permissions. If you are using tablespaces, you should verify that the symbolic links inpg_tblspc/ were correctly restored.
4- Çöken DB klasörümüzdeki pg_xlog klasöründe arşive kopyalanmamış log dosyası kalmış ise, bunu base backup’ın pg_xlog klasörüne aynen taşırız.
5- recovery.conf dosyası yeni db klasörümüzün içinde oluşturulur:

Örn:

restore_command = 'copy "C:\\\Program Files\\\PostgreSQL\\\8.4\\\data\\\archive\\\%f" "%p"'
# You may set a recovery target either by transactionId, or
# by timestamp. Recovery may either include or exclude the
# transaction(s) with the recovery target value (ie, stop either
# just after or just before the given target, respectively).
#
recovery_target_time = '2010-04-20 11:00:50 EEST'
#
#recovery_target_xid = '671'
#
recovery_target_inclusive = 'true' # 'true' or 'false'
#
#
# If you want to recover into a timeline other than the "main line" shown in
# pg_control, specify the timeline number here, or write 'latest' to get
# the latest branch for which there's a history file.
#
recovery_target_timeline = 'latest' # number or 'latest'

6- Server tekrar başlatılır. Herhangi bir sorun yoksa recovery.conf dosyası recovery.done olarak rename olur.  “recovery_target_time” property’sinde belirtilen tarihe kadar olan transactionlar tekrar DB üzerinde çalıştırılarak bu state’e dönülür (veya recovery_target_xid ile istenen transaction’a dönülür. ). İşlemde hata olması durumunda “pg_log” klasöründeki log dosyalarında hatanın sebebi belirtilir.

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: