天天看點

PostgreSQL pg_backup_start_time() CST 時區轉換 問題

postgresql的實體備份方法之一 :

在使用pg_start_backup()函數建立備份點後,使用者可以開始拷貝pg的資料檔案。

調用pg_start_backup後,會建立一個檢查點,同時在$pgdata中建立一個backup_label檔案。

裡面包含了start time的資訊,是建立完檢查點後的時間。

但是,使用pg_backup_start_time得到的時間與之不符。

原因分析,首先我們要看看pg_backup_start_time的代碼

代碼如下

是以從代碼可以看到pg_backup_start_time是從backup_label中擷取到啟動時間,并轉化為帶時區的時間的。

cst時間,cst同時可以代表如下 4 個不同的時區:

是以問題其實是出在時區轉化這裡:

postgresql pg_backup_start_time應該是把cst用usa時區來處理的

繼續閱讀