如何更改 GreenPlum 集群中的 preferred_role?

问题描述

我在一台主机上有一个有 18 个网段的 greenplum 集群。 现在我需要调试一个新的服务器,所以我的最终目的是每个主机上有 9 个主和 9 个镜像段。

  1. 我使用 gpaddmirrors 实用程序添加镜像,然后我有以下段配置:
# select * from gp_segment_configuration order by content,hostname;
┌──────┬─────────┬──────┬────────────────┬──────┬────────┬──────┬──────────┬─────────┬──────────────────────────────────┐
│ dbid │ content │ role │ preferred_role │ mode │ status │ port │ hostname │ address │             datadir              │
├──────┼─────────┼──────┼────────────────┼──────┼────────┼──────┼──────────┼─────────┼──────────────────────────────────┤
│    1 │      -1 │ p    │ p              │ n    │ u      │ 7800 │ host1    │ host1   │ /gpdata/mycluster/master/gpseg-1 │
│    2 │       0 │ p    │ p              │ s    │ u      │ 7801 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg0    │
│   20 │       0 │ m    │ m              │ s    │ u      │ 7801 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg0    │
│    3 │       1 │ p    │ p              │ s    │ u      │ 7802 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg1    │
│   21 │       1 │ m    │ m              │ s    │ u      │ 7802 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg1    │
│    4 │       2 │ p    │ p              │ s    │ u      │ 7803 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg2    │
│   22 │       2 │ m    │ m              │ s    │ u      │ 7803 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg2    │
│    5 │       3 │ p    │ p              │ s    │ u      │ 7804 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg3    │
│   23 │       3 │ m    │ m              │ s    │ u      │ 7804 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg3    │
│    6 │       4 │ p    │ p              │ s    │ u      │ 7805 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg4    │
│   24 │       4 │ m    │ m              │ s    │ u      │ 7805 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg4    │
│    7 │       5 │ p    │ p              │ s    │ u      │ 7806 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg5    │
│   25 │       5 │ m    │ m              │ s    │ u      │ 7806 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg5    │
│    8 │       6 │ p    │ p              │ s    │ u      │ 7807 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg6    │
│   26 │       6 │ m    │ m              │ s    │ u      │ 7807 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg6    │
│    9 │       7 │ p    │ p              │ s    │ u      │ 7808 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg7    │
│   27 │       7 │ m    │ m              │ s    │ u      │ 7808 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg7    │
│   10 │       8 │ p    │ p              │ s    │ u      │ 7809 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg8    │
│   28 │       8 │ m    │ m              │ s    │ u      │ 7809 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg8    │
│   11 │       9 │ p    │ p              │ s    │ u      │ 7810 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg9    │
│   29 │       9 │ m    │ m              │ s    │ u      │ 7810 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg9    │
│   12 │      10 │ p    │ p              │ s    │ u      │ 7811 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg10   │
│   30 │      10 │ m    │ m              │ s    │ u      │ 7811 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg10   │
│   13 │      11 │ p    │ p              │ s    │ u      │ 7812 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg11   │
│   31 │      11 │ m    │ m              │ s    │ u      │ 7812 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg11   │
│   14 │      12 │ p    │ p              │ s    │ u      │ 7813 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg12   │
│   32 │      12 │ m    │ m              │ s    │ u      │ 7813 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg12   │
│   15 │      13 │ p    │ p              │ s    │ u      │ 7814 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg13   │
│   33 │      13 │ m    │ m              │ s    │ u      │ 7814 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg13   │
│   16 │      14 │ p    │ p              │ s    │ u      │ 7815 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg14   │
│   34 │      14 │ m    │ m              │ s    │ u      │ 7815 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg14   │
│   17 │      15 │ p    │ p              │ s    │ u      │ 7816 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg15   │
│   35 │      15 │ m    │ m              │ s    │ u      │ 7816 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg15   │
│   18 │      16 │ p    │ p              │ s    │ u      │ 7817 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg16   │
│   36 │      16 │ m    │ m              │ s    │ u      │ 7817 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg16   │
│   19 │      17 │ p    │ p              │ s    │ u      │ 7818 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg17   │
│   37 │      17 │ m    │ m              │ s    │ u      │ 7818 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg17   │
└──────┴─────────┴──────┴────────────────┴──────┴────────┴──────┴──────────┴─────────┴──────────────────────────────────┘
  1. 我停止(pg_ctl stop -D directory)host1 上的奇数段,greenplum 改变主段和镜像段的角色:
