这个脚本读取当前目录的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