[英]Upgrade PostgreSQL from 9.6 to 10.0 on Ubuntu 16.10
我的數據庫超過 600 GB,我當前的容量只有 1 TB,所以這可能限制了我的選擇。
我的配置文件在這里:
/etc/postgresql/9.6/main
我的數據庫在這里:
/mnt/1TB/postgresql/9.6/main
編輯 - 本指南對我有用。 我需要做的唯一添加是手動下載 libicu55 並安裝它,我必須為我的 /tmp/ 文件夾授予 postgres 1777 權限。 我還將數據文件夾保存到不同的驅動器,所以我不得不使用命令:
pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10
https://gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44
做一個備份。 確保您的數據庫沒有被更新。
pg_dumpall > outputfile
安裝 Postgres 10 。 按照此頁面上的說明進行操作: https : //www.postgresql.org/download/linux/ubuntu/
然后運行sudo apt-get install postgresql-10
。 較新的版本將與較早的版本並排安裝。
運行pg_lsclusters
:
Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
已經有一個用於 10 的集群main
節點(因為這是在安裝包時默認創建的)。 這樣做是為了讓全新安裝開箱即用,無需先創建集群,但當然,當您嘗試升級9.6/main
時,當10/main
也存在時,它會發生沖突。 推薦的過程是使用pg_dropcluster
刪除 10 集群,然后使用pg_upgradecluster
升級。
停止 10 集群並刪除它:
sudo pg_dropcluster 10 main --stop
停止寫入數據庫的所有進程和服務。 停止數據庫:
sudo systemctl stop postgresql
升級 9.6 集群:
sudo pg_upgradecluster -m upgrade 9.6 main
再次啟動 PostgreSQL
sudo systemctl start postgresql
運行pg_lsclusters
。 您的 9.6 集群現在應該“關閉”,而 10 集群應該在5432
在線:
Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
首先,檢查一切是否正常。 之后,刪除 9.6 集群:
sudo pg_dropcluster 9.6 main --stop
pg_upgradecluster
一些注意pg_upgradecluster
本指南適用於從 9.5 升級到 10.1。 從舊版本-m upgrade
時,請考慮在步驟 #6 中省略-m upgrade
:
sudo pg_upgradecluster 9.6 main
如果你有一個非常大的集群,您可以使用pg_upgradecluster
與--link
選項,這樣的升級將是原地。 但是,這很危險——如果發生故障,您可能會丟失集群。 如果沒有必要,請不要使用此選項,因為-m upgrade
已經足夠快了。
基於:
pg_upgradecluster
會發生什么?本指南適用於從 9.6 升級到 11、從 10 升級到 11 以及從 10 升級到 13。
幾乎開箱即用。 我在 17.10 巧妙。 雖然你可以把它放在 .deb 文件中,但它不會工作 - Postgres 只更新非 LTS 版本,如果它們破壞了 LTS 版本。 所以把 Zesty 放到那個 deb 中,你就可以開始了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.