┌──────┬─────────┬──────┬────────────────┬──────┬────────┬──────┬──────────┬─────────┬──────────────────────────────────┐
│ dbid │ content │ role │ preferred_role │ mode │ status │ port │ hostname │ address │             datadir              │
├──────┼─────────┼──────┼────────────────┼──────┼────────┼──────┼──────────┼─────────┼──────────────────────────────────┤
│    1 │      -1 │ p    │ p              │ n    │ u      │ 7800 │ host1    │ host1   │ /gpdata/mycluster/master/gpseg-1 │
│    2 │       0 │ p    │ p              │ s    │ u      │ 7801 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg0    │
│   20 │       0 │ m    │ m              │ s    │ u      │ 7801 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg0    │
│    3 │       1 │ m    │ p              │ s    │ d      │ 7802 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg1    │
│   21 │       1 │ p    │ m              │ s    │ u      │ 7802 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg1    │
│    4 │       2 │ p    │ p              │ s    │ u      │ 7803 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg2    │
│   22 │       2 │ m    │ m              │ s    │ u      │ 7803 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg2    │
│    5 │       3 │ m    │ p              │ s    │ d      │ 7804 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg3    │
│   23 │       3 │ p    │ m              │ s    │ u      │ 7804 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg3    │
│    6 │       4 │ p    │ p              │ s    │ u      │ 7805 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg4    │
│   24 │       4 │ m    │ m              │ s    │ u      │ 7805 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg4    │
│    7 │       5 │ m    │ p              │ s    │ d      │ 7806 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg5    │
│   25 │       5 │ p    │ m              │ s    │ u      │ 7806 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg5    │
│    8 │       6 │ p    │ p              │ s    │ u      │ 7807 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg6    │
│   26 │       6 │ m    │ m              │ s    │ u      │ 7807 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg6    │
│    9 │       7 │ m    │ p              │ s    │ d      │ 7808 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg7    │
│   27 │       7 │ p    │ m              │ s    │ u      │ 7808 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg7    │
│   10 │       8 │ p    │ p              │ s    │ u      │ 7809 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg8    │
│   28 │       8 │ m    │ m              │ s    │ u      │ 7809 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg8    │
│   11 │       9 │ m    │ p              │ s    │ d      │ 7810 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg9    │
│   29 │       9 │ p    │ m              │ s    │ u      │ 7810 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg9    │
│   12 │      10 │ p    │ p              │ s    │ u      │ 7811 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg10   │
│   30 │      10 │ m    │ m              │ s    │ u      │ 7811 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg10   │
│   13 │      11 │ m    │ p              │ s    │ d      │ 7812 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg11   │
│   31 │      11 │ p    │ m              │ s    │ u      │ 7812 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg11   │
│   14 │      12 │ p    │ p              │ s    │ u      │ 7813 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg12   │
│   32 │      12 │ m    │ m              │ s    │ u      │ 7813 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg12   │
│   15 │      13 │ m    │ p              │ s    │ d      │ 7814 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg13   │
│   33 │      13 │ p    │ m              │ s    │ u      │ 7814 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg13   │
│   16 │      14 │ p    │ p              │ s    │ u      │ 7815 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg14   │
│   34 │      14 │ m    │ m              │ s    │ u      │ 7815 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg14   │
│   17 │      15 │ m    │ p              │ s    │ d      │ 7816 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg15   │
│   35 │      15 │ p    │ m              │ s    │ u      │ 7816 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg15   │
│   18 │      16 │ p    │ p              │ s    │ u      │ 7817 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg16   │
│   36 │      16 │ m    │ m              │ s    │ u      │ 7817 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg16   │
│   19 │      17 │ m    │ p              │ s    │ d      │ 7818 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg17   │
│   37 │      17 │ p    │ m              │ s    │ u      │ 7818 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg17   │
└──────┴─────────┴──────┴────────────────┴──────┴────────┴──────┴──────────┴─────────┴──────────────────────────────────┘
  1. 我执行 gprecoverseg 并且处于 down 状态的段将它们的状态更改为 up:
