Greenplum 添加或删除standby master节点

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS AI 助手,专业版
简介:
Greenplum支持master节点的standby,如果你在初始化集群时没有创建standby节点,或者原来的standby节点坏了或者其他原因,要重搭standby。
本文将告诉你怎么做。
1. 如果要新建standby,但是原来已有standby,首先要删除它。
gpinitstandby -r 
如果原来的standby只是某种原因挂了,不需要删除,只需要重启,则使用以下命令来重启standby 
gpinitstandby -n

2. 如果搭建standby的机器不在原来的GP集群中,则需要将机器添加进来。
详细添加方法参考   http://yq.aliyun.com/articles/177  (本文不再重复,大致的内容如下)
   环境配置,例如OS kernel 参数;
   创建gp管理用户;
   ssh key的交换(使用gpssh-exkeys -e exist_hosts -x new_hosts);
   greenplum bin软件的拷贝;
   使用gpcheck检查 (gpcheck -f new_hosts );
   使用gpcheckperf检查性能 (gpcheckperf -f new_hosts_file -d /data1 -d /data2 -v)

3. 如果在GP已有集群中的机器中选择一台来搭建standby,则可以跳过第二步。
了解master节点用了哪些filespace.
postgres=# select a.dbid,a.content,a.role,a.port,a.hostname,b.fsname,c.fselocation from gp_segment_configuration a,pg_filespace b,pg_filespace_entry c where a.dbid=c.fsedbid and b.oid=c.fsefsoid order by content;
 dbid | content | role | port  |     hostname      |  fsname   |              fselocation              
------+---------+------+-------+-------------------+-----------+---------------------------------------
    1 |      -1 | p    |  1921 | digoal_host.sqa.zmf | pg_system | /disk1/digoal/gpdata/gpseg-1
    1 |      -1 | p    |  1921 | digoal_host.sqa.zmf | ssd1      | /disk1/digoal/new_p/gp-1
。。。。。。
了解master的即可,可以看到除了pg_system,还有一个filespace叫ssd1。

4. 进入初始化standby的步骤。
根据第三步查到的信息,规划standby master filespace数据目录;
$ mkdir /disk1/digoal/gpdata
$ mkdir /disk1/digoal/new_p

如果在不同的主机创建standby master,则建议使用同样的端口和目录结构。
如下:
$gpinitstandby -F pg_system:/data01/gpdata/master_pgdata/gpseg-1 -s digoal_host199092.zmf 
20151221:14:17:24:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Validating environment and parameters for standby initialization...
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Checking for filespace directory /data01/gpdata/master_pgdata/gpseg-1 on digoal_host199092.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master initialization parameters
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master hostname               = digoal_host193096.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master data directory         = /data01/gpdata/master_pgdata/gpseg-1
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master port                   = 1921
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master hostname       = digoal_host199092.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master port           = 1921
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master data directory = /data01/gpdata/master_pgdata/gpseg-1
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum update system catalog         = On
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:- Filespace locations
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-pg_system -> /data01/gpdata/master_pgdata/gpseg-1
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Syncing Greenplum Database extensions to standby
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-The packages on digoal_host199092.zmf are consistent.
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Adding standby master to catalog...
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Database catalog updated successfully.
20151221:14:26:47:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Updating pg_hba.conf file...
20151221:14:26:52:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-pg_hba.conf files updated successfully.
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Updating filespace flat files...
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Filespace flat file updated successfully.
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Starting standby master
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Checking if standby master is running on host: digoal_host199092.zmf  in directory: /data01/gpdata/master_pgdata/gpseg-1
20151221:14:27:00:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Cleaning up pg_hba.conf backup files...
20151221:14:27:06:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20151221:14:27:06:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Successfully created standby master on digoal_host199092.zmf

digoal=# select * from gp_segment_configuration where content='-1';
 dbid | content | role | preferred_role | mode | status | port |     hostname      |      address      | replication_port | san_mounts 
------+---------+------+----------------+------+--------+------+-------------------+-------------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      | 1921 | digoal_host193096.zmf | digoal_host193096.zmf |                  | 
   26 |      -1 | m    | m              | s    | u      | 1921 | digoal_host199092.zmf | digoal_host199092.zmf |                  | 
(2 rows)

如果在同一台主机创建standby master,则需要使用不同的端口和目录结构。
如下:
指定不同的filespace路径,不同的监听端口。
$gpinitstandby -F pg_system:/disk1/digoal/gpdata/gpseg-2,ssd1:/disk1/digoal/new_p/gp-2 -P 1922 -s digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Validating environment and parameters for standby initialization...
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking for filespace directory /disk1/digoal/gpdata/gpseg-2 on digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking for filespace directory /disk1/digoal/new_p/gp-2 on digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master initialization parameters
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master hostname               = digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master data directory         = /disk1/digoal/gpdata/gpseg-1
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master port                   = 1921
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master hostname       = digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master port           = 1922
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master data directory = /disk1/digoal/gpdata/gpseg-2
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum update system catalog         = On
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:- Filespace locations
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-pg_system -> /disk1/digoal/gpdata/gpseg-2
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-ssd1 -> /disk1/digoal/new_p/gp-2
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Syncing Greenplum Database extensions to standby
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-The packages on digoal_host.sqa.zmf are consistent.
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Adding standby master to catalog...
20151221:14:34:04:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Database catalog updated successfully.
20151221:14:34:05:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Updating pg_hba.conf file...
20151221:14:34:13:077652 gpinitstandby:digoal_host:digoal-[INFO]:-pg_hba.conf files updated successfully.
20151221:14:34:31:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Updating filespace flat files...
20151221:14:34:31:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Writing standby information to /disk1/digoal/gpdata/gpseg-1/gp_transaction_files_filespace flat file
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Writing standby information to /disk1/digoal/gpdata/gpseg-1/gp_temporary_files_filespace flat file
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Filespace flat file updated successfully.
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Starting standby master
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking if standby master is running on host: digoal_host.sqa.zmf  in directory: /disk1/digoal/gpdata/gpseg-2
20151221:14:36:16:077652 gpinitstandby:digoal_host:digoal-[WARNING]:-Could not start standby master
20151221:14:36:16:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Cleaning up pg_hba.conf backup files...
20151221:14:36:21:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20151221:14:36:21:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Successfully created standby master on digoal_host.sqa.zmf

