Windows版?PostgreSQL?利用?pg_upgrade?進(jìn)行大版升級操作方法
最近 PostgreSQL 15 版本正式發(fā)布了,新版本的各種特性和好處本文就不展開介紹了,主要介紹一下 Windows 環(huán)境下 PostgreSQL 大版本升級的方法,我們現(xiàn)在的幾個(gè)數(shù)據(jù)庫都是運(yùn)行在 Windows服務(wù)器的 PostgreSQL 14,
首先準(zhǔn)備一份新版本的 PostgreSQL 初始化,并調(diào)整好所有設(shè)置,關(guān)于這一步其實(shí)和安裝一個(gè)全新的 PostgreSQL 操作差不多,可以看我之前 的一篇博文 Windows 系統(tǒng) PostgreSQL 手工安裝配置方法
不過在操作的時(shí)候?qū)τ谛掳姹镜腜ostgreSQL只要初始化之后,調(diào)整好對應(yīng)的 postgresql.conf 就可以了,不需要去執(zhí)行安裝服務(wù)那些步驟,我們只需要一個(gè)調(diào)整好設(shè)置的 postgreSQL 實(shí)例就可以了,甚至都不需要啟動它。
這個(gè)就是我們從 PostgreSQL官網(wǎng)下載的一份最新版的 PostgreSQL15 的壓縮包,我們首先初始化實(shí)例
initdb -D "C:\Software\PostgreSQL15\data" -E UTF8 -U postgres --locale="Chinese (Simplified)_China.936" --lc-messages="Chinese_China.936" -A scram-sha-256 -W
這里需要注意的一個(gè)點(diǎn)是,設(shè)定密碼時(shí)最好和老版本的實(shí)例 postgres 賬戶密碼保持一致,實(shí)例化的時(shí)候參數(shù)中傳遞的編碼格式 如 Chinese (Simplified)_China.936,Chinese_China.936 這些一定要和原來老版本的實(shí)例最好保持一直,密碼加密格式最好也是和老版本的實(shí)例保持一直如 scram-sha-256,實(shí)例化之后根據(jù)自己的需要把 postgresql.conf 文件中的配置參數(shù)按照老版本中改動過的地方按照自己需求再調(diào)整一次,然后把 pg_hba.conf 直接復(fù)制到新版本中,原則就是新老版本盡量保持配置一致。
準(zhǔn)備好這些之后就可以開始升級操作了,首先關(guān)閉老的實(shí)例,確保新老版本的兩個(gè)實(shí)例都沒有啟動,都在關(guān)閉狀態(tài)。
net stop PostgreSQL
檢查新老實(shí)例版本所在的文件夾,我們的賬戶是都有完整的全部權(quán)限,我這里 cmd 命令是以 Administrator 賬戶運(yùn)行的,所以我為兩個(gè)文件夾都賦予了 Administrator 的完整權(quán)限
然后在新版本的 bin 下執(zhí)行如下命令 cmd環(huán)境
cmd set PGPASSWORD=xxxxxx (xxxx為postgres 的密碼) pg_upgrade -b "c:\Software\PostgreSQL\bin" -B "c:\Software\PostgreSQL15\bin" -d "c:\Software\PostgreSQL\data" -D "c:\Software\PostgreSQL15\data" -U postgres
注釋:> pg_upgrade -b "舊的bin目錄" -B "新的bin目錄" -d "舊的data目錄" -D "新的data目錄" -U postgres
像上圖的狀態(tài),就說明我們的升級命令運(yùn)行成功了。
命令執(zhí)行完成之后記得直接關(guān)閉 cmd 窗口。否則后面修改實(shí)例名稱時(shí)會提示有占用。
這個(gè)時(shí)候我去把原來老的實(shí)例,修改一個(gè)名字,比如我這里老的實(shí)例原本路徑為 C:\Software\PostgreSQL,我們修改這個(gè)文件夾名稱為 C:\Software\PostgreSQL14 ,然后修改我們新版本的實(shí)例路徑 C:\Software\PostgreSQL15 為 C:\Software\PostgreSQL 其實(shí)就是調(diào)整一下兩個(gè)實(shí)例文件夾的名字,重命名一下。
重命名調(diào)整好之后,就可以啟動我們的 PostgreSQL 服務(wù)了。
net start PostgreSQL
啟動之后切換到再次進(jìn)入到 bin 目錄運(yùn)行
cmd set PGPASSWORD=xxxxxx (xxxx為postgres 的密碼) vacuumdb -U postgres --all --analyze-in-stages
如果原先老的實(shí)例中有部分?jǐn)?shù)據(jù)庫用到了一些擴(kuò)展比如 postgis 等,還需要執(zhí)行一個(gè)擴(kuò)展的升級命令如下:
psql --username postgres --file update_extensions.sql postgres
至此 Windows版 PostgreSQL 利用 pg_upgrade 進(jìn)行大版升級操作 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關(guān)注我目前在維護(hù)的一個(gè) .NET 基礎(chǔ)框架項(xiàng)目,項(xiàng)目地址如下
https://github.com/berkerdong/NetEngine.git
https://gitee.com/berkerdong/NetEngine.git
到此這篇關(guān)于Windows版 PostgreSQL 利用 pg_upgrade 進(jìn)行大版升級操作方法的文章就介紹到這了,更多相關(guān)Windows PostgreSQL升級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢
這篇文章主要介紹了postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgreSQL自動生成隨機(jī)數(shù)值的實(shí)例
這篇文章主要介紹了postgreSQL自動生成隨機(jī)數(shù)值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Postgresql的select優(yōu)化操作(快了200倍)
這篇文章主要介紹了Postgresql的select優(yōu)化操作(快了200倍),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgres 實(shí)現(xiàn)查詢某條數(shù)據(jù)的排名
這篇文章主要介紹了postgres 實(shí)現(xiàn)查詢某條數(shù)據(jù)的排名,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12PostgreSQL 查看表的主外鍵等約束關(guān)系詳解
這篇文章主要介紹了PostgreSQL 查看表的主外鍵等約束關(guān)系詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用
這PostgreSQL中提供了窗口函數(shù),一個(gè)窗口函數(shù)在一系列與當(dāng)前行有某種關(guān)聯(lián)的表行上進(jìn)行一種計(jì)算。下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫中窗口函數(shù)的語法與使用的相關(guān)資料,需要的朋友可以參考下2019-03-03使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法
這篇文章主要介紹了使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08PostgreSQL查詢和處理JSON數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于PostgreSQL查詢和處理JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-11-11