PostgreSQL定时备份
# PostgreSQL定时备份 # 版本:PostgreSQL14.0 # 一.如果你在pg_hba.conf中设定了密码登录,那么你就需要设置一个默认密码共psql登录的时候跳过验证。如果是root用户的话就加在/etc/profile文件末尾。如果是其他用户就加在用户目录下.bashrc文件末尾 export PGPASSWORD='默认密码' # 二.开启WAL归档日志。 # 需要修改postgresql.conf配置文件: wal_level = replica; # 隔离级别 archive_mode = on; # on打开,off关闭 archive_command = '/bin/date' # 归档备份执行哪个shell指令 # archive_command 详细说明。 # WAL归档是自动的,触发条件有三个:1.手动强制切换 select pg_switch_wall(); 2.wal日志写满后。3.archive_tomeout(但该参数没在conf中找到该参数配置的位置) # archive_command配置的就是这三个条件触发的时候执行的归档shell脚本,这里设置/bin/date是不让它帮忙备份,我们自己来备份,这样的好处是:定时每天备份、超过一定时间的备份自动删除。 # 三.编写我们自己的备份shell脚本 #!/bin/bash DATE=$(date '+%Y%m%d'); PG_ARCHIVE=/usr/pgdata/pg_arch 这是我自己的目录,不用管 PG_DATA=/usr/pgdata 替换你自己的PGDATA目录 PG_HOME=/root/Backup 替换成你要备份到哪 PG_HOSTNAME=192.168.0.100 服务器地址 PG_PORT=5432 端口 #START BACKUP echo "START BACKUP..............." psql -h $PG_HOSTNAME -p $PG_PORT -d postgres -U odoo -c "select pg_start_backup('hot_back')" cd $PG_HOME tar -zcvf ${PG_HOME}/pg_hotbackup_$DATE.tar.gz $PG_DATA psql -h $PG_HOSTNAME -p $PG_PORT -d postgres -U odoo -c "select pg_stop_backup()" echo "BACKUP END" # 四.将脚本加入到定时执行 # 需要安装crontab # 查看是否安装:crontab -v # 然后执行crontab -e添加任务 crontab -e # 下面是设定凌晨五点执行dbbackup.sh脚本 0 5 * * * /root/PGDATA_Backup/dbbackup.sh
这是单个数据库的定时备份
#!/bin/bash flist="/doc/Odoo" # 这是你需要备份的文件夹 backupdir="/mnt/DBBackup" # 这是备份后的压缩文件存放处 dabao="/tmp/bak" # 这是临时文件夹 cp -aL $flist $dabao # 将要备份的目录copy到临时文件夹中去 docker exec mysql sh -c 'exec mysqldump -u root -p"这里是密码,建议用环境变量,别用明文" DBName' > $dabao/DBName.sql # 从mysql的docker环境中备份数据库到本地 docker exec postgres sh -c 'pg_dump -U postgres -f /bak/dbs/dbname.sql dbname' # 这是psql的docker中备份 docker cp postgres:/bak/databases $dabao/ # 将docker中的备份文件copy出来 cd $backupdir tar -cf `date +%F`.tar.gz $dabao # 将所有备份文件打包 rm -rf $dabao/* # 删除临时文件 find $backupdir -mtime +7 -exec rm -rf {} \; # 删除超过七天的备份文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?