天天看點

備份postgresql資料庫

#! /bin/bash
sourseHost=127.0.0.1
sourcePort=5432
sourceDatabase=source

targetHost=127.0.0.1
targetPort=5432
targetDatabase=target

echo '開始備份資料庫'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}
psql -h ${targetHost}  -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'"  	         \
&& psql -h ${targetHost}  -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'" 	         \
&& dropdb -h ${targetHost}  -p ${targetPort} -U postgres -w ${targetDatabase} 						                                                 \
&& psql -h ${targetHost}  -p ${targetPort} -U postgres --command 'CREATE DATABASE "'${targetDatabase}'"' 								 \
&& pg_dump -h ${sourseHost} -w -U postgres -T vi_* -p ${sourcePort} ${sourceDatabase}|psql --quiet -h ${targetHost} -p ${targetPort} -w -d ${targetDatabase} -U postgres \
&& echo '備份資料庫'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}'成功' || echo '備份失敗'
           

繼續閱讀