┌──────┬─────────┬──────┬────────────────┬──────┬────────┬──────┬──────────┬─────────┬──────────────────────────────────┐
│ dbid │ content │ role │ preferred_role │ mode │ status │ port │ hostname │ address │             datadir              │
├──────┼─────────┼──────┼────────────────┼──────┼────────┼──────┼──────────┼─────────┼──────────────────────────────────┤
│    1 │      -1 │ p    │ p              │ n    │ u      │ 7800 │ host1    │ host1   │ /gpdata/mycluster/master/gpseg-1 │
│    2 │       0 │ p    │ p              │ s    │ u      │ 7801 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg0    │
│   20 │       0 │ m    │ m              │ s    │ u      │ 7801 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg0    │
│    3 │       1 │ m    │ p              │ s    │ u      │ 7802 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg1    │
│   21 │       1 │ p    │ m              │ s    │ u      │ 7802 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg1    │
│    4 │       2 │ p    │ p              │ s    │ u      │ 7803 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg2    │
│   22 │       2 │ m    │ m              │ s    │ u      │ 7803 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg2    │
│    5 │       3 │ m    │ p              │ s    │ u      │ 7804 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg3    │
│   23 │       3 │ p    │ m              │ s    │ u      │ 7804 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg3    │
│    6 │       4 │ p    │ p              │ s    │ u      │ 7805 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg4    │
│   24 │       4 │ m    │ m              │ s    │ u      │ 7805 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg4    │
│    7 │       5 │ m    │ p              │ s    │ u      │ 7806 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg5    │
│   25 │       5 │ p    │ m              │ s    │ u      │ 7806 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg5    │
│    8 │       6 │ p    │ p              │ s    │ u      │ 7807 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg6    │
│   26 │       6 │ m    │ m              │ s    │ u      │ 7807 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg6    │
│    9 │       7 │ m    │ p              │ s    │ u      │ 7808 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg7    │
│   27 │       7 │ p    │ m              │ s    │ u      │ 7808 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg7    │
│   10 │       8 │ p    │ p              │ s    │ u      │ 7809 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg8    │
│   28 │       8 │ m    │ m              │ s    │ u      │ 7809 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg8    │
│   11 │       9 │ m    │ p              │ s    │ u      │ 7810 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg9    │
│   29 │       9 │ p    │ m              │ s    │ u      │ 7810 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg9    │
│   12 │      10 │ p    │ p              │ s    │ u      │ 7811 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg10   │
│   30 │      10 │ m    │ m              │ s    │ u      │ 7811 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg10   │
│   13 │      11 │ m    │ p              │ s    │ u      │ 7812 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg11   │
│   31 │      11 │ p    │ m              │ s    │ u      │ 7812 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg11   │
│   14 │      12 │ p    │ p              │ s    │ u      │ 7813 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg12   │
│   32 │      12 │ m    │ m              │ s    │ u      │ 7813 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg12   │
│   15 │      13 │ m    │ p              │ s    │ u      │ 7814 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg13   │
│   33 │      13 │ p    │ m              │ s    │ u      │ 7814 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg13   │
│   16 │      14 │ p    │ p              │ s    │ u      │ 7815 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg14   │
│   34 │      14 │ m    │ m              │ s    │ u      │ 7815 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg14   │
│   17 │      15 │ m    │ p              │ s    │ u      │ 7816 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg15   │
│   35 │      15 │ p    │ m              │ s    │ u      │ 7816 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg15   │
│   18 │      16 │ p    │ p              │ s    │ u      │ 7817 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg16   │
│   36 │      16 │ m    │ m              │ s    │ u      │ 7817 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg16   │
│   19 │      17 │ m    │ p              │ s    │ u      │ 7818 │ host1    │ host1   │ /gpdata/mycluster/data/gpseg17   │
│   37 │      17 │ p    │ m              │ s    │ u      │ 7818 │ host2    │ host2   │ /gpdata/mycluster/data/gpseg17   │
└──────┴─────────┴──────┴────────────────┴──────┴────────┴──────┴──────────┴─────────┴──────────────────────────────────┘

太好了!

在第 3 步之后,我得到了我想要的配置,除了 preferred_role 并且我不知道如何更改它。

我尝试过重新平衡 (gprecoverseg -r),但这改变了角色,而不是 preferred_role。

绿梅 6.13.0。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)