我的OpenProject管理软件是用默认的PostgreSQL10安装的。目前postgresql是12,它有很多新功能。
我想在不丢失数据库中数据的情况下升级Postgres数据库。我的系统是ubuntu 18.04,托管了openproject。
我在网上搜索,没有找到一步一步升级postgresql的方法。
你能指导我安装新的数据库,所有的数据都应该在新的数据库中。谢谢你的帮助。
发布于 2020-06-04 23:55:53
A)首先创建该数据库的所有数据库的备份(如果不需要备份,可以从B继续)
身份登录
sudo su postgres pg_dumpall > backup.sqlB)升级到PostgreSQL12
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12 sudo systemctl stop postgresql.service /usr/lib/postgresql/12/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/10/main \
--new-datadir=/var/lib/postgresql/12/main \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/12/bin \
--old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf' exit sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433 sudo systemctl start postgresql.service身份登录
sudo su postgres psql -c "SELECT version();" ./analyze_new_cluster.sh sudo apt-get remove postgresql-10 postgresql-server-dev-10
#uninstalls postgres packages
sudo rm -rf /etc/postgresql/10/
#removes the old postgresql directory
sudo su postgres
#login as postgres user
./delete_old_cluster.sh
#delete the old cluster data注意:根据您的要求更改postgresql.conf和pg_hba.conf
PS:请随时评论您的问题、建议或您想要建议的任何其他修改
发布于 2020-04-14 21:11:54
psql --version sudo -u postgres psql pg_dumpall > alldbs.sql
(此命令将备份postgresql数据库中的所有数据库)
然后退出postgres用户,并:
终端内的
sudo systemctl stop postgres sudo apt-get安装postgresql-12 postgresql- -y -dev- 12 postgresql-contrib-12 libpq-dev postgresql-12-hypopg sudo pg_dropcluster 12 main --stop sudo pg_upgradecluster 10 main sudo pg_dropcluster 10 main --stop
sudo systemctl重启postgresql
su - postgres
要检查版本,请使用
psql --版本
我已经完成了上面的步骤,我可以更新DBand还原所有数据。
发布于 2020-10-21 20:32:30
使用pg_upgrade升级Postgresql
第1步(查找源Postgresql服务器的区域设置语言和编码)
第2步(停止现有/源Postgresql服务器)
使用$ sudo systemctl list-units | grep postgres
$ sudo service postgresql-<source-version>.service stop
第-3步(安装目标Postgresql服务器)
第-4步(更新区域设置语言和编码)
$ /usr/pgsql-<target-version>/bin/initdb -D /var/lib/pgsql/<target-version>/data --locale=<add-your-encoding>第5步(检查从源到目标的升级是否存在任何潜在问题)
以postgres用户$sudo su postgres身份运行命令
$ /usr/pgsql-<target-version>/bin/pg_upgrade --old-bindir /usr/pgsql-<source-version>/bin --new-bindir /usr/pgsql-<target-version>/bin --old-datadir /var/lib/pgsql/<source-version>/data --new-datadir /var/lib/pgsql/12/data --link --jobs=2 --check如果可以,我们可以转到下一步,如果没有,在继续下一步之前修复问题。预期输出:Clusters are compatible
第-6步(使用链接选项将源升级到目标Postgresql版本)
与以postgres用户$sudo su postgres身份使用migration
$ /usr/pgsql-<target-version>/bin/pg_upgrade --old-bindir /usr/pgsql-<source-version>/bin --new-bindir /usr/pgsql-<target-version>/bin --old-datadir /var/lib/pgsql/<source-version>/data --new-datadir /var/lib/pgsql/<target-version>/data --link预期输出:Upgrade Complete
谢谢。尽情享受!
https://stackoverflow.com/questions/60409585
复制相似问题