Ubuntu 上升级 PostgreSQL 的完整步骤
一、升级前准备
sudo -u postgres pg_dump dbname > dbname.sqlsudo -u postgres pg_dumpall > /path/to/full_backup.sqlsudo -u postgres psql -c "SELECT version();"pg_lsclusters(查看所有集群与端口)二、小版本升级步骤(例如 14.5 → 14.7)
sudo apt updatesudo apt install --only-upgrade postgresql-14sudo systemctl restart postgresqlsudo -u postgres psql -c "SELECT version();"pg_lsclusters 确认仍是原来的 14/main 且运行正常。三、大版本升级步骤(例如 14.x → 15.x)
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -sudo apt updatesudo apt install postgresql-15sudo systemctl stop postgresqlsudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade \ -b /usr/lib/postgresql/14/bin -B /usr/lib/postgresql/15/bin \ -d /var/lib/postgresql/14/main -D /var/lib/postgresql/15/main --checksudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade \ -b /usr/lib/postgresql/14/bin -B /usr/lib/postgresql/15/bin \ -d /var/lib/postgresql/14/main -D /var/lib/postgresql/15/main \ -o '-c config_file=/etc/postgresql/14/main/postgresql.conf' \ -O '-c config_file=/etc/postgresql/15/main/postgresql.conf'sudo -u postgres /usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stagessudo -u postgres pg_dumpall > /path/to/full_backup.sqlsudo -u postgres /usr/lib/postgresql/15/bin/initdb -D /var/lib/postgresql/15/mainsudo systemctl start postgresql@15-mainsudo -u postgres psql -f /path/to/full_backup.sql postgrespostgresql.conf、pg_hba.conf),注意端口与监听地址
listen_addresses = '*'(远程访问需开启)sudo -u postgres psql -c "SELECT version();"sudo pg_dropcluster 14 main --stopsudo systemctl disable --now postgresql@14-main四、常见问题与注意事项
postgresql.conf 中设置 port 与 listen_addresses,在 pg_hba.conf 中配置认证方式(如 md5/scram-sha-256)。ALTER EXTENSION ... UPDATE;