ubuntu

Ubuntu PostgreSQL实用脚本分享

小樊
44
2025-11-09 04:24:55
栏目: 云计算

1. PostgreSQL自动安装配置脚本(Ubuntu离线版)
此脚本用于在Ubuntu系统上自动安装PostgreSQL(以16.10版本为例),无需联网下载源码,适用于无外网访问的环境。脚本涵盖用户/组创建、依赖包安装、源码编译安装、数据目录初始化及基础配置(如postgresql.confpg_hba.conf)。关键步骤包括:通过groupadd/useradd创建专用用户postgres;解压本地PostgreSQL源码包;配置编译参数(指定安装路径、端口、字符集等);初始化数据库集群并设置数据目录权限(chmod 700);配置pg_hba.conf允许本地连接。脚本通过函数封装各步骤,增加了错误处理(如命令不存在时退出),提高了可维护性。

2. PostgreSQL定时备份脚本(全量+增量)
针对Ubuntu环境设计的全量与增量备份解决方案,结合pg_basebackup(全量)和pg_rman(增量)工具,支持跨服务器备份。全量备份脚本(backup.sh)通过pg_basebackup将主库数据同步到备份服务器的日期命名目录(如bkdata_20251109);增量备份通过pg_rman--backup-mode=incremental参数实现,仅备份自上次备份以来的变更。脚本需配合crontab定时执行(如每周日凌晨1点全量、周一至周六凌晨1点增量),并可通过pg_rman validate命令校验备份完整性。

3. PostgreSQL每日自动备份脚本(带清理)
适用于Ubuntu的单机PostgreSQL备份脚本,支持指定数据库(如bloodhound),备份文件以日期时间命名(如dumpbh20251109010101.dmp),并自动清理30天前的旧备份。脚本通过pg_dump命令导出数据库(-U指定用户、-d指定数据库、-o导出所有对象),使用find命令查找并删除超过30天的.dmp文件。需提前配置.pgpass文件(格式:主机:端口:数据库:用户:密码),避免每次执行时手动输入密码。

4. PostgreSQL自动化VACUUM脚本(Shell版)
用于检测并清理PostgreSQL中的死元组(Dead Tuple),防止表膨胀。脚本通过psql命令查询pg_stat_user_tables视图,获取每个用户表的n_dead_tup(死元组数)和n_live_tup(活元组数),计算死元组占比(阈值设为20%)。若占比超过阈值,则执行VACUUM ANALYZE命令清理死元组并更新统计信息。可将脚本添加到crontab(如每天凌晨3点执行),实现自动化维护。

5. PostgreSQL定时备份脚本(压缩存储)
针对Ubuntu环境的PostgreSQL备份脚本,支持压缩备份文件(.tar.gz)以节省存储空间。脚本通过pg_dump命令导出数据库(-F c表示自定义格式、-b包含大对象、--encoding=UTF8指定编码),然后使用tar命令将备份文件压缩为.tar.gz格式。备份文件存储在指定目录(如/home/dbserver/backup/pgsql_backup),并通过find命令删除7天前的旧备份。需配置PGPASSWORD环境变量(或在pgpass.conf中设置),避免密码提示。

0
看了该问题的人还看了