PostgreSQL版本快速升級

來源:互聯網
上載者:User

標籤:

PostgreSQL版本快速升級

 

寫在前面

  PostgreSQL9.5版本支援資料分區的功能,為以後做分布式考慮,準備將生產環境的9.1版本升級至9.5。中間需要做資料移轉。

  在遷移操作中,為保證資料完整性,一般需要在資料庫停止的情況下進行備份恢複操作,在資料量小的情況下,通過pg_dumpall的方式備份恢複也是很迅速的,但如果資料量大的情況,再使用這種方式將會耗去大量的時間,特別在生產環境中,長時間的停止使用資料庫是非常致命的。

  PostgreSQL提供了pg_upgrade的命令用於資料庫版本的升級,使用link模式可以快速對資料進行遷移操作。

 

操作步驟:

  1、安裝新版本資料庫

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

  2、停止舊版本的資料庫

    /etc/init.d/postgresql-9.1 stop ,根據實際情況停止資料庫運行

  3、檢查舊資料的地區支援格式

    地區支援在初始化資料庫時被指定,不可更改,因此需要將新的資料庫的地區支援更改成與舊資料庫一樣,否則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/

  4、通過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

    若沒報錯,則完成。

  5、啟動新資料庫

    

 

參考:

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

PostgreSQL版本快速升級

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.