目录postgresql简介业务场景数据库维护Docker-compose配置备份脚本更新表结构脚本Postgresql简介 PostgreSQL是一种开源的关系型数据库管理系统,它是一个功能强大、高度可定制化和支持复杂
# 数据库服务
postgresql:
image: postgres:14.2
container_name: postgres
ports:
- 5432:5432
volumes:
- ./volumes/postgresql/:/var/lib/postgresql/data/
- /etc/localtime:/etc/localtime
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWord=xxxxxxxx
- POSTGRES_HOST_AUTH_METHOD=md5
- TZ=Asia/Shanghai
restart: always
#!/bin/bash
echo "======== start backup pg data ========"
# pg 数据目录
pgdata=/home/signal/instance/volumes
target=/home/bak/pgbak
if [ ! -d $target ];then
mkdir -p $target
else
echo "文件夹已经存在"
fi
# 当前日期
curDay=$(date "+%Y-%m-%d")
echo ${curDay}
# 保留文件数
ReservedNum=10
# 去pg 数据目录,按日期压缩到备份文件夹
cd $pgdata
tar -zcvf $target/postgresql-$curDay.tgz postgresql
# 删除多余天数的压缩文件
#*.tgz表示筛选文件类型,去掉则针对整个目录的文件
cd $target
FileNum=$(ls -l ./*.tgz |grep ^- |wc -l)
while(( FileNum > $ReservedNum))
do
OldFile=$(ls -rt ./*.tgz| head -1)
rm -f $OldFile
let "FileNum--"
done
echo "======== bakup pg data end ========"
crontab
docker exec 容器name/id /bin/sh -c "命令"
即可echo "更新postgresql表结构"
docker exec postgres /bin/sh -c "sh /var/lib/postgresql/data/db_update.sh"
/var/lib/postgresql/data/db_update.sh
是数据库更新脚本,使用psql
命令执行SQL文件,具体如下:#!/bin/bash
# 以postgres用户 执行此脚本 更新数据库
echo 'update database'
psql -d core -U postgres -f /var/lib/postgresql/data/core_update.sql
sleep 1s
echo 'create update end'
exit
/var/lib/postgresql/data/core_update.sql
为具体的SQL文件/var/lib/postgresql/data
文件夹已经映射出来了,更新部署程序时,顺便更新core_update.sql
即可到此这篇关于docker运行PostgreSQL数据库维护执行脚本备份数据库与更新表结构的文章就介绍到这了,更多相关docker运行PostgreSQL数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
--结束END--
本文标题: docker运行PostgreSQL数据库维护执行脚本备份数据库与更新表结构的方法
本文链接: https://www.lsjlt.com/news/201960.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0