成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PostgreSQL數(shù)據(jù)庫(kù)版本升級(jí)

IT那活兒 / 2214人閱讀
PostgreSQL數(shù)據(jù)庫(kù)版本升級(jí)

PostgreSQL版本發(fā)布規(guī)則,一年一個(gè)大版本,一個(gè)季度一個(gè)小版本;PG遇到的BUG問題,社區(qū)會(huì)很快進(jìn)行修復(fù),并在下一個(gè)版本中發(fā)布,因此有必要進(jìn)行對(duì)數(shù)據(jù)庫(kù)版本升級(jí),避免觸發(fā)已知的BUG帶來(lái)業(yè)務(wù)系統(tǒng)的不穩(wěn)定。本文主要分享一下,PG小版本升級(jí)、跨版本升級(jí)和借助邏輯復(fù)制進(jìn)行數(shù)據(jù)庫(kù)升級(jí)。


[
PG小版本升級(jí)
]


PG小版本的迭代不會(huì)改變內(nèi)部的存儲(chǔ)格式,因此升級(jí)小版本只需要安裝最新版本后,使用新版本重新啟動(dòng)數(shù)據(jù)庫(kù)即可。

  • 安裝最新版本數(shù)據(jù)庫(kù)

  • 停止數(shù)據(jù)庫(kù)實(shí)例

  • 對(duì)數(shù)據(jù)目錄進(jìn)行備份

  • 使用新版本啟動(dòng)數(shù)據(jù)庫(kù)

  • 調(diào)整環(huán)境變量,PGHOME/LD_LIRARAY_PATH等

注意:在安裝新版本數(shù)據(jù)庫(kù)時(shí),要保證數(shù)據(jù)庫(kù)塊大小一致。


[
PG跨版本升級(jí)
]


PG大版本升級(jí),在9.4版本之間只能通過pg_upgrade進(jìn)行,9.4版本之后可以通過第三方擴(kuò)展插件pg_logical進(jìn)行邏輯復(fù)制升級(jí);10版本社區(qū)加入了邏輯復(fù)制功能,可以借助邏輯復(fù)制進(jìn)行升級(jí)。


使用pg_dumpall和pg_dump進(jìn)行邏輯轉(zhuǎn)儲(chǔ)恢復(fù)升級(jí)


  1. 使用pg_dumpall備份全局信息,角色和表空間

pg_dumpall-f /tmp/global.sql -g -d postgres -h 127.0.0.1 -p 5432 -U postgres


  1. 備份數(shù)據(jù)

pg_dump-f /tmp/data.sql -h 127.0.0.1 -d dbname -c -C -F p -E utf8 -Upostgres


  1. 在新版本數(shù)據(jù)庫(kù)中進(jìn)行恢復(fù)

psql-h 127.0.0.1 -d postgres  < /tmp/global.sql

psql-h 127.0.0.1 -d postgres  < /tmp/data.sql

注意:當(dāng)數(shù)據(jù)庫(kù)較大時(shí),備份恢復(fù)耗時(shí)較久,嚴(yán)重影響業(yè)務(wù)


使用pg_upgrade進(jìn)行升級(jí)

pg_upgrade是官方提供的版本升級(jí)工具,有普通模式和Link模式兩種升級(jí)模式。在普通模式下,會(huì)把舊版本的數(shù)據(jù)拷貝到新版本中,需要確保有足夠的磁盤空間存儲(chǔ)新舊兩份數(shù)據(jù);Link模式下,只是在新版本的數(shù)據(jù)目錄中建立了舊版本數(shù)據(jù)文件的硬連接,可以有效減少磁盤占用的空間。


在升級(jí)之前建議使用pg_upgrade-c參數(shù)檢查新舊版本的兼容性,把每一項(xiàng)不兼容的問題解決后才可以順利升級(jí),-c參數(shù)只會(huì)檢查新舊版本兼容性,不會(huì)運(yùn)行真正的升級(jí)程序,不會(huì)修改數(shù)據(jù)文件,在運(yùn)行結(jié)束后,會(huì)輸出兼容性結(jié)果。


  • 安裝新版本并初始化數(shù)據(jù)目錄

