返回博客
2026年8月3日16 阅读3 分钟阅读开发者
ubuntu卸载PG16安装PG18
# Ubuntu 彻底卸载 PostgreSQL 16 + 安装 PostgreSQL 18 完整流程 ## 一、停止 PostgreSQL 16 服务 ```bash sudo systemctl ...
Ubuntu 彻底卸载 PostgreSQL 16 + 安装 PostgreSQL 18 完整流程
一、停止 PostgreSQL 16 服务
sudo systemctl stop postgresql
sudo systemctl disable postgresql
二、完全卸载 PG16(含配置、数据、依赖)
1. 卸载软件包
# 删除pg16所有相关包
sudo apt remove --purge postgresql-16 postgresql-client-16 postgresql-contrib-16 -y
# 删除管理工具
sudo apt purge postgresql-client-common postgresql-common -y
# 清理无用依赖
sudo apt autoremove -y
# 清理缓存
sudo apt clean
2. 删除残留数据目录(重要!旧数据库数据全部清空,提前备份!)
# 删除数据目录
sudo rm -rf /var/lib/postgresql/16
# 删除配置目录
sudo rm -rf /etc/postgresql/16
# 删除日志
sudo rm -rf /var/log/postgresql
3. 确认无残留
dpkg -l | grep postgresql
# 无任何16开头包即为卸载干净
三、安装 PostgreSQL 18 官方源(Ubuntu 标准官方源没有PG18,必须添加PG官方仓库)
1. 安装依赖工具
sudo apt update
sudo apt install gnupg2 curl ca-certificates -y
2. 导入PG官方GPG密钥
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg
3. 添加对应Ubuntu版本的PG18源
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
4. 更新软件源
sudo apt update
四、安装 PostgreSQL 18
sudo apt install postgresql-18 postgresql-client-18 postgresql-contrib-18 -y
五、基础初始化与验证
1. 启动并开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
2. 查看版本(两种方式)
# 终端外部查看客户端版本
psql -V
# 进入数据库查看服务端版本
sudo -u postgres psql
SELECT version();
\q
3. 切换postgres用户登录(默认账号)
sudo -i -u postgres
psql
六、常用配置说明
- PG18 配置目录:
/etc/postgresql/18/main/ - 数据存储目录:
/var/lib/postgresql/18/main/ - 修改密码示例(psql内执行)
ALTER USER postgres WITH PASSWORD '你的密码';
七、数据迁移补充(如果你需要保留旧数据)
如果不想删除PG16数据,不要执行上面 rm -rf 删除目录命令,正确迁移步骤:
- 安装PG18
- 使用
pg_dump导出16全库备份 - 导入到PG18新实例
- 确认数据正常后再卸载PG16
简化版 安装 PostgreSQL 18
① 安装密钥与官方源
sudo apt update
sudo apt install gnupg2 curl ca-certificates -y
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
② 安装 PG18
sudo apt install postgresql-18 postgresql-client-18 postgresql-contrib-18 -y
③ 启动、设置开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
④ 验证版本
# 客户端版本
psql -V
# 服务端版本
sudo -u postgres psql -c "SELECT version();"
环境:Hyper‑V Ubuntu 6核6G,PG18,同实例跑Redis8,SaaS混合读写,只保留最核心必改项,其余全部使用PG默认值。 部分参数修改需重启,其余reload生效。
# 内存
shared_buffers = 1280MB
effective_cache_size = 2700MB
work_mem = 24MB
maintenance_work_mem = 256MB
# WAL写入
max_wal_size = 3GB
min_wal_size = 800MB
checkpoint_completion_target = 0.9
# 规划器
random_page_cost = 1.5
# 自动vacuum
autovacuum_max_workers = 2
# 并发与并行
max_connections = 120
max_parallel_workers_per_gather = 2
# 慢查询排错
log_min_duration_statement = 500
极简配套要点(不写进conf,但必须做到)
- Hyper‑V:关闭动态内存,固定6G内存
- Redis 设置
maxmemory 1024mb - 业务层强烈建议用pgbouncer,避免大量真实连接打满内存
synchronous_commit = on(SaaS安全优先;要性能可改为local,存在丢失少量事务风险)
其余所有参数保持出厂默认,够用,减少调优负担。