返回博客
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

六、常用配置说明

  1. PG18 配置目录:/etc/postgresql/18/main/
  2. 数据存储目录:/var/lib/postgresql/18/main/
  3. 修改密码示例(psql内执行)

      
ALTER USER postgres WITH PASSWORD '你的密码';

七、数据迁移补充(如果你需要保留旧数据)

如果不想删除PG16数据,不要执行上面 rm -rf 删除目录命令,正确迁移步骤:

  1. 安装PG18
  2. 使用 pg_dump 导出16全库备份
  3. 导入到PG18新实例
  4. 确认数据正常后再卸载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,但必须做到)

  1. Hyper‑V:关闭动态内存,固定6G内存
  2. Redis 设置 maxmemory 1024mb
  3. 业务层强烈建议用pgbouncer,避免大量真实连接打满内存
  4. synchronous_commit = on(SaaS安全优先;要性能可改为local,存在丢失少量事务风险)

其余所有参数保持出厂默认,够用,减少调优负担。