PostgreSQL简介PostgreSQL是一个开源的关系数据库管理系统,它是一个功能强大、高度可定制的数据库,并支持复杂的应用程序。它支持多种数据类型,包括数字、文字、二进制、地理空间和其他类型,还具有高级数据建模和表连接功能。PostgreSQL是使用ANSI SQL标准的数据库,并且还支持JSON、XML等数据格式。PostgreSQL是一个强大、可靠和丰富的数据库管理系统,广泛应用于大型企业和各种应用程序。在开源世界中,PostgreSQL得到了广泛的认可和支持,并在世界各地拥有庞大的社区和开发人员团队。它是一种成熟的数据库技术,也是最具活力和潜力的开源数据库之一。
业务场景我们的客户数量较少,项目涉及的交集较少,所以对平台本身的需求不大,对平台的并发性也没有要求。另一方面也是重要原因。他们没有购买新服务器的预算,只会为我们提供旧的windows server服务器来部署平台。为了方便部署和运维,我们将使用docker部署所有微服务和中间件。使用docker-compose统一管理配置文件在windows机器上安装virtualBox,在其中安装CentOS7虚拟机,并在虚拟机中部署平台(数据库中也使用docker部署)。部署后续更新时,主要是整理部署包和更新脚本,本地维护会配合更新。这时候就出现了一个问题,有时候需要修改表结构,本地的维护人员操作不了(其实他们主要是利用平台帮助客户,不是专业运维)。现在需要将数据库结构更新过程放入原始程序更新脚本中,这样维护人员只需执行一个脚本即可完成更新。对于生产环境,数据库备份策略是必要的,至少每天一次。因为我们只有业务数据存储在PostgreSQL中,整体数据量不大,所以我们使用完全备份。
数据库维护
docker -撰写配置首先,我们把docker -撰写配置的PostgreSQL #数据库服务PostgreSQL:image:PostgreSQL:14.2 container _ name:PostgreSports:-5432:5432 Volumes:-。/Volumes/PostgreSQL/:/var/lib/PostgreSQL/data/-/etc/local time:/etc/local time环境:-POSTGRES _ USER = POSTGRES -POSTGRES _ PASSWORD = xxxxxxxx -POSTGRES _ HOST _ AUTH _ METHOD = MD5 -TZ =亚洲/上海重新启动:始终
主要需要绘制出PostgreSQL数据库存储数据的数据目录。其他的都是通用配置,比如用户名、密码、密码访问、时区等等,也方便进行完整的数据备份和恢复。
备份脚本可以使用计划任务直接压缩映射的文件夹,并在每天早上将其备份到其他目录。下面是备份脚本pg-backup.sh,只保留备份10天,循环删除最早的一天#!/bin/bash echo“= = = = = = start backup pg data = = = = =“# pg数据目录pg data =/home/signal/instance/volume target =/home/bak/pgbakif【!-d $ target】;文件夹“then mkdir -p $targetelse echo“已经存在“fi # curday = $(date“+% y-% M-% d“)echo $ { curday } # number of reserved num = 10 #到pg数据目录。按日期压缩到备份文件夹CD $ pgdatatar -zcvf $ target/PostgreSQL -$ curday . tgzpostgresql #删除超出天数的压缩文件#*。tgz的意思是过滤文件类型,并删除文件CD $ target filenum = $(ls -l ./*。tgz | grep -| wc4。$ reserved num))Dooldfile = $(ls -rt ./*。tgz | head -1)RM -f $ old filelet“filenum --“done echo“= = = = = = = = bakuppg data end = = = = =“然后放脚本。
更新表结构脚本docker可以执行sh脚本,使用docker exec容器名称/id/bin/sh -c“Command”可以将数据库更新命令添加到原始程序更新脚本中。具体命令如下:echo“Update Postgresql table structure“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 # Update database echo‘Update database‘psql -dcore -u postgres+f/var/lib/Postgresql/data/Core _ Update . sqlsleep 1 secho‘create Update end‘exit,其中/var/lib/PostgreSQL/data/Core _ Update . SQL是一个特定的SQL文件。由于已经映射了文件夹/var/lib/PostgreSQL/data,因此在更新部署程序时,顺便可以更新core_update.sql以上就是关于docker运行PostgreSQL数据库、维护和执行脚本、备份数据库和更新表结构的文章全部内容。关于docker运行PostgreSQL数据库的更多信息,请搜索主机频道zhujipindao以前的文章。或继续浏览以下相关文章。希望大家支持主机频道zhujipindao。未来的com!
评论前必须登录!
注册