PostgreSQL(一)------centos下自动备份PostgreSQL9.6数据库

背景

在实际项目中,通常需要对PostgreSQL数据库进行自动备份,防止数据丢失情况。

我这里设置每天进行备份凌晨进行数据库全量备份,备份文件保留周期60天

一、数据库备份脚本文件

创建backup.sh文件

/usr/pgsql-9.6/bin/pg_dump -F c -O -U postgres -h 127.0.0.1 -p 5432 -f

/usr/pgsql-9.6/bin :PostgreSQL数据库安装目录,我的是此处

postgres :postgres 用户

5432:端口号

 /home/dbbackup/bemp_backup_$cur_time.dmp dbase

/home/dbbackup:备份文件夹路径

dbase:需要备份的数据库名称

#!/bin/bash
cur_time=$(date +%Y%m%d_%H_%M_%S)
/usr/pgsql-9.6/bin/pg_dump -F c -O -U postgres -h 127.0.0.1 -p 5432 -f /home/dbbackup/dbase_backup_$cur_time.dmp dbase
tar zcPf "/home/dbbackup/dbase-backup.$cur_time.tar.gz" /home/dbbackup/*.dmp
rm -rf /home/dbbackup/dbase_backup*.dmp
find /home/dbbackup/ -mtime +60 -name "dbase-backup*" -exec rm -rf {} \;
rm -rf /document/dbbackup/
cp -rf /home/dbbackup/ /document/
echo "backup finished"

二、执行脚本文件

执行备份脚本命令

sh /usr/pgsql-9.6/backup.sh

如果备份成功,会在/home/dbbackup目录下找到数据库备份文件压缩包,

如果提示:psql: FATAL: Ident authentication failed for user “postgres”

解决方案

找到数据库pg_hba.conf文件,改位 127.0.0.1/32 trust

host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               md5

重启数据库服务

systemctl restart postgresql-9.6 #重启服务

三、配置crontab定时任务

启动cron服务

# 查看服务状态
systemctl status crond
# 启动
systemctl start crond
# 停止
systemctl stop crond
# 重启
systemctl restart crond
# 重新加载
systemctl reload crond

开机自动启动cron服务

systemctl start crond.service

进入编辑模式,按照格式添加,保存退出

crontab -e

添加内容

格式:# [分] [时] [日] [月] [周] [需要执行的命令]

#每天23:59分执行 
59 23 * * * /usr/pgsql-9.6/backup.sh

#报错退出即可

:wq  

查看定时任务列表

crontab -l

查看定时任务执行日志

cat /var/log/cron

如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!

技术在交流中进步,知识在分享中传播

你可能感兴趣的:(#,PostgreSQL)