Postgresql

PostgreSQL 備份 + gzip

  • February 11, 2021

我們需要將 PostgreSQL 數據庫備份發送給 CRM 開發人員。我們發送給他們並得到回饋,備份無法“解壓縮”,因為存檔已損壞。

備份腳本片段如下所示:

pg_dump -c -O -U postgres $x -h localhost -p 5432 --disable-dollar-quoting -i | gzip > $BACKUPDIR/$DT-$x.gz

我們檢查了備份過程,我們認為備份系統沒有任何問題。

順便提一句。他們使用 7Zip 解壓縮。

**問題:**您建議我對 CRM 開發團隊說什麼……可能是什麼問題?

順便提一句。事實上,到目前為止,我們還沒有進行任何恢復測試,我知道出於安全原因必須這樣做。

問題 2 我們發現 Linux 伺服器上的所有內容都已正確備份。當我們將它們複製到 SMB 資源並進入 Windows 站時,即使 7zip 也能正確解壓它們。

我們發現問題在於將它們發送到本地 FTP 伺服器。我們通過這個 BASH 腳本發送這些文件:

#!/bin/sh
echo FTP file: $1 UPLOAD START
#pwd
ftp -n 192.168.1.205 <<END_SCRIPT
quote user userslogin
quote pass userspassw
cd /Backup
pwd
put $1
quit
quit
END_SCRIPT
exit 0

有人可以說如何改進/修復我們的 FTP bash 腳本嗎?

您應該告訴他們您生成轉儲的方式,因為這有點不尋常。一個明顯的問題可能是他們嘗試了一個不理解 GNU zip 的解壓程序。

我建議使用自定義格式:

pg_dump -F c -U postgres -f outfile.dmp $x

可以用 恢復pg_restore,並自動壓縮。

引用自:https://dba.stackexchange.com/questions/284775