Linux 上 定时备份postgresql 数据库
为了避免操作数据库的风险 因此计划每天对postgresql 数据库 进行定时备份
1.服务器地址:
备份服务器地址 10.10.10.101(虚构)
postgresql 数据库所在的服务器地址 10.10.10.100(虚构)
因为我有单独的备份数据库 不在同一个服务器上操作 首先要保证这两个服务器的网络是通的
我是运用shell脚本和Linux自带的定时任务进行的,操作步骤如下:
**
一 创建备份shell脚本
**
1.创建备份脚本存放路径:
mkdir -p /u01/db-bak/2/bak-file/all
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
cd /u01/db-bak/2
创建备份shell脚本
vim pgsql-all-backup.sh
shell脚本
#!/bin/bash
echo "开始执行 PostgreSql 数据库hrmw的备份!"
echo "backup ing -------------------"
nowtime=$(date +%F+%T)
export PGPASSWORD=123
echo "时间:" $nowtime
set timeout 500
/usr/pgsql-11/bin/pg_dump --file "/u01/db-bak/2/bak-file/all/pgsql-all-"$nowtime".backup" --host "10.10.10.100" --port "5432" --username "postgres" --dbname "hrmw" --verbose --role "postgres" --format=c --blobs --encoding "UTF8"
echo "数据库 hrmw 备份结束!"
exit;
nowtime=$(date +%F+%T) --当前时间
PGPASSWORD=‘数据库密码’
pg_dump 的用法
~
用法:
pg_dump [选项]... [数据库名字]
~
一般选项:
-f, --file=FILENAME 输出文件或目录名
-F, --format=c|d|t|p 输出文件格式 (定制, 目录, tar