Postgresql

使用流伺服器設置備份 100Gb 數據庫需要多長時間?

  • May 9, 2019

我在專用伺服器上安裝了 barman 來備份我所有的 postgresql 伺服器。其中一台伺服器現在使用 100Gb 空間,指令barman backup myserver需要 23 小時。我覺得它太長了,但我沒有參考點。這很常見嗎?我應該調查什麼來改善這種情況?這是流式傳輸伺服器的設置

; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Backup settings (via pg_basebackup)
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
backup_method = postgres
;streaming_backup_name = barman_streaming_backup

; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; WAL streaming settings (via pg_receivexlog)
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
streaming_archiver = on
slot_name = barman
;streaming_archiver_name = barman_receive_wal
;streaming_archiver_batch_size = 50


minimum_redundancy = 3
last_backup_maximum_age = '3 DAYS'
retention_policy = 'RECOVERY WINDOW OF 16 DAYS'

您似乎處於網路頻寬限制的範圍內。我得到了 9 小時,而您報告的是 23 小時,但這可能是由於成本、效率低下或競爭網路使用造成的。

您可以嘗試打開網路壓縮,這需要更改備份方法,這反過來又需要您配置“ssh_command”。

ssh_command=ssh postgres@192.168.0.15
backup_method = rsync
network_compression=true

當然,這會給伺服器帶來一些 CPU 成本,以便它進行壓縮。

使用 ssh 而不是 streaming_archive 的場景更好,備份時間少於 2 小時,壓縮減少了三分之一所需的空間。這是我使用的設置:

ssh_command = ssh postgres@conn_host
conninfo = host=conn_host user=conn_user dbname=conn_db
backup_method = rsync
reuse_backup = link
archiver = on
network_compression = true
minimum_redundancy = 3
last_backup_maximum_age = '3 DAYS'
retention_policy = 'RECOVERY WINDOW OF 31 DAYS'
wal_retention_policy = main

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