PgSQL定時備份

2021-09-06 06:11:16 字數 2387 閱讀 9704

1,綜述:

下面主要是通過sql轉儲的方式備份postgresql, sql 轉儲的方法是建立乙個文字檔案,這個文字裡面都是 sql 命令,當把這個檔案回饋給伺服器時,將重建與轉儲時狀態一樣的資料庫。

2,備份命令

(1)postgresql 自帶的內建備份工具叫做pg_dump

例項:

#su  -postgres

#cd/usr/local/postgressql/bin

#./pg_dump mydb > test_db.out

從轉儲中恢復

#./created restoredb

#./psql –d restoredb < test_db.out

(2)當遇到大資料庫時候,請使用以下方式

例項:

#su  -postgres

#cd /usr/local/postgressql/bin

#./pg_dump –ft –b mydb > test_db.tar

恢復大資料庫

#./created restored

#pg_restore –d restored test_db.

tar

(3)備份整個資料庫使用pg_dumpall

例項:

#su -postgres

#cd /usr/local/postgressql/bin

#./pg_dumpall –u postgres > alldb.out

恢復資料庫

#./psql –upostgresql < alldb.out

一旦恢復成功,建議使用

#vacuumdb -a –z

3,計畫備份任務

(1)    編寫乙個備份指令碼

#vim /home/postgres/backup.sh

#shell variables

date_now=`date +%y%m%d`

back_dir=./back_log_dir="

./backup.log

"rmback_log_dir="

./rmback.log

"#postgresql bakup

/usr/local/postgressql/bin/pg_dump -u postgres mydb >$back_dir/$date_now.out

if [ $? = 0 ];then

echo

"$date_now postgresql backup success

" >>$back_log_dir

echo

"" >>$back_log_dir

else

echo

"$date_now postgresql backup failed

" >>$back_log_dir

echo

"" >>$back_log_dirfi#

rmback files

find $back_dir -mtime +8 -exec rm -fr {} \;

if [ $? = 0 ];then

echo

"$date_now rm backup files successful

">>$rmback_log_dir

echo

"" >>$rmback_log_dir

else

echo

"$date_now rm backup files failed

">>$rmback_log_dir

echo

"" >>$rmback_log_dir

fi

#chmod –r 777 backup.sh

#mkdir –p /data/backupdb

#mkdir –p /var/log/pgsqllog/rmback

#chown –r postgres /data/backupdb

#chown –r postgres/var/log/pgsqllog/rmback

#crontab -u postgres –e

03 * * * /home/postgresql/backup.sh

轉 -u postgres –e

pgsql的備份與恢復

在window上備份 1 在pgsql的bin目錄在開啟命令視窗。注 可以使用.pg dump 查詢相關引數含義 3 恢復資料 pg restore.exe host ip位址 port 埠號 username 使用者名稱 dbname 資料庫名稱 verbose 備份檔案 例 pg restore...

pgsql 備份表結構資料

備份表結構 pg dump h p d u s data sql 只備份資料 a 只備份結構 s,表結構和資料 什麼都不加 還原庫 psql h p u d data sql 備份指定表 包含資料 pg dump h p d t t u data sql 匯出匯入資料到txt copy to dat...

mysql定時備份指令碼 MySql定時備份指令碼

最近需要對某服務的資料庫資料進行備份,因此參考網上教程完成資料庫備份指令碼.因為服務的使用頻率較低,因此設定定時任務,在每天的中午以及午夜時分進行備份操作.bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user mysql password mysql hos...