PostgreSQL大版本升級的詳細流程
本文詳細講解了從14.11升級到15.6,使用pg_dumpall進行備份恢復升級的過程
前沿
PostgreSQL版本發(fā)布規(guī)則,一年一個大版本,一個季度一個小版本;PG遇到的BUG問題,社區(qū)會很快進行修復,并在下一個版本中發(fā)布,因此有必要進行對數(shù)據(jù)庫版本升級,避免觸發(fā)已知的BUG帶來業(yè)務系統(tǒng)的不穩(wěn)定。
1.確認舊庫編譯
如果使用源碼編譯安裝,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ù)庫進行備份
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.總結
Postgresql是一個非?;钴S的社區(qū)開源項目,更新速度很快,每一次版本的更新都會積極的修復舊版本的BUG,性能上也會有不同幅度的提升。
以上就是PostgreSQL大版本升級的詳細流程的詳細內(nèi)容,更多關于PostgreSQL大版本升級的資料請關注腳本之家其它相關文章!
相關文章
postgres array_to_string和array的用法講解
這篇文章主要介紹了postgres array_to_string和array的用法講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL 如何查找需要收集的vacuum 表信息
這篇文章主要介紹了PostgreSQL 如何查找需要收集的vacuum 表信息,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02在windows下手動初始化PostgreSQL數(shù)據(jù)庫教程
在windows下手動初始化PG,是一件比較麻煩的事,下面我具體寫一下過程,大家做一下參考。2014-09-09PostgreSQL定時清理舊數(shù)據(jù)的實現(xiàn)方法
最近覺得數(shù)據(jù)庫中每日數(shù)據(jù)不需要都保持,只需要保留30天的,所以這篇文章給大家介紹了PostgreSQL定時清理舊數(shù)據(jù)的實現(xiàn)方法,文中通過代碼示例和圖文給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-03-03postgresql數(shù)據(jù)庫安裝部署搭建主從節(jié)點的詳細過程(業(yè)務庫)
這篇文章主要介紹了postgresql數(shù)據(jù)庫安裝部署搭建主從節(jié)點的詳細過程(業(yè)務庫),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01