启动standby
$gpinitstandby -n
20151221:14:39:40:085625 gpinitstandby:digoal_host:digoal-[INFO]:-Starting standby master
20151221:14:39:40:085625 gpinitstandby:digoal_host:digoal-[INFO]:-Checking if standby master is running on host: digoal_host.sqa.zmf  in directory: /disk1/digoal/gpdata/gpseg-2

查看standby延迟,查看pg_stat_replication 视图即可。
digoal=# select pg_switch_xlog();
 pg_switch_xlog 
----------------
 0/C0000D8
(1 row)
digoal=# select * from pg_stat_replication ;
 procpid | usesysid | usename  | application_name |  client_addr  | client_port |         backend_start         |   state   | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state 
---------+----------+----------+------------------+---------------+-------------+-------------------------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------
   13444 |       10 | dege.zzz | walreceiver      | 100.69.199.92 |       47792 | 2015-12-21 14:27:00.164785+08 | streaming | 0/D080000     | 0/CC00000      | 0/C880000      | 0/C0000B8       |             1 | sync
(1 row)
...
digoal=# select * from pg_stat_replication ;
 procpid | usesysid | usename  | application_name |  client_addr  | client_port |         backend_start         |   state   | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state 
---------+----------+----------+------------------+---------------+-------------+-------------------------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------
   13444 |       10 | dege.zzz | walreceiver      | 100.69.199.92 |       47792 | 2015-12-21 14:27:00.164785+08 | streaming | 0/10000000    | 0/10000000     | 0/10000000     | 0/10000000      |             1 | sync
(1 row)
参考
gpinitstandby -?
目录
相关文章
|
JSON Kubernetes 算法
Cobra 命令自动补全指北
本篇文章就来讲讲如何使用 Cobra 来实现命令自动补全。
4248 0
|
存储 缓存 数据挖掘
StarRocks 原理详解:探索高效 OLAP 的奥秘
StarRocks 是一款高性能分析型数据仓库,采用向量化、MPP架构、CBO等技术,实现多维、实时、高并发的数据分析。它支持从各类数据源高效导入数据,兼容MySQL协议,并具备水平扩展、高可用等特性,广泛应用于实时数仓、OLAP报表等场景。StarRocks 解决了传统数仓在查询性能、数据导入、扩展性和灵活性等方面的挑战,助力企业实现数据驱动的决策。其分布式架构和智能物化视图等功能显著提升了查询效率,适用于大数据生态中的各种复杂需求。
2551 15
|
机器学习/深度学习 分布式计算 大数据
什么是 Databricks?它的主要功能是什么?
【8月更文挑战第12天】
10463 7
|
10月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
632 36
|
Java 调度
ThreadPoolExecutor解析
本文深入解析了Java中`ThreadPoolExecutor`的实现原理,帮助理解线程池的工作机制。核心内容包括任务队列`workQueue`、线程工厂`ThreadFactory`、拒绝策略`RejectedExecutionHandler`等关键成员的作用。通过`submit`和`execute`方法的执行流程,展示了线程池如何根据`corePoolSize`和`maximumPoolSize`动态调整线程数量,并结合`keepAliveTime`管理空闲线程。最后分析了`Worker`类的`run`方法,揭示线程池通过循环从队列中获取任务并执行的核心逻辑。
351 0
|
SQL 数据库
MyBatisPlus 之 条件查询 <条件构造器>
MyBatisPlus 之 条件查询 <条件构造器>
460 0
ElasticSearch聚合查询Restful语法和JavaApi详解(基于ES7.6)
在前面关于ES的一系列文章中,已经介绍了ES的概念、常用操作、JavaAPI以及实际的一个小demo,但是在真实的应用场景中,还有可能会有更高阶的一些用法,今天主要介绍两种相对来说会更难一些的操作,聚合查询。该文档基于ElasticSearch7.6,将介绍restful查询语法以及JavaApi。 阅读本文需要你有ElasticSearch的基础。
1122 0
|
存储 JavaScript Java
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
312 0
|
监控 Java API
Spring Boot与异步任务:整合与应用场景
【4月更文挑战第29天】异步任务在现代应用程序开发中扮演着重要的角色,它们可以提高应用程序的性能和响应速度,尤其适用于处理长时间运行的任务或需要等待外部资源的场景。Spring Boot提供了强大的支持来简化异步任务的实现。
392 0
|
安全 Linux 网络安全
Greenplum【部署 01】CentOS Linux release 7.5 环境单机版详细安装配置步骤+问题解决(含安装包资源)
Greenplum【部署 01】CentOS Linux release 7.5 环境单机版详细安装配置步骤+问题解决(含安装包资源)
471 2