如題,最近在學習PG資料庫,在測驗備份恢復的時候,遇到了一些問題,還請大神們指導一下,問題詳情如下:
基礎環境:
postgresql 9.2 Windows 32位
場景:
資料庫gx,gx下面有一張表tb1,其中有一些資料,如下圖

13:28:46做的基礎備份,此時含資料庫gx
13:34 洗掉資料庫gx
指定時間恢復到13:32:10,結果如下,資料沒有問題

執行完全恢復,也沒問題,被洗掉的資料庫是不存在的

問題來了,當我指定時間點恢復到13:32:45的時候,這時的預期結果應該是13:32:44.202這條資料還在,gx資料庫也應該還沒有洗掉,但是配置完recovery.conf后,啟動資料庫,在pgAdmin中,點擊gx資料庫,提示資料庫對應的物理檔案目錄不存在,類似下圖錯誤:

pg_log里面的日志如下:

測驗了好多次,都是相同的問題,恢復之前,資料庫gx對應的物理檔案目錄是存在的,啟動PG服務后,回放日志的時候,這個目錄就被洗掉了,但是看pg_log里面的日志,根本就沒有執行洗掉資料庫gx的那個操作的日志,所以資料庫應該是存在的,物理檔案也是存在的。
手動將資料庫gx對應的物理檔案目錄放到base目錄下,不做其他任何操作,資料庫正常,資料也正常,tb1中的資料剛好恢復到13:32:44.202那一條
猜測:PG在回放日志的時候,優先洗掉了資料庫的物理檔案,這應該是一個bug!!!
跪求大神們點撥一下小弟~~~
uj5u.com熱心網友回復:
第一次在CSDN上提問,跪求大神們指導~~uj5u.com熱心網友回復:
在9.5版本上測驗,也是同樣的問題,有人遇到過類似問題嗎?網上看到的指定時間點恢復的例子,都是在表內進行增刪改,這個我也測驗過,沒有問題,就是沒有涉及洗掉資料庫的例子uj5u.com熱心網友回復:
采用的是在線備份方式,步驟如下:備份:
1、select PG_START_BACKUP('xxx'); //開始備份
2、select PG_SWITCH_XLOG(); //切換日志
3、檔案拷貝方式備份data目錄
4、select PG_STOP_BACKUP(); //結束備份
5、備份WAL歸檔日志
模擬災難:停服務,洗掉data目錄
還原:
1、停止資料庫服務
2、將備份的data目錄拷貝到原路徑
3、清空pg_xlog下面的日志
4、創建recovery.conf,指定restore_command和recovery_target_time
5、啟動服務
然后,PG開始自己回放日志
最終結果如上面所說,涉及到洗掉資料庫的操作的時候,資料恢復的不正確
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/105100.html
標籤:PostgreSQL
上一篇:大神們知道.FDB格式的檔案怎么打開嗎、 用什么軟體
下一篇:用MYSQL撰寫以下資料庫陳述句
