such - ubuntu安装postgresql 10




在Ubuntu 16.10上将PostgreSQL从9.6升级到10.0 (2)

我的数据库超过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/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

如果您有一个非常大的集群,您可以使用带有--link选项的--link ,以便升级到位。 但是,这很危险 - 如果发生故障,您可能会丢失群集。 如果没有必要,请不要使用此选项,因为-m upgrade已经足够快了。

基于:

更新

本指南适用于从9.6升级到11和从10升级到11。


几乎开箱即用。 我在17.10很巧妙。 虽然你可以将它放在.deb文件中,但它不会工作 - 如果它们破坏了LTS版本,Postgres只会更新非LTS版本。 所以把Zesty放到那个deb中,你很高兴。





ubuntu