在Ubuntu 16.04 LTS中将PostgreSQL从9.3升级到9.5

Rub*_*ben 4 postgresql postgresql-9.3 ubuntu-16.04

我已经安装了Ubuntu LTS 16.04在我的机器在PostgreSQL-9.3。(自16.04版安装postgresql9.5以来,我似乎保留了此实例)。

好吧,我安装了9.5,并使用...删除了9.3。

sudo apt-get remove postgresql-9.3
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道所有数据库和角色都在该实例(9.3)中,并且不与9.5共享。尝试与我的用户登录时不起作用,因为它们不存在于该实例/群集中(对吗?)

我试着使用Ubuntu库安装9.3,但它安装我只是9.5。如何将所有角色和数据库移至9.5?

小智 5

要查看数据库是否仍在服务器上,请检查以下文件夹:

ls /var/lib/postgresql/9.3/main/base/
Run Code Online (Sandbox Code Playgroud)

如果那里有文件,则意味着您的数据库仍在这里!如果此文件夹中没有任何内容,则意味着您的生活数据已被删除。

您是否对数据库进行了定期备份?

如果是这样,则需要重新安装以前的PostgreSQL版本并进行还原。

apt-get install postgresql-9.3
psql -h localhost
create database dbname;
psql -h localhost dbname < backup_file
Run Code Online (Sandbox Code Playgroud)

在Debian或Ubuntu上进行正常升级之后,这个步骤就是这样:service postgresql stop

在新版本的维尔集市上(安装者的规范化视频:新版本的安省集邮者和新移民版本的安装者,请使用新的版本新集群)

停止PostreSQL的新更新版本:

service postgresql stop
Run Code Online (Sandbox Code Playgroud)

删除新的更新版本集群,以确保其中没有任何内容:

pg_dropcluster --stop 9.5 main
Run Code Online (Sandbox Code Playgroud)

然后进行数据迁移:

pg_upgradecluster -m upgrade 9.3 main
Run Code Online (Sandbox Code Playgroud)

然后停止PotsgreSQL的先前版本:

pg_dropcluster 9.3 main --stop
Run Code Online (Sandbox Code Playgroud)

删除旧版本:

apt-get autoremove --purge postgresql-9.3 
Run Code Online (Sandbox Code Playgroud)

然后只需重新启动PostgreSQL,即可迁移数据库的新版本:

service postgresql start
Run Code Online (Sandbox Code Playgroud)

希望能有所帮助。

但是,如果您没有进行任何备份,那么很遗憾,您应该松散一切。