none
postgreSql veritabanının yedeyinin alınması ve geri yüklenmesi ile ilgili soru RRS feed

  • Soru

  • Iyi akşamlar arkadaşlar. Ben postgreSql veritabanindaki bir veritabanini sadeci bir veritabanini  (kod kullanarak) full backup -i almak ve lazım geldiyinde geri yüklemük istiyorum. Bunu bat command kullanarak bu şekilde yapıyorum. 

    set BACKUP_DB=veritabani adi
    set BACKUP_FILE=D:\Data\yedek.backup
    SET PGPASSWORD=xxxxx
    C:\progra~1\PostgreSQL\9.5\bin\pg_dump  -h localhost -p 5432 -U postgres -F c -b -v -f %BACKUP_FILE% %BACKUP_DB%
    

    Ve bu şekilde de geri yüklüyorum

    set BACKUP_DB=veritabani adi
    SET PGPASSWORD=xxxx
    C:\progra~1\PostgreSQL\9.5\bin\pg_restore  -h localhost -p 5432 -U postgres -d test -v  "D:\Data\yedek.backup"
    
    Veritabaının yedeyini aldıqdan sonra veritabanındakı kayıtların hepsini siliyorum. Sonra yedeyi geri yüklediyimde tüm veriler yerine geri dönüyor. Buraya kadar sorun yok. Sorun şu ki, veritabanının yedeyini aldıqdan sonra veritabanında verileri silmiyorum verileri güncelliyorum sonra önceden aldığım yedeyi geri yüklediyimde veritabaınında hiç bir şey deyişmiyor. Yani bu kod sadece veritabanında tüm kayıtlar silinerse işe yarıyor. Güncelleme olmuşsa yedeyi geri yüklediyimde veriler eski haline dönmüyor. Bunu nasıl düzelde bilirim? İnternetde arama yapdım nerdeyse hepsi ingilizce türkce detaylı şekilde yok. Benim ingilizcem yok o yüzden buraya yazdım. 

    13 Ocak 2016 Çarşamba 22:05

Yanıtlar

  • Duzeltecek bir sey yok. PostgreSQL dogrusunu yapiyor. Soyledigin sekilde geri yuklemek istiyorsan once database'i sil, -C parametresini ekle, olsun bitsin. 

    Istersen yeni bir database yaratip, ona da restore edebilirsin.

    pg_dump ve pg_restore, gerektikce kullanmak icin. Senin anlattiginda gereken bir durum yok, daha cok "hadi sunu bir deneyeyim" diye yapilan islem. 

    PostgreSQL'de MVCC var ve surekli bir arsivleme ve her hangi bir zamandaki haline kurtarma (PITR - Point In Time Recovery) var. Onlari da incele derdim ama Ingilizce diyorsun. Eger Ingilizce sorun ise, PostgreSQL database'i yoneten bir db admin yoksa, bir baska yerden db (yedekleme dahil) hizmeti almiyorsan bu sekilde devam edeceksin demektir.


    14 Ocak 2016 Perşembe 11:59
    Yanıtlayıcı