postgresql9.5.0升級至10.3
Linux發行版本:CentOS release 6.7 (Final)
舊pg資料庫版本:9.5.0
舊版本bin目錄:/usr/local/pgsql/bin
舊版本data目錄:/alidata1/data
舊版本WAL block size大小:8192
舊版本埠:5432
外掛資訊:pg_stat_statements V1.3 on schema basisdata
二、 安裝pg10.3版本
1、下載原始碼檔案至伺服器
2、解碼
tar jxvf postgresql-10.0.tar.bz2
3、編譯(設定安裝目錄和安裝選項)
cd postgresql-10.0
./configure --prefix=/usr/local/pgsql10 --with-pgport=5432 --with-wal-blocksize=8
若提示安裝失敗,原因是缺少GCC、readline和zlib,先檢視本機是否安裝,然後再根據情況自行安裝rpm -qa | grep gcc
yum search gcc
yum install gcc
readline和zlib安裝方式相同
4、安裝
gmake world
gmake install -world
5、建立data資料夾
mkdir /usr/local/pgsql/data
6、建立postgres使用者和密碼
adduser postgres
passwd postgres
7、修改data目錄許可權,將其賦給postgres
chown -R postgres:postgres /usr/local/pgsql10/data/
chmod -R 700 /usr/local/pgsql10/data/
8、設定環境變數
修改系統環境變數檔案
# vim /etc/profile
新增環境變數
LD_LIBRARY_PATH=/usr/local/pgsql10/lib --是psql命令可用
export LD_LIBRARY_PATH
PGDATA=/usr/local/pgsql10/data
export PGDATA
PATH=$PATH:/usr/local/pgsql10/bin --pg_ctl命令可用
export PATH --使自己定義的變數生效,類似於全域性變數
儲存後,讀取profile檔案
# source profile
9、切換至postgres賬號,初始化資料庫
su - postgres
/usr/local/pgsql10/bin/initdb -E UTF8 -D /usr/local/pgsql10/data --locale=en_US.UTF-8 -U postgres -W
10、開啟postgres服務
/usr/local/pgsql10/bin/pg_ctl start
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
三、 升級
1、 新版本初始化成功以後,安裝pg_upgrade外掛
cd contrib
gamke
gmake install
2、 修改配置檔案postgresql.conf和pg_hba.conf2.1、修改pg_hba.conf
因為升級需要多次連線新老叢集資料庫例項, 所以修改為使用本地trust認證
2.2、修改postgresql.conf
將老版本的postgresql.conf檔案拷貝至新版本的相應目錄下,然後修改新版本的埠為5434(與編譯時已經指定的埠相同)
3、 停老庫
/usr/local/pgsql95/bin/pg_ctl stop
4、 建立upgrade資料夾,並賦權
su - root
cd /usr/local/pgsql10
mkdir upgrade
chown postgres:postgres upgrade
su - postgres
cd /usr/local/pgsql10/upgrade
5、 修改profile檔案,LD_LIBRARY_PATH指向新庫cd /etc
vim profile
LD_LIBRARY_PATH=/usr/local/pgsql95/lib
export LD_LIBRARY_PATH
6、 檢驗更新
/usr/local/pgsql10/bin/pg_upgrade -c -b /usr/local/pgsql95/bin -B /usr/local/pgsql10/bin -d /usr/local/pgsql95/data -D /usr/local/pgsql10/data -p 5432 -P 5434 -U postgres
解決完上述問題後,重新檢驗,出現如下結果
說明新老資料庫相容,可以進行升級
7、 升級
升級有兩種方式
一是:預設的通過拷貝資料檔案到新的data目錄下,速度較慢,但原庫可用
二是:建立硬連結,速度較快,但原庫不可用,新增--link命令即可執行
由於資料量較大,本次測試是採用硬連結的方式/usr/local/pgsql10/bin/pg_upgrade --link -b /usr/local/pgsql95/bin -B /usr/local/pgsql10/bin -d /usr/local/pgsql95/data -D /usr/local/pgsql10/data -p 5432 -P 5434
四、 遇到的問題:1、 有三張表的欄位不合法:
biuse.temp_xcm_0402;
biuse.temp_xcm_0402_2;
biuse.temp_xcm_0402_3;
解決方案:刪除這三張表
2、 生產環境安裝了pg_stat_statements外掛
由於生產環境安裝了pg_stat_statements外掛,而在升級的時候,新版本並未安裝該外掛,所以報錯解決方案:
1、 在升級的時候,在新版本原始碼包的該目錄下,需要make & make install相應的外掛,具體目錄如下postgresql-10.0/contrib/pg_stat_statements
2、 然後修改老版本的配置檔案postgresql.conf,將pg_stat_statements對應到元件暫時註釋掉,然後再將老版本的配置檔案拷貝到10.3版本對應的目錄下,才能啟動。
3、 存在以pg_開頭的使用者
10.0版本開始是不支援以pg_開頭的使用者的,因為這是系統的預設使用者解決方案:收回該使用者的所有許可權,並刪除該使用者
revoke all on schema public from pg_rd;
drop role pg_rd;
升級檢測成功,可以進行升級
4、 wal-blocksize問題,由於該引數新老版本對不上,導致檢驗失敗,解決方法是刪除資料庫,然後重新編譯,並在編譯是指定wal-blocksize的大小,然後重新檢驗
5、 locale引數對不上,解決方案是刪除data目錄,重新初始化,並修改locale引數的指定值
相關文章
- MongoDB 3.2 升級至 3.4.6MongoDB
- Twitter API升級至1.1API
- php5.6 升級至7.2.7PHP
- ThinkPHP升級至 5.1.18 版本PHP
- Oracle 10.2.0.5升級至11.2.0.4Oracle
- 如何Fedora 24升級至Fedora 25版?Fedora24升級至Fedora25版的詳細教程
- Linux平滑編譯升級php至5.5.0Linux編譯PHP
- 線上環境MySQL5.5升級至5.6MySql
- Ubuntu 14.04下升級GNOME至3.12Ubuntu
- 11.2.0.3 database異機升級至11.2.0.4Database
- 升級至Ubuntu 12.04 Server的二三事UbuntuServer
- 蘋果推iOS 10.3更新,良心之作,升級後剩餘空間大增蘋果iOS
- Python2.7升級至Python3.6Python
- 安裝Drupal7.12升級至7.22
- ORACLE 10gR2 RAC升級至10.2.0.4Oracle 10g
- 升級至SQL Server 2005的理由[zt]SQLServer
- vm+win+oracle10g 升級至 10.2.0.4Oracle
- bitnami redmine版本由2.3.1升級至3.2.2過程
- Centos7 升級至openssh-9.8p1CentOS
- iOS12升級與降級至iOS11.4./11.3.1教程 iOS12怎麼升級iOS
- 內網gitlab11.2升級至11.4.5內網Gitlab
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- windows10 MySQL5.7升級至MySQL8.0WindowsMySql
- 自動升級CentOS Python至官方最新版CentOSPython
- XP升級至Windows7的問題彙總Windows
- 【邏輯DG滾動升級三】ORACLE11204 邏輯DG滾動升級至12C---正式升級Oracle
- 京東 vue3 元件庫震撼升級,如約而至!Vue元件
- win8.1升級至win8.1update圖文教程
- Oracle 11.2.0.4 RAC psu補丁升級至11.2.0.4.2Oracle
- Chitika:60%的iPhone使用者升級至iOS 6iPhoneiOS
- 微軟官方升級工具Win10易升可將系統升級至創意者更新15063正式版微軟Win10
- 跳過Vista而直接從XP升級至Windows 7Windows
- 升級react-native至0.45.0後Redefinition of 'RCTMethodInfo'解決方法React
- 微軟證實Windows 10核心已自6.4升級至10.0微軟Windows
- SMSSDK從2.x版本升級至3.x版本指導
- react-router v3 升級至 v6 探索小結React
- 【UP_ORACLE】使用AutoUpgrade工具升級Oracle 11.2.0.4至12.2.0.1Oracle
- Mac升級至macOS High Sierra後導致git無法使用MacGit