我的数据库超过600 GB,而我当前的容量只有1 TB,所以这可能限制了我的 Select .

我的配置文件如下:

/etc/postgresql/9.6/main

我的数据库在这里:

/mnt/1TB/postgresql/9.6/main

编辑-

pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10

https://gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44

推荐答案

循序渐进的指南

  1. Make a backup.确保你的数据库没有被更新.

     pg_dumpall > outputfile
    
  2. Install Postgres 10.按照本页上的说明操作:https://www.postgresql.org/download/linux/ubuntu/

    然后跑sudo apt-get install postgresql-10.较新版本将与较早版本同时安装.

  3. 运行pg_lsclusters:

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

    已经有一个群集main for 10(因为这是在包安装时默认创建的).这样一来,新的安装就可以开箱即用,而无需先创建集群,但当您try 升级9.6/main时,当然会发生冲突,而10/main也存在.建议的步骤是用pg_dropcluster移除10集群,然后用pg_upgradecluster升级.

  4. 停止10群集并将其放下:

     sudo pg_dropcluster 10 main --stop
    
  5. 停止向数据库写入的所有进程和服务.停止数据库:

     sudo systemctl stop postgresql 
    
  6. 升级9.6群集:

     sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. 重新启动PostgreSQL

     sudo systemctl start postgresql
    
  8. pg_lsclusters .你的9.6集群现在应该处于"关闭"状态,10集群应该在5432:

     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    
  9. First, check that everything works fine.之后,卸下9.6群集:

      sudo pg_dropcluster 9.6 main --stop
    

Some notes on pg_upgradecluster

本指南适用于从9.5升级到10.1.当从旧版本升级时,考虑步骤6中省略-m upgrade:

sudo pg_upgradecluster 9.6 main

如果你有一个非常大的集群,你可以使用pg_upgradecluster--link选项,这样升级就到位了.然而,这是危险的——如果发生故障,您可能会失go 集群.如果没有必要,不要使用这个选项,因为-m upgrade已经足够快了.

基于:

使现代化

本指南适用于从9.6升级到11、从10升级到11以及从10升级到13.

Postgresql相关问答推荐

在输入稍有错误的PostgreSQL表中进行快速字符串搜索

我无法让pg_cron扩展在最新的Postgres 16图像中工作

哪种数据类型是除法的结果?

如何在生成的列的表达式中使用TIMESTAMP WITH时区列?

PostGresql :正则表达式 Select 其中只有一个正斜杠的行

使用 pgx 扫描范围类型

当参数大小超过 393166 个字符时,PSQL 准备语句查询挂起

转到 time.Time to postgresql timestamptz 无法用 time.Now() 保存

无法从 docker-compose 上的其他服务解析 postgres 主机名

如何获得区间的绝对值

PostgreSQL:please specify covering index name是什么意思

并发刷新materialized视图

从 Postgres 数据库中删除所有函数

在远程机器上Restore dump

Rails 4 迁移: has_and_belongs_to_many table name

如何使用 postgresql 中的存储过程将数据插入表中

声明变量set = select

如何使用 WITH RECURSIVE 子句进行 Select

判断 Postgres 中是否存在序列(plpgsql)

Select 后postgres更新