簡體   English   中英

在 Ubuntu 16.10 上將 PostgreSQL 從 9.6 升級到 10.0

[英]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

分步指南

  1. 做一個備份 確保您的數據庫沒有被更新。

     pg_dumpall > outputfile
  2. 安裝 Postgres 10 按照此頁面上的說明進行操作: https : //www.postgresql.org/download/linux/ubuntu/

    然后運行sudo apt-get install postgresql-10 較新的版本將與較早的版本並排安裝。

  3. 運行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升級。

  4. 停止 10 集群並刪除它:

     sudo pg_dropcluster 10 main --stop
  5. 停止寫入數據庫的所有進程和服務。 停止數據庫:

     sudo systemctl stop postgresql
  6. 升級 9.6 集群:

     sudo pg_upgradecluster -m upgrade 9.6 main
  7. 再次啟動 PostgreSQL

     sudo systemctl start postgresql
  8. 運行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. 首先,檢查一切是否正常。 之后,刪除 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已經足夠快了。

基於:

更新

本指南適用於從 9.6 升級到 11、從 10 升級到 11 以及從 10 升級到 13。

幾乎開箱即用。 我在 17.10 巧妙。 雖然你可以把它放在 .deb 文件中,但它不會工作 - Postgres 只更新非 LTS 版本,如果它們破壞了 LTS 版本。 所以把 Zesty 放到那個 deb 中,你就可以開始了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM