我尝试将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升级的方法。