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。

    目录
    相关文章
    |
    存储 网络协议 中间件
    DDS数据分发服务
    DDS数据分发服务
    458 0
    |
    13天前
    |
    SQL 关系型数据库 数据库连接
    drds配置逻辑库和物理表
    【8月更文挑战第6天】
    32 0
    |
    25天前
    |
    关系型数据库 分布式数据库 数据库
    PolarDB产品使用问题之如何将冷存到OSS(Object Storage Service)的数据恢复
    PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
    |
    1月前
    |
    网络协议 关系型数据库 MySQL
    MySQL PXC集群配置IPv6
    前阵子为PXC集群配置IPv6支持,遇见奇怪的问题,就是SST同步时总是报错,为此在官网论坛提交了问题,未得到答案,最后偶然得到了答案
    34 0
    |
    12月前
    |
    存储 关系型数据库 MySQL
    pxc_cluster集群
    pxc_cluster集群
    96 0
    |
    存储 算法 Serverless
    GPDB中AOCO列存页的checksum
    GPDB中AOCO列存页的checksum
    66 0
    |
    12月前
    |
    容灾 数据库 数据安全/隐私保护
    一个单 Zone 的集群
    一个单 Zone 的集群
    80 1
    |
    关系型数据库 分布式数据库 数据库
    PolarDB-X 1.0-VPC 问题-如果RDS实例切换到VPC而DRDS没有切换,对DRDS会产生什么影响?
    由于DRDS依赖于RDS,所以如果将RDS实例切换了网络类型后(无论是从经典网络切换VPC还是从VPC切换经典网络),DRDS与RDS之间的网络连通性会被破坏。为此,需要到DRDS控制台对DRDS实例的分库连接进行修复操作。
    216 0
    PolarDB-X 1.0-VPC 问题-如果RDS实例切换到VPC而DRDS没有切换,对DRDS会产生什么影响?
    |
    SQL BI 数据库
    |
    SQL 存储 cobar
    阿里云DRDS--MySQL中间件总结分享
    mysql作为互联网公司都会用到的数据库,如果在使用过程中出现性能问题,会采用mysql的横向扩展,使用主从复制来提高读性能,要是解决写入问题,需要进行分库分表。本文不会去介绍mysql的高可用,本文主要介绍mysql的访问中间件(DAL)的一些实现方案。
    2233 7
    阿里云DRDS--MySQL中间件总结分享