如果使用源碼編譯安裝,configure配置和原庫(kù)一致??梢允褂胮g_config查看舊版本數(shù)據(jù)庫(kù)安裝時(shí)的配置參數(shù)。


  • 檢查新舊版本兼容性

pg_upgrade-b /data/old_base -B /data/new_base -d /data/old_data -D/data/new_data -c -p 5432 -P 5433

所有的選項(xiàng)都是OK狀態(tài)表示,校驗(yàn)通過;否則說(shuō)明不兼容,根據(jù)提示信息進(jìn)行處理。


  • 停止舊版本數(shù)據(jù)庫(kù)

pg_ctlstop -D /data/old_base  并修改pg_hba.conf為本地trust模式


  • 使用pg_upgrade普通模式升級(jí)

pg_upgrade-b /data/old_base -B /data/new_base -d /data/old_data -D/data/new_data -p 5432 -P 5433

升級(jí)完成后,會(huì)生成兩個(gè)腳本,analyze_new_cluster.sh,該腳本主要是分析收集新庫(kù)的統(tǒng)計(jì)信息等;delete_old_cluster.sh是刪除舊數(shù)據(jù)庫(kù)的數(shù)據(jù)。


  • 升級(jí)完成后修改相關(guān)環(huán)境變量并進(jìn)行數(shù)據(jù)庫(kù)驗(yàn)證

借助邏輯復(fù)制進(jìn)行版本升級(jí)

邏輯復(fù)制功能,從10版本開始內(nèi)置支持,也可以使用第三方邏輯復(fù)制插件pg_logical。邏輯復(fù)制是基于邏輯解析,主庫(kù)將表中的WAL日志解析成一定格式并發(fā)送給邏輯備庫(kù),邏輯備庫(kù)收到解析后的WAL日志進(jìn)行重做,從而實(shí)現(xiàn)表數(shù)據(jù)同步。注意:WAL_LEVEL要設(shè)置為L(zhǎng)OGICAL級(jí)別。


邏輯復(fù)制的限制:

  • 目前不支持DDL解析,只能解析INSERT/UPDATE/DELETE/TRUNCATE

  • TEMPORARY表和UNLOGGED表不被復(fù)制

  • 表必須有PRIMARY KEY或者唯一約束,否則UPDATE、DELETE操作無(wú)法復(fù)制

  • 序列不被復(fù)制

  • 大對(duì)象不被復(fù)制

  • 新增加的表,不會(huì)自動(dòng)加入訂閱

邏輯復(fù)制升級(jí)步驟:

  • 轉(zhuǎn)儲(chǔ)全局信息,角色、表空間

pg_dumpall-f /tmp/global.sql -g -d postgres -h 127.0.0.1

  • 轉(zhuǎn)儲(chǔ)表結(jié)構(gòu)信息

pg_dump-Fc -s -d postgres -p 5411 -U postgres -f /tmp/lrtest_schema.dmp

  • 在目標(biāo)端恢復(fù)上述備份

  • 在源數(shù)據(jù)庫(kù)上創(chuàng)建發(fā)布

createpublication test_pg12_upgrade_pub for all tables;

  • 在目標(biāo)端創(chuàng)建訂閱

createsubscription test_pg12_upgrade_sub connection port=5432dbname=postgres user=postgres password=root publicationtest_pg12_upgrade_pub;

默認(rèn)會(huì)復(fù)制源端表中現(xiàn)有數(shù)據(jù)。

  • 監(jiān)控復(fù)制

select * from pg_stat_replication;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130059.html

