date: 2020-07-14title: postgresql备份脚本 #标题
tags: pgsql备份 #标签
categories: postgresql # 分类

记录下postgresql备份脚本。

配置免密登录

  1. # 用户家目录下创建 .pgpass文件
  2. $ cat .pgpass
  3. 127.0.0.1:5432:postgres:postgres:u5xhYE3REq
  4. # 文件对应的格式为(前四个字段可以使用通配符 * 号):
  5. hostname:port:database:username:password
  6. # 使用通配符如下:
  7. *:*:*:*:u5xhYE3REq

备份脚本

  1. #!/usr/bin/env bash
  2. # postgresql全库备份脚本
  3. set -e
  4. # 定义数据库连接及库名等相关信息
  5. db_host=127.0.0.1
  6. db_port=5432
  7. db_user=postgres
  8. # db指定要备份的数据库,多个库请换行输入
  9. db_name=(
  10. ndcms_master
  11. )
  12. backup_dir=/apps/usr/postgres/pg_backup/
  13. cur_date=$(date +%F_%H%M)
  14. set +e;[[ ! -d ${backup_dir} ]] && mkdir ${backup_dir};set -e
  15. for i in "${db_name[@]}"
  16. do
  17. pg_dump -h ${db_host} -p ${db_port} -U ${db_user} -F c -b -f ${backup_dir}${i}_${cur_date}.dump ${i}
  18. done
  19. # 从备份中恢复指令(数据库需手动创建)
  20. # pg_restore -d db_name -h ${db_host} -p ${db_port} -U ${db_user} ${backup_dir}${i}_${cur_date}.dump