在Debian系统上升级PostgreSQL的步骤如下:
pg_dump
工具进行备份:pg_dump -U your_username -d your_database_name -f backup.sql
psql -V
sudo apt update
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 -
apt-cache policy postgresql
sudo apt install postgresql-13
sudo systemctl stop postgresql
pg_upgrade
进行升级:sudo /usr/pgsql-15/bin/pg_upgrade --old-bindir /usr/pgsql-14/bin --new-bindir /usr/pgsql-15/bin --old-datadir /var/lib/pgsql/14/data --new-datadir /var/lib/pgsql/15/data --link --check
psql -V
pg_dumpall
):pg_dumpall -U postgres -f all_databases.sql
pg_config
):pg_config --configure
sudo apt install postgresql-13
sudo /usr/pgsql-15/bin/initdb -D /var/lib/pgsql/15/data -E UTF8 --locale en_US.UTF-8 -U postgres
sudo systemctl stop postgresql
pg_upgrade
命令进行升级:sudo /usr/pgsql-15/bin/pg_upgrade --old-bindir /usr/pgsql-14/bin --new-bindir /usr/pgsql-15/bin --old-datadir /var/lib/pgsql/14/data --new-datadir /var/lib/pgsql/15/data --link --check
export PGHOME=/usr/pgsql-15
export PATH=$PGHOME/bin:$PATH
sudo systemctl start postgresql
psql -V
pg_upgrade
的 --link
选项,新版本服务可以直接使用原有的数据库文件而不需要执行复制,通常可以在几分钟内完成升级操作。