国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

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

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


[
PG小版本升級
]


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

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

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

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

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

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

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


[
PG跨版本升級
]


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


使用pg_dumpall和pg_dump進行邏輯轉(zhuǎn)儲恢復升級


  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ù)庫中進行恢復

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

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

注意:當數(shù)據(jù)庫較大時,備份恢復耗時較久,嚴重影響業(yè)務(wù)


使用pg_upgrade進行升級

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


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


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

如果使用源碼編譯安裝,configure配置和原庫一致。可以使用pg_config查看舊版本數(shù)據(jù)庫安裝時的配置參數(shù)。


  • 檢查新舊版本兼容性

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

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


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

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


  • 使用pg_upgrade普通模式升級

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

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


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

借助邏輯復制進行版本升級

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


邏輯復制的限制:

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

  • TEMPORARY表和UNLOGGED表不被復制

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

  • 序列不被復制

  • 大對象不被復制

  • 新增加的表,不會自動加入訂閱

邏輯復制升級步驟:

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

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

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

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

  • 在目標端恢復上述備份

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

createpublication test_pg12_upgrade_pub for all tables;

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

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

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

  • 監(jiān)控復制

select * from pg_stat_replication;

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/130059.html

相關(guān)文章

  • PostgreSQL升級方案

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

    darkerXi 評論0 收藏0
  • 升級 postgresql

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

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

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

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

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

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

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

    Cobub 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<