备份命令

参考链接:https://www.jb51.net/article/205924.htm
为了避免操作数据库的风险 因此计划每天对postgresql 数据库 进行定时备份

1.服务器地址:

备份服务器地址 10.10.10.101(虚构)
postgresql 数据库所在的服务器地址 10.10.10.100(虚构)
因为我有单独的备份数据库 不在同一个服务器上操作 首先要保证这两个服务器的网络是通的
操作步骤如下:
创建备份脚本存放路径:

mkdir -p /u01/db-bak/2/bak-file/all

我把shell脚本存放在/u01/db-bak/2 备份后的pgsql.backup 放到 /u01/db-bak/2/bak-file/all 文件中

2.准备备份shell脚本

进入/u01/db-bak/2

创建备份shell脚本

vi pgsql-all-backup.sh
#!/bin/bash
echo "开始执行 PostgreSql 数据库postgres 的备份!"
echo "backup ing -------------------"
nowtime=$(date +%F+%T)
export PGPASSWORD=123456
echo "时间:" $nowtime
set timeout 500
/usr/local/postgresql/bin/pg_dump --file "/u01/db-bak/2/bak-file/all/pgsql-all-"$nowtime".backup" --host "192.168.1.xxx" --port "5432" --username "postgres"  "postgres" --verbose --role "postgres" --format=c --blobs --encoding "UTF8"
echo "数据库 postgres 备份结束!"
exit;

测试:bash pgsql-all-backup.sh

删除脚本

cd /u01/db-bak/2
vi delete-pgbak.sh
#!/bin/bash
echo "删除 8 天前的 数据库备份文件!"
find /u01/db-bak/2/bak-file/all/ -name "pgsql-all*" -mtime +7 -exec rm -rf {} \;
set timeout 1000
echo " 8 天前的数据库备份文件删除完毕!"

定时任务

命令:crontab -e
每天23点进行数据库备份脚本 每天23点半运行删除脚本:

30 23 * * * /u01/db-bak/2/delete-pgbak.sh
0 23 * * * /u01/db-bak/2/pgsql-all-backup.sh 

查看定时任务:crontab -l

恢复命令

参考链接:https://www.cnblogs.com/ComputerVip/p/12679517.html
1、在linux中打开终端,切换到postgres用户,命令是
su postgres (创建postgresql数据库时创建的用户),
然后cd到你安装的postgresql的bin目录下,我的安装在/usr下, 命令是

cd /usr/local/postgresql/bin/

首先要先确保有数据库,执行恢复命令:
./pg_restore -h 192.168.1.xxx -p 5432 -U postgres -W -d hdsa -v "/u01/db-bak/2/bak-file/all/pgsql-all-2021-09-12+20:52:17.backup"
在这里插入图片描述
恢复成功
在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