postgresql备份脚本

2023-05-19 20:12:53 浏览数 (3)

记录下postgresql备份脚本。

# 配置免密登录

代码语言:javascript复制
# 用户家目录下创建 .pgpass文件
$ cat .pgpass 
127.0.0.1:5432:postgres:postgres:u5xhYE3REq

# 文件对应的格式为(前四个字段可以使用通配符 * 号):
hostname:port:database:username:password
# 使用通配符如下:
*:*:*:*:u5xhYE3REq

# 备份脚本

代码语言:javascript复制
#!/usr/bin/env bash
# postgresql全库备份脚本

set -e
# 定义数据库连接及库名等相关信息
db_host=127.0.0.1
db_port=5432
db_user=postgres
# db指定要备份的数据库,多个库请换行输入
db_name=(
    ndcms_master
)
backup_dir=/apps/usr/postgres/pg_backup/
cur_date=$(date  %F_%H%M)

set  e;[[ ! -d ${backup_dir} ]] && mkdir ${backup_dir};set -e

for i in "${db_name[@]}"
do
  pg_dump -h ${db_host} -p ${db_port} -U ${db_user} -F c -b -f ${backup_dir}${i}_${cur_date}.dump  ${i}
done

# 从备份中恢复指令(数据库需手动创建)
# pg_restore -d db_name -h ${db_host} -p ${db_port} -U ${db_user} ${backup_dir}${i}_${cur_date}.dump

0 人点赞