PostgreSQL實現(xiàn)定期備份的方法
前言
本文主要研究下PostgreSQL如何實現(xiàn)定期備份。
環(huán)境說明
我們需要第一在主機上創(chuàng)建一個文件夾用來存放保存好的文件(容器和本機都需要) 且本機的文件需要賦予權限
chmod o+W /你的文件地址
需要在容器中安裝openssh-client、和sshpass
apt install openssh-client apt-get install sshpass
1、創(chuàng)建腳本
先查詢下pg_dumpall工具位置:
find / -name pg_dumpall
在容器的一個文件中創(chuàng)建sh腳本
cd /home mkdir script touch save.sh
腳本內(nèi)容為(根據(jù)實際情況修改):
#!/bin/bash # Description:備份 PostgreSQL 數(shù)據(jù)庫并壓縮成 gz 文件,最后刪除 3 天前的備份文件。 echo "開始執(zhí)行 PostgreSQL 數(shù)據(jù)庫的備份..." echo "backup ing..." today=$(date +%Y-%m-%d) # 今天的日期 nowtime=$(date +%F+%T) # 當前時間點 yestoday=$(date -d '-3 day' +%Y-%m-%d) # 3天前的日期 host_ip=127.0.0.1 # 本機 IP 地址 backup_ip=你的遠端地址 # 遠端備份服務器 IP port_id=5432 # 端口號,PostgreSQL默認的端口號是5432 username=postgres # 數(shù)據(jù)庫用戶 export PGPASSWORD='你的密碼' # 數(shù)據(jù)庫密碼 dmpDir='你的目錄' # 本地備份目錄 destination='你的目錄' # 遠端備份目錄 echo "時間:" $nowtime set timeout 600 # /usr/bin/ 為 pg_dump 備份工具安裝路徑,根據(jù)實際情況更新此路徑。 /usr/bin/pg_dumpall --file "$dmpDir/pg_backup_$today.sql" --host "$host_ip" --port "$port_id" --username "$username" #--verbose --role "postgres" --format=c --blobs --encoding "UTF8" 備份轉換擴展配置 echo "PostgreSQL 數(shù)據(jù)庫備份完成!" echo "當天備份文件壓縮中..." gzip "$dmpDir/pg_backup_$today.sql" echo "3 天前的 PostgreSQL 數(shù)據(jù)庫備份文件已刪除!" echo "開始遠端備份..." export SSHPASS=your_password sshpass -e scp -r "$dmpDir/pg_backup_$today.sql.gz" (你的登錄名)@$backup_ip:$destination echo "遠端備份完畢,感謝您使用此腳本!" exit;
給腳本增加可執(zhí)行權限
chmod +x save.sh
2、用pgAgent設置定時任務
點擊創(chuàng)建
輸入名稱
點擊步驟創(chuàng)建
點擊編輯——添加運行代碼
創(chuàng)建計劃任務:
最后在重復中:添加每日執(zhí)行時間
最后記得保存!
結語
我們借用pgAgent完成了數(shù)據(jù)庫的日常2個定時任務,清理數(shù)據(jù)、保存數(shù)據(jù)庫。
以上就是PostgreSQL實現(xiàn)定期備份的方法的詳細內(nèi)容,更多關于PostgreSQL定時備份的資料請關注腳本之家其它相關文章!
相關文章
PostgreSQL數(shù)據(jù)庫timestamp數(shù)據(jù)類型精度進位問題解析
PostgreSQL是一款功能強大的開源關系型數(shù)據(jù)庫管理系統(tǒng),起源于1986年的POSTGRES項目,它支持多種數(shù)據(jù)類型,包括數(shù)值類型、字符串類型、日期時間類型等,本文介紹PostgreSQL數(shù)據(jù)庫timestamp數(shù)據(jù)類型精度進位問題,感興趣的朋友一起看看吧2024-11-11postgresql 實現(xiàn)查詢出的數(shù)據(jù)為空,則設為0的操作
這篇文章主要介紹了postgresql 實現(xiàn)查詢出的數(shù)據(jù)為空,則設為0的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL使用JSONB存儲和查詢復雜的數(shù)據(jù)結構
在PostgreSQL中,JSONB是一種二進制格式的JSON數(shù)據(jù)類型,它允許你在數(shù)據(jù)庫中存儲和查詢復雜的JSON數(shù)據(jù)結構,本文給大家介紹了如何使用JSONB類型在PostgreSQL中存儲和查詢復雜的數(shù)據(jù)結構,需要的朋友可以參考下2024-04-04docker安裝Postgresql數(shù)據(jù)庫及基本操作
PostgreSQL是一個強大的開源對象-關系型數(shù)據(jù)庫管理系統(tǒng),以其高可擴展性和標準化而著稱,這篇文章主要介紹了docker安裝Postgresql數(shù)據(jù)庫及基本操作的相關資料,需要的朋友可以參考下2025-03-03