如何在不丢失openproject数据的情况下将postgresql数据库从10升级到12
我的OpenProject管理软件安装了默认的postgresql 10。 目前postgresql数据库是12,它有很多新特性 我想升级我的Postgres数据库而不丢失数据库中的数据。 我的系统是Ubuntu18.04,托管openproject 我在网上搜索,找不到一步一步升级postgresql的方法 你能指导我安装新的数据库和所有数据应该在新的数据库。 谢谢你的帮助如何在不丢失openproject数据的情况下将postgresql数据库从10升级到12,postgresql,ubuntu-18.04,openproject,Postgresql,Ubuntu 18.04,Openproject,我的OpenProject管理软件安装了默认的postgresql 10。 目前postgresql数据库是12,它有很多新特性 我想升级我的Postgres数据库而不丢失数据库中的数据。 我的系统是Ubuntu18.04,托管openproject 我在网上搜索,找不到一步一步升级postgresql的方法 你能指导我安装新的数据库和所有数据应该在新的数据库。 谢谢你的帮助 备份数据库 psql --version sudo -u postgres psql pg_dumpall > a
psql --version sudo -u postgres psql pg_dumpall > alldbs.sql
(此命令将备份postgresql数据库中的所有数据库)sudo systemctl stop postgres
sudo apt get安装-y postgresql-12 postgresql-server-dev-12 postgresql-contrib-12 libpq dev postgresql-12-g
sudo pg_dropcluster 12主-停止
sudo pg_升级集群10主
sudo pg_dropcluster 10主-停止
sudo systemctl restart postgresql
su - postgres
psql --version
- 以postgres用户身份登录Postgresql数据库
- 执行查询
SHOW LC\u COLLATE代码>
- 使用
$sudo systemctl list units | grep postgres
- 停止服务
$sudo service postgresql-。服务停止
- 配置repos并安装(谷歌提供了大量教程)
- 链接选项比迁移要快得多
- 以postgres用户身份运行命令,
$sudo su postgres
$/usr/pgsql-/bin/pgu升级--旧bindir/usr/pgsql-/bin--新bindir/usr/pgsql-/bin--旧datadir/var/lib/pgsql//data--新datadir/var/lib/pgsql//data--链接
预期输出:升级完成
谢谢。
享受
pg_升级
或使用转储和还原:刚刚完成所有步骤!这必须标记为解决方案!如何还原backup.sql文件。这会恢复postgres中的所有DB吗?请注意在WSL上执行此操作的任何人,在运行pgu升级之前键入cd~
。否则你会遇到权限问题,因为它试图在Windows文件系统中执行Linux权限操作,但失败了。这很好,它甚至可以与postgresql 13 o//一起使用。我必须在一个可由用户写入的目录中postgres
才能在我的Ubuntu Linux系统上使用它。我先切换到cd/tmp
,然后才切换到sudo su postgres
,然后运行正常。否则,我将得到一个无法打开日志文件“pg\u upgrade\u internal.log”
错误。在我看来,这应该是可以接受的答案,可以重新加载您执行的数据psql-f db.out postgres
sudo su postgres
pg_dumpall > backup.sql
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
$ /usr/pgsql-<target-version>/bin/initdb -D /var/lib/pgsql/<target-version>/data --locale=<add-your-encoding>
$ /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
$ /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