备份恢复
整库备份恢复
# 使用如下命令可对全部pg数据库进行备份。 (备份整个库)
pg_dumpall –h 127.0.0.1 –p 5432 -U postgres -c -C –f db_bak.sql
# 恢复方式很简单。执行恢复命令即可:
psql –h 127.0.0.1 -p 5432 -U postgres –f db_bak.sql
备份单个库
# 可使用如下命令对名为dbname的数据库进行备份
pg_dump –h 127.0.0.1 -p 5432 -U postgres -c -C -f dbname.sql dbname
-s: 只存储结构但是不存储数据
-c: 在创建前,删除 Schema
-C: 在备份文件中含有创建数据库的命令
# 恢复单个库
psql -h 10.0.0.140 -p 5432 -U postgres -f dbname.sql dbname
只备份单个表
pg_dump -U postgres -s -t <tablename> <dbname> -f outdb.sql
-t: 执行表名
1.备份单表操作
pg_dump -U postgres -h localhost -p 5432 -t staff -f staff.sql yjl(表示数据库名称)
2.恢复数据操作
psql -U postgres -h localhost -p 5432 -d product -f /home/yjl/staff.sql
备份脚本
#!/bin/bash
back_dir='/data/pub/backup'
#date_dir=`date "+%Y%m%d%H%M%S"`
date_dir=`date "+%Y%m%d%H"`
if [ ! -d "${back_dir}/${date_dir}" ]; then
mkdir "${back_dir}/${date_dir}" -p
/usr/bin/pg_dumpall -U postgres -h 127.0.0.1 > "${back_dir}/${date_dir}/pg_data.backup"
fi
恢复脚本
#!/bin/bash
pg_user='postgres'
pg_ip='127.0.0.1'
/usr/bin/psql -U ${pg_user} -h ${pg_ip} -p 5432 -f pg_data.backup
备份单表
-U表示用户
-h表示主机
-p表示端口号
-t表示表名
-f表示备份后的sql文件的名字
-d表示要恢复数据库名称
1.备份单表操作
pg_dump -U postgres -h localhost -p 5432 -t staff -f staff.sql yjl(表示数据库名称)
2.恢复数据操作
psql -U postgres -h localhost -p 5432 -d product -f /home/yjl/staff.sql
参考链接
https://blog.csdn.net/yinjly/article/details/79286778