創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、微信平臺小程序開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立10年以來,已經(jīng)為成百上千家成都鑿毛機各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務。現(xiàn)在,服務的成百上千家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。小編給大家分享一下升級postgresql的方法有哪些,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
PostgreSQL在默認情況下,是不能跨版本升級的(9.4, 9.5, 9.6等等這些版本跨版本升級。小版本更新不受影響,比如9.6.1到9.6.2升級不
受影響)。甚至PG為了數(shù)據(jù)的安全性,高版本不能直接使用低版本創(chuàng)建的數(shù)據(jù)目錄,會在日志中打印相關的錯誤信息。
dump + restore方案
此方案的原理是使用pg_dumpall命令將舊數(shù)據(jù)庫的全部dump成sql文件,然后使用psql命令還原至高版本的實例中。借助于管道,可以
實現(xiàn)在線升級。配合腳本的話,切換至高版本幾乎零宕機。由于dump+restore總體相對耗時較長,因此不適用于大數(shù)據(jù)量的數(shù)據(jù)庫,或
是寫入比較頻繁的場景使用。
在線遷移的步驟大致如下:
保持舊的實例與配置運行
新的PG實例配置新的端口或者新的unix socket文件,確保不與舊實例沖突
使用pg_dumpall | psql管道組合命令在線遷移數(shù)據(jù)
停止舊實例,將新實例的配置修改為舊實例使用的端口,重啟服務即可完成遷移
參考命令如下:
sudo -u postgres pg_dumpall -h /path/to/old/instance.sock | sudo -u postgres psql -h /path/to/new/instance.sock
數(shù)據(jù)倒入完畢之后,停掉舊實例,刪除舊數(shù)據(jù)的數(shù)據(jù)目錄即可。
不需要在線升級的話,也可以先用pg_dumpall把舊實例的數(shù)據(jù)導出,再更新postgresql,清空數(shù)據(jù)目錄,使用psql還原數(shù)據(jù),效果是完
全一樣的。
pg_upgrade方案
pg_upgrade命令是直接對舊的數(shù)據(jù)庫目錄文件進行升級的方案,直接將舊版本的數(shù)據(jù)文件格式升級為新版本使用的格式。此方案優(yōu)勢是
速度非常快,但是必須停機升級。因此不適用于7x24的場景。
命令非常簡單,同時安裝新版本和舊版本的postgresql,停止postgresql實例后執(zhí)行:
復制集方案
此方案是最平滑的方案,比較適用于7x24小時以及大數(shù)據(jù)量場景,停機時間非常短,只有幾秒鐘。缺點和優(yōu)點同樣突出——配置繁瑣,
需要有集群環(huán)境。
大體的步驟是使用Slony這種復制集方案,先用上述方案升級從庫,再升級主庫。
以上是升級postgresql的方法有哪些的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!