postgresql备份数据库

首先配面密登陆

如果是用root帐号则在/root/.pgpass(需要该文件是-rw-------权限)里加入一行文件

localhost:5432:*:*:mima


然后建一个shell脚本

sourseHost=localhost
sourcePort=5432
targetHost=localhost
targetPort=5432

sourceDatabase=uat
targetDatabase=rc


echo '开始同步数据库'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}
psql -h ${targetHost}  -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'"      \
&& psql -h ${targetHost}  -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'"      \
&& psql -h ${targetHost}  -p ${targetPort} -U postgres --command 'DROP DATABASE "'${targetDatabase}'"'                                  \
&& psql -h ${targetHost}  -p ${targetPort} -U postgres --command 'CREATE DATABASE "'${targetDatabase}'"'                                  \
&& pg_dump -h ${sourseHost} -w -U postgres -p ${sourcePort} ${sourceDatabase}|psql --quiet -h ${targetHost} -p ${targetPort} -w -d ${targetDatabase} -U postgres      \
&& echo '同步数据库'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}'成功' || echo '备份失败'
执行一下该脚本。这里面要使用pg_terminate_backend杀两次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下使用PostgreSQL备份数据库可以使用pg_dump命令来完成。pg_dumpPostgreSQL提供的备份工具,可以将数据库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、付费专栏及课程。

余额充值