GPDB6和GPDB7直连primary命令的不同

简介: GPDB6和GPDB7直连primary命令的不同

1、遇到的问题

最近一直在使用GPDB7的版本进行学习,经常需要客户端psql连接primary进行验证,而连接primary必须使用维护模式时的命令:


PGOPTIONS=’-c gp_role = utility’ psql -d postgres -p port

业务版本比较低,使用GPDB6的版本,查询问题时,使用上面的命令连接primary报错:


psql: FATAL: System was started in master-only utility mode - only utility mode connections are allowd

2、分析

1)查看代码报错的位置,在InitPostgres函数中:

    if((Gp_role == GP_ROLE_UTILITY) && (Gp_session_role != GP_ROLE_UTILITY))
    {
      ereport(FATAL,
          (errcode(ERRCODE_CANNOT_CONNECT_NOW),
          errmsg("System was started in master-only utility mode - only utility mode connections are allowed")))
    }

    也就是说变量Gp_role和Gp_session_role的值分别是GP_ROLE_UTILITY和非GP_ROLE_UTILITY时才会报错。在代码中添加打印两个变量,编译后执行发现Gp_session_role的值是GP_ROLE_DISPATCH2)看下这两个变量赋值的地方,Gp_session_role的值来自外部指定,不是从Gp_role处得来:


    assign_gp_session_role
      newrole = string_to_role(newval);
      Gp_session_role = newrole;
      Gp_role = Gp_session_role;
      ...

    3)看下代码的注释:

    可以看出,需要指定gp_session_roleutility。所以进入维护模式的命令为:


    PGOPTIONS=’-c gp_session_role=utility’ psql -d postgres -p port

    GPDB7中改为gp_role=utility。

    目录
    相关文章
    |
    9月前
    |
    存储 关系型数据库 MySQL
    pxc_cluster集群
    pxc_cluster集群
    83 0
    |
    10月前
    |
    存储 算法 Serverless
    GPDB中AOCO列存页的checksum
    GPDB中AOCO列存页的checksum
    53 0
    |
    11月前
    |
    存储 关系型数据库 MySQL
    MySQL部署PXC集群(很详细)
    MySQL部署PXC集群(很详细)
    490 0
    |
    12月前
    |
    关系型数据库 MySQL 网络安全
    PolarDB-X中的DN启动不了的问题
    PolarDB-X中的DN启动不了的问题
    67 0
    |
    关系型数据库 分布式数据库 数据库
    PolarDB-X 1.0-VPC 问题-如果RDS实例切换到VPC而DRDS没有切换,对DRDS会产生什么影响?
    由于DRDS依赖于RDS,所以如果将RDS实例切换了网络类型后(无论是从经典网络切换VPC还是从VPC切换经典网络),DRDS与RDS之间的网络连通性会被破坏。为此,需要到DRDS控制台对DRDS实例的分库连接进行修复操作。
    202 0
    PolarDB-X 1.0-VPC 问题-如果RDS实例切换到VPC而DRDS没有切换,对DRDS会产生什么影响?
    |
    SQL BI 数据库
    |
    SQL 存储 关系型数据库
    Citus 多CN部署与Citus MX
    Citus MX是Citus集群中横向扩展CN能力的技术,本文件聊一下Citus MX使用的话题
    2274 0
    |
    SQL 弹性计算 缓存
    DRDS和RDS只读实例性能对比测试
    我们都知道,对于数据库中基础信息表来说,它的数据变化频率低,数据量小,但由于基础数据本身的特点,大多数相关系统都会对频繁地读取它。即便我们通过对数据调取服务进行服务化包装,通过HSF服务的方式对外暴露,以减少多个系统直接操作数据库带来的问题,但数据本身的读取频率和并发度都非常高,QPS可以轻易达到10万以上。
    DRDS和RDS只读实例性能对比测试
    |
    弹性计算 安全 关系型数据库
    阿里云RDS PG 10 HA版 - 使用postgres_fdw外部表插件 - 实例内跨库访问其他库的表
    标签 PostgreSQL , postgres_fdw , 阿里云 , 内核安全限制 背景 阿里云rds pg内核安全上做了限制,只能访问当前实例的其他库,所以使用dblink, postgres_fdw时,虽然PG功能上是可以访问其他远程实例的,但是阿里云RDS PG限制了只能访问当前实例。 另一方面,当前实例是HA版本,并且是云化版本,所以IP,PORT都可能在发生迁移、切换后发
    603 0
    |
    SQL 弹性计算 Oracle
    阿里云rds PG, PPAS PostgreSQL 同实例,跨库数据传输、访问(postgres_fdw 外部表)
    标签 PostgreSQL , 阿里云rds , pg , ppas , 跨库查询 , 外部表 , postgres_fdw 背景 如果你使用pg或ppas作为实时数仓,并且有跨库数据传输(ods, dw, dm 分层结构)的需求,可以使用postgres_fdw外部表实现,不需要使用ETL工具对数据进行抽取和导入这种无用功操作。 postgres_fdw是PG的一个外部表插件,可读,
    1202 0

    热门文章

    最新文章