相關(guān)文章

  • PostgreSQL升級(jí)方案

    摘要:小版本更新不受影響,比如到升級(jí)不受影響。下面介紹兩種升級(jí)方案可供選擇,均是官方文檔提及的方案官方文檔參考。方案命令是直接對(duì)舊的數(shù)據(jù)庫(kù)目錄文件進(jìn)行升級(jí)的方案,直接將舊版本的數(shù)據(jù)文件格式升級(jí)為新版本使用的格式。 PostgreSQL在默認(rèn)情況下,是不能跨版本升級(jí)的(9.4, 9.5, 9.6等等這些版本跨版本升級(jí)。小版本更新不受影響,比如9.6.1到9.6.2升級(jí)不受影響)。甚至PG為了數(shù)...

    darkerXi 評(píng)論0 收藏0
  • 升級(jí) postgresql

    摘要:但如果涉及到跨大版本升級(jí)比如升級(jí)到,這種直接替換軟件就不行了,因?yàn)榭绨姹镜膬?nèi)部存儲(chǔ)形式發(fā)生了變化官方對(duì)于升級(jí)提供了種方法,這里遷移我使用了來(lái)進(jìn)行處理細(xì)節(jié)可以參考官方文檔。 1 場(chǎng)景描述 最近使用 postgresql 命令行比較多,就找了個(gè)類似 mycli 工具,pgcli,這個(gè)是針對(duì) postgresql 的,興沖沖的安裝了 brew install pgcli 沒想到這貨自動(dòng)幫我...

    learn_shifeng 評(píng)論0 收藏0
  • 新書推薦 |《PostgreSQL實(shí)戰(zhàn)》出版(提供樣章下載)

    摘要:作者譚峰張文升出版日期年月頁(yè)數(shù)頁(yè)定價(jià)元本書特色中國(guó)開源軟件推進(jìn)聯(lián)盟分會(huì)特聘專家撰寫,國(guó)內(nèi)多位開源數(shù)據(jù)庫(kù)專家鼎力推薦。張文升中國(guó)開源軟件推進(jìn)聯(lián)盟分會(huì)核心成員之一。 很高興《PostgreSQL實(shí)戰(zhàn)》一書終于出版,本書大體上系統(tǒng)總結(jié)了筆者 PostgreSQL DBA 職業(yè)生涯的經(jīng)驗(yàn)總結(jié),本書的另一位作者張文升擁有豐富的PostgreSQL運(yùn)維經(jīng)驗(yàn),目前就職于探探科技任首席PostgreS...

    Martin91 評(píng)論0 收藏0
  • 阿里云FreeBSD系統(tǒng)升級(jí)與安裝PHP環(huán)境

    摘要:所以就安裝了另外一個(gè)很喜歡的數(shù)據(jù)庫(kù)的已經(jīng)修復(fù)了,后面會(huì)補(bǔ)上的安裝添加自啟動(dòng)初始化數(shù)據(jù)庫(kù)啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)安裝上面是一條命令安裝自啟動(dòng)配置略安裝 系統(tǒng)升級(jí) 阿里云的FreeBSD系統(tǒng)默認(rèn)安裝版本是10.1,這個(gè)版本已經(jīng)超出了官方的維護(hù)時(shí)間了,所以首先要進(jìn)行系統(tǒng)的版本升級(jí) 設(shè)置當(dāng)前系統(tǒng)版本為10.1-release,setenv UNAME_r 10.1-RELEASE 修改update...

    tinna 評(píng)論0 收藏0
  • 阿里云FreeBSD系統(tǒng)升級(jí)與安裝PHP環(huán)境

    摘要:所以就安裝了另外一個(gè)很喜歡的數(shù)據(jù)庫(kù)的已經(jīng)修復(fù)了,后面會(huì)補(bǔ)上的安裝添加自啟動(dòng)初始化數(shù)據(jù)庫(kù)啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)安裝上面是一條命令安裝自啟動(dòng)配置略安裝 系統(tǒng)升級(jí) 阿里云的FreeBSD系統(tǒng)默認(rèn)安裝版本是10.1,這個(gè)版本已經(jīng)超出了官方的維護(hù)時(shí)間了,所以首先要進(jìn)行系統(tǒng)的版本升級(jí) 設(shè)置當(dāng)前系統(tǒng)版本為10.1-release,setenv UNAME_r 10.1-RELEASE 修改update...

    Cobub 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<