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