我尝试将Mastodon使用的Postgresql数据库从9.5升级到9.6(适用于Ubuntu 16.04)

如果使用的Mastodon中的Postgresql版本低于9.4,
那么无法将Mastodon升级到v2.4.2,但如果使用9.5版本就没有问题,所以觉得还可以接受。
反正迟早还是要升级的,而且9.5版本也不太合适,所以我尝试将其升级到9.6版本。
应该从9.4升级到9.6应该是可行的。

这次的工作完全参考了以下URL:
https://gist.github.com/johanndt/486955d141d7f8883a537c2679b6a4f2
由于我们的环境不是Docker环境,所以不确定这是否适用于Docker环境的人。
另外,我建议在操作之前先进行快照或备份。

暂时进入控制台后,需添加postgresql的参考来源并更新软件包列表。

sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

安装Postgresql 9.6
使用以下命令安装:sudo apt-get install postgresql-9.6

安装完成后,运行 dpkg -l | grep postgresql

ii  postgresql                          9.5+173ubuntu0.1                           all          object-relational SQL database (supported version)
ii  postgresql-9.5                      9.5.13-0ubuntu0.16.04                      amd64        object-relational SQL database, version 9.5 server
ii  postgresql-9.6                      9.6.9-2.pgdg16.04+1                        amd64        object-relational SQL database, version 9.6 server
ii  postgresql-client-9.5               9.5.13-0ubuntu0.16.04                      amd64        front-end programs for PostgreSQL 9.5
ii  postgresql-client-9.6               9.6.9-2.pgdg16.04+1                        amd64        front-end programs for PostgreSQL 9.6
ii  postgresql-client-common            173ubuntu0.1                               all          manager for multiple PostgreSQL client versions
ii  postgresql-common                   173ubuntu0.1                               all          PostgreSQL database-cluster manager
ii  postgresql-contrib                  9.5+173ubuntu0.1                           all          additional facilities for PostgreSQL (supported version)
ii  postgresql-contrib-9.5              9.5.13-0ubuntu0.16.04                      amd64        additional facilities for PostgreSQL

可以检查是否已安装了 9.5 和 9.6 版本的 PostgreSQL。

另外,使用 pg_lsclusters 命令。

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5432 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
9.6 main    5433 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

可以确认这两个版本都是在线的。

执行以下操作以升级:删除9.6的配置,同时停止此版本
sudo pg_dropcluster 9.6 main –stop
这样就创建了一个用于继承9.5配置的空间(我的理解)

为了进行升级工作,停止PostgreSQL服务:
使用sudo service postgresql stop命令。

然后,升级到9.5版本并使用sudo pg_upgradecluster命令升级主要集群。

所以,在我们这里出现了一个错误。
在我们的环境中,我们设置了通过cron每天进行安全更新,
但出于某种原因,也安装了postgresql10导致出了问题。
因此,我们指定了一个版本。
通过sudo pg_upgradecluster -v 9.6 9.5 main来实现。

如果一切顺利,我们可以边喝咖啡边等待Mastodon的数据库升级完成。这是一个庞大的实例,所以升级过程应该会花费相当长的时间。

完成后,请使用 `psql –version` 命令检查版本,并确保它显示为 `psql (PostgreSQL) 9.6.9`,以确认版本为9.6。

如果生成了不同的版本,请参考https://mementoo.info/archives/2146。

这就是关于PostgreSQL升级的方法。

广告
将在 10 秒后关闭
bannerAds