Postgresql
使用流伺服器設置備份 100Gb 數據庫需要多長時間?
我在專用伺服器上安裝了 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