PostgreSQL数据库备份还原脚本

本文对数据库进行的操作主要用到的PG自带pg_dumpall、pg_dumppsql这几个命令

备份还原过程:

1:备份全局对象

2: 备份某一个数据库

3:还原全局对象

4:还原备份的数据库

备份详细过程:    

第一步,备份所有公共对象,包括编码用户,权限等

pg_dumpall –h 192.168.xx.xx –U adminuser –p 5432 –g –f xxx/global.sql

   第二步,备份某一个数据库

   pg_dump –h 192.168.xx.xx –U adminuser –p 5432 –d xxxdb  –C  –f xxx/xxxdb.sql

  “-C”选项,可以将建库的语句也输出到文件中;如果手动建库,则需要去除该选项

还原详细过程:

还原数据的时候,根据备份的过程,先还原全局对象,再还原数据库

  首先恢复全局的信息,包括用户,编码等:

    psql –h 192.168.xx.xx –U adminuser –p 5432 –f xxx/global.sql

  其次恢复某数据库

    psql –h 192.168.xx.xx –U adminuser –p 5432 –f xxx/xxxdb.sql

    我在上面备份pg_dump中写了”-C”,它会自动建库,如果没有写这个选项,要在psql中写-d xxxdb


执行脚本的必要条件

    

1. 将备份、还原脚本backup.shrestore.sh放进linux的某一目录当中

2. 脚本linux系统下运行前增加脚本backup.shrestore.sh的运行权限

3. 根据实际环境修改脚本中的数据库连接参数

export PGPASSWORD="postgres"      --数据库用户密码

export POSTGRESPATH=/usr/lib/postgresql/9.5/bin   --pg_dump等命令在的bin目录

HOST_NAME="192.168.xxx.xxx"     --要备份的数据源IP

ADMIN_USER="xxx"       --登录用户名

BACKUP_DB="xxx"          --要备份的数据库

脚本运行

1. 在linux下进入到脚本所在的目录

2. 先运行备份脚本backup.sh,然后到备份所指定目录下查看备份文件,如果问题执行还原脚本restore.sh

还原脚本restore.sh执行完成后对照生成的库/用户/角色/schema//数据完成验证

backup.sh  备份脚本

#!/bin/sh
###
###
###


export PGPASSWORD="备份登录用户密码"
export POSTGRESPATH=/usr/lib/postgresql/9.5/bin
HOST_NAME="所处备份数据库IP"
ADMIN_USER="备份登录用户名"
BACKUP_DB="要备份数据库"


echo "backup database start......"




#备份全局对象
$POSTGRESPATH/pg_dumpall -h $HOST_NAME -U $ADMIN_USER -p 5432 -g -f /home/global.sql


#备份某一个数据库
$POSTGRESPATH/pg_dump -h $HOST_NAME -U $ADMIN_USER -p 5432 -d $BACKUP_DB -C -f /home/$BACKUP_DB.sql


echo "backup database end....."


restore.sh  还原脚本

#!/bin/sh
###
###
###


export PGPASSWORD="还原机登录密码"
export POSTGRESPATH=/usr/lib/postgresql/9.5/bin


HOST_NAME="还原机IP"
ADMIN_USER="还原机登录用户"
RESTORE_DB="所还原库"


echo "restore database start......"


#还原全局对象
$POSTGRESPATH/psql -h $HOST_NAME -U $ADMIN_USER -p 5432 -d postgres -f /home/jack/global.sql


#还原数据库
$POSTGRESPATH/psql -h $HOST_NAME -U $ADMIN_USER -p 5432 -d postgres -f /home/jack/$RESTORE_DB.sql


echo "restore database end......"

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下使用PostgreSQL备份数据库可以使用pg_dump命令来完成。pg_dump是PostgreSQL提供的备份工具,可以将数据库以SQL脚本的形式保存到本地文件中。 以下是一个备份数据库的脚本示例: #!/bin/bash # 设置备份目录和时间戳 backup_dir="/var/backups/postgresql" timestamp=$(date +%Y%m%d%H%M%S) # 设置数据库连接信息 username="postgres" database="mydatabase" # 创建备份目录 mkdir -p $backup_dir # 备份数据库 pg_dump -U $username -d $database -f $backup_dir/$timestamp.sql脚本首先设置了备份目录和时间戳变量,用于保存备份文件。然后设置了数据库连接信息,包括用户名和数据库名。接下来使用mkdir命令创建备份目录,如果该目录不存在的话。最后使用pg_dump命令备份数据库,并将备份文件保存到指定的目录中。 可以将以上脚本保存为一个文件(例如backup.sh),并通过添加执行权限(chmod +x backup.sh)来使其可执行。然后可以通过运行./backup.sh来执行脚本,即可完成对数据库的备份操作。 为了更好地保护数据库备份的安全性,可以考虑以下几点: 1. 将备份脚本的存储位置限制在只有管理员有权限的目录中。 2. 可以使用压缩命令(如gzip)对备份文件进行压缩,减小存储空间占用。 3. 定期删除旧的备份文件,以保持备份目录的整洁和存储空间的合理利用。 4. 最好将备份文件定期复制到其他地方(如远程服务器或云存储)进行冗余备份,以防止单点故障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值