postgresql 10.5 恢复脚本

81 阅读1分钟

这个脚本读取当前目录的dblist文件,连接远程源数据库进行恢复。dblist包含全部需要恢复的数据库名,一行一个。需要按照实际情况修改SOURCE_DB_*变量。

  • restoredb.sh

#!/bin/bash

# 源数据库主机IP
export SOURCE_DB_HOST=xx.xx.xx.x
# 源数据库密码
export SOURCE_DB_PASS=xxx
# 源数据库端口
export SOURCE_DB_PORT=5432
# 源数据库用户
export SOURCE_DB_USER=postgres

for db in $(cat dblist)
do
  echo "-----------------------------------------[restoring database $db]------------------------------------------"
  PGPASSWORD=${SOURCE_DB_PASS} pg_dump -U ${SOURCE_DB_USER} -h ${SOURCE_DB_HOST} -p ${SOURCE_DB_PORT} -d $db > /tmp/$db.sql
  createdb -U ${SOURCE_DB_USER} $db
  PGPASSWORD=${SOURCE_DB_PASS} psql -U ${SOURCE_DB_USER} < /tmp/$db.sql
  echo "-----------------------------------------[restoring database $db finish]------------------------------------------"
done


查询postgresql数据库库的列表可以用:

psql -U postgres -l