PostgreSQL大版本升級的詳細(xì)流程
本文詳細(xì)講解了從14.11升級到15.6,使用pg_dumpall進(jìn)行備份恢復(fù)升級的過程
前沿
PostgreSQL版本發(fā)布規(guī)則,一年一個大版本,一個季度一個小版本;PG遇到的BUG問題,社區(qū)會很快進(jìn)行修復(fù),并在下一個版本中發(fā)布,因此有必要進(jìn)行對數(shù)據(jù)庫版本升級,避免觸發(fā)已知的BUG帶來業(yè)務(wù)系統(tǒng)的不穩(wěn)定。
1.確認(rèn)舊庫編譯
如果使用源碼編譯安裝,configure 配置和原庫一致。
可以使用pg_config查看舊版本數(shù)據(jù)庫安裝時的配置參數(shù)。

2.安裝新版本數(shù)據(jù)庫
[root@pgpcp ~]# cp /opt/postgresql-15.6.tar.gz /pgccc/soft
[root@pgpcp ~]# chown -R postgres:postgres /pgccc/soft
[root@pgpcp ~]# chmod -R 775 /pgccc/soft
[root@pgpcp ~]# su - postgres
[postgres@pgpcp ~]$ cd /pgccc/soft/
[postgres@pgpcp soft]$ tar zxvf postgresql-15.6.tar.gz
[postgres@pgpcp ~] m k d i r − p / p g c c c / p g s q l − 15 [ p o s t g r e s @ p g p c p ] mkdir -p /pgccc/pgsql-15 [postgres@pgpcp ~] mkdir−p/pgccc/pgsql−15[postgres@pgpcp ]cd /pgccc/soft/postgresql-15.6
[postgres@pgpcp postgresql-15.6]$./configure --prefix=/pgccc/pgsql-15 --without-readline

–編譯及安裝
[postgres@pgpcp postgresql-15.6]$ make && make install

3.新版數(shù)據(jù)庫初始化目錄
注意:只初始化數(shù)據(jù)庫,不啟動
/pgccc/pgsql-15/bin/initdb -D
/pgccc/pgsql-15/pgdata -E UTF8
–locale=en_US.utf8 -U postgres

4.舊版本數(shù)據(jù)庫進(jìn)行備份
pg_dumpall -Upostgres -f
/home/postgres/dumpall_data.sql

5.停舊版本數(shù)據(jù)庫
pg_ctl -D /pgccc/pgdata stop

6.檢查新舊數(shù)據(jù)庫版本兼容性
注意:如果版本兼容性有問題,需要解決
cd /pgccc/pgsql-15/bin/
./pg_upgrade --old-datadir /pgccc/pgdata/
–new-datadir /pgccc/pgsql-15/pgdata/
–old-bindir /pgccc/pgsql-14/bin/
–new-bindir /pgccc/pgsql-15/bin/ --check

7.升級數(shù)據(jù)庫
cd /pgccc/pgsql-15/bin/
./pg_upgrade --old-datadir /pgccc/pgdata/
–new-datadir /pgccc/pgsql-15/pgdata/
–old-bindir /pgccc/pgsql-14/bin/
–new-bindir /pgccc/pgsql-15/bin/

8.啟動新版本數(shù)據(jù)庫
cd /pgccc/pgsql-15/bin/
./pg_ctl -D /pgccc/pgsql-15/pgdata/ start

9.調(diào)整環(huán)境變量
vi /home/postgres/.bash_profile export PATH export PS1="[\u@\h \W]\$" export LANG=en_US.UTF-8 export PGPORT=5432 export PGDATA=/pgccc/pgsql-15/pgdata export PGHOME=/pgccc/pgsql-15 export PATH=/pgccc/pgsql-15/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:. export PGUSER=postgres export PGDATABASE=postgres [postgres@pgpcp ~]$source /home/postgres/.bash_profile
10.收集統(tǒng)計信息
vacuumdb --all --analyze-in-stages

11.刪除舊版本數(shù)據(jù)庫的數(shù)據(jù)
cd /pgccc/pgsql-15/bin/
./delete_old_cluster.sh

12.總結(jié)
Postgresql是一個非?;钴S的社區(qū)開源項目,更新速度很快,每一次版本的更新都會積極的修復(fù)舊版本的BUG,性能上也會有不同幅度的提升。
以上就是PostgreSQL大版本升級的詳細(xì)流程的詳細(xì)內(nèi)容,更多關(guān)于PostgreSQL大版本升級的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
深入解讀PostgreSQL中的序列及其相關(guān)函數(shù)的用法
這篇文章主要介紹了PostgreSQL中的序列及其相關(guān)函數(shù)的用法,包括序列的更新和刪除等重要知識,需要的朋友可以參考下2016-01-01
PostgreSQL將數(shù)據(jù)加載到buffer cache中操作方法
這篇文章主要介紹了PostgreSQL將數(shù)據(jù)加載到buffer cache中,我們可以使用pg_prewarm插件來將指定的表加載到OS Buffer或者pg shared buffer中,具體操作方法跟隨小編一起看看吧2021-04-04
PostgreSQL進(jìn)行重置密碼的方法小結(jié)
今天想測試一個PostgresSQL語法的 SQL,但是打開PostgresSQL之后沉默了,密碼是什么?日長月久的,漸漸就忘記了,于是開始了尋找密碼的道路,所以本文介紹了Postgresql忘記密碼,如何重置密碼,需要的朋友可以參考下2024-05-05
PostgreSQL pg_archivecleanup與清理archivelog的操作
這篇文章主要介紹了PostgreSQL pg_archivecleanup與清理archivelog的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Ruoyi從mysql切換到postgresql的幾個踩坑實(shí)戰(zhàn)
最近由于工作的原因,需要將Ruoyi從mysql切換到postgresql,所以這篇文章主要給大家介紹了關(guān)于Ruoyi從mysql切換到postgresql的幾個踩坑實(shí)戰(zhàn),需要的朋友可以參考下2023-02-02
PostgreSQL數(shù)據(jù)庫授權(quán)與自增序列操作實(shí)例代碼
在PostgreSQL中,自增序列是一種特殊的數(shù)據(jù)庫對象,用于生成唯一的數(shù)字序列,通常用于主鍵值的自動生成,這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫授權(quán)與自增序列操作的相關(guān)資料,需要的朋友可以參考下2025-08-08

