PostgreSQL版本快速升級

PostgreSQL版本快速升級html

 

寫在前面linux

  PostgreSQL9.5版本支持數據分片的功能,爲之後作分佈式考慮,準備將生產環境的9.1版本升級至9.5。中間須要作數據遷移。sql

  在遷移操做中,爲保證數據完整性,通常須要在數據庫中止的狀況下進行備份恢復操做,在數據量小的狀況下,經過pg_dumpall的方式備份恢復也是很迅速的,但若是數據量大的狀況,再使用這種方式將會耗去大量的時間,特別在生產環境中,長時間的中止使用數據庫是很是致命的。數據庫

  PostgreSQL提供了pg_upgrade的命令用於數據庫版本的升級,使用link模式能夠快速對數據進行遷移操做。分佈式

 

操做步驟:post

  一、安裝新版本數據庫spa

    /PATH/TO/postgresql-9.5.1-1-linux-x64.run,根據提示進行數據庫安裝操做。postgresql

  二、中止舊版本的數據庫htm

    /etc/init.d/postgresql-9.1 stop ,根據實際狀況中止數據庫運行get

  三、檢查舊數據的區域支持格式

    區域支持在初始化數據庫時被指定,不可更改,所以須要將新的數據庫的區域支持更改爲與舊數據庫同樣,不然pg_upgrade操做會報錯。

    a、查看舊數據庫的區域支持,主要是lc-collate,lc-ctype兩個參數,進入數據庫,使用\l,能夠查看

    b、使用initdb指定區域支持初始化新的數據庫。

   /PATH/TO/9.5/bin/initdb --lc-collate=zh_CN.utf8 --lc-ctype=zh_CN.utf8 --lc-messages=zh_CN.utf8 --lc-monetary=zh_CN.utf8 --lc-numeric=zh_CN.utf8 --lc-time=zh_CN.utf8 -D /PATH/newdata/

  四、經過link mode 進行快速的數據庫升級,要使用link模式需確保新舊數據目錄在同一個文件系統底下

    先介紹下pg_upgrade的幾個經常使用參數:使用pg_upgrade --help能夠查看詳細參數配置

    -d, --old-datadir=DATADIR      指定舊數據文件所在目錄

    -D, --new-datadir=DATADIR    指定新數據文件所在目錄

    -b, --old-bindir=BINDIR           指定舊版本可執行命令目錄

    -B, --new-bindir=BINDIR         指定新版本可執行命令目錄

    -k, --link                                使用link模式進行更新(即便用硬連接的方式將新數據文件指向舊數據文件的真實存放位置,減去了copy的時間)

    /PATH/TO/9.5/bin/pg_upgrade -d /PATH/TO/olddata -D /PATH/TO/newdata -b /PATH/TO/9.1/bin -B /PATH/TO/9.5/bin --link

    若沒報錯,則完成。

  五、啓動新數據庫

    

 

參考:

http://www.postgresql.org/docs/9.5/static/pgupgrade.html

相關文章
相關標籤/搜索