greenplum的扩容(4)-删除数据节点

本文介绍如何在 Greenplum 中删除和重新分配数据节点,并解决在增删节点过程中遇到的路径错误问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

greenplum中的数据节点也是可以删除减少的。

现删除增加的1组主备节点。

[gpadmin@mdw~]$ gp_dump --gp-d=/home/gpadmin/backup testDB  --先备份,再进行串行恢复。

Individual Results

        segment 2 (dbid 6) Host sdw3 Port 40000Database testDB BackupFile /home/gpadmin/backup/gp_dump_0_6_20150506000259:Succeeded

        segment 1 (dbid 3) Host sdw2 Port 40000Database testDB BackupFile /home/gpadmin/backup/gp_dump_0_3_20150506000259:Succeeded

        segment 0 (dbid 2) Host sdw1 Port 40000Database testDB BackupFile /home/gpadmin/backup/gp_dump_0_2_20150506000259:Succeeded

        Master (dbid 1) Host mdw Port 5432Database testDB BackupFile /home/gpadmin/backup/gp_dump_1_1_20150506000259:Succeeded

        Master (dbid 1) Host mdw Port 5432Database testDB BackupFile/home/gpadmin/backup/gp_dump_1_1_20150506000259_post_data: Succeeded

 

[gpadmin@mdw~]$ gpstart -m          --master 模式

[gpadmin@mdw~]$ PGOPTIONS="-c gp_session_role=utility" psql   --进入utility

default_login_database_name=#set allow_system_table_mods='dml'; --获得修改权限

default_login_database_name=# select * from gp_segment_configuration ;

dbid |content | role | preferred_role | mode | status | port  | hostname | address | replication_port |san_mounts

------+---------+------+----------------+------+--------+-------+----------+---------+------------------+------------

    1 |     -1 | p    | p              | s    | u     |  5432 | mdw      | mdw    |                  |

    6 |      2 | p    | p              | c    | u     | 40000 | sdw3     | sdw3    |           41000 |

    7 |      2 | m    | m              | s    | d     | 50000 | sdw2     | sdw2    |           51000 |

    2 |      0 | p    | p              | s    | u     | 40000 | sdw1     | sdw1    |           41000 |

    4 |      0 | m    | m              | s    | u     | 50000 | sdw3     | sdw3    |           51000 |

    3 |      1 | p    | p              | s    | u     | 40000 | sdw2     | sdw2    |           41000 |

    5 |      1 | m    | m              | s    | u     | 50000 | sdw1     | sdw1    |           51000 |

(7 rows)

 

删掉新加的segment.

default_login_database_name=#delete from gp_segment_configuration where contentin(2);

DELETE2

default_login_database_name=#select * from gp_segment_configuration order by dbid;

 dbid | content | role | preferred_role | mode| status | port  | hostname | address |replication_port | san_mounts

------+---------+------+----------------+------+--------+-------+----------+---------+------------------+------------

    1 |     -1 | p    | p              | s    | u     |  5432 | mdw      | mdw    |                  |

    2 |      0 | p    | p              | s    | u     | 40000 | sdw1     | sdw1    |           41000 |

    3 |      1 | p    | p              | s    | u     | 40000 | sdw2     | sdw2    |           41000 |

    4 |      0 | m    | m              | s    | u     | 50000 | sdw3     | sdw3    |           51000 |

    5 |      1 | m    | m              | s    | u     | 50000 | sdw1     | sdw1    |           51000 |

(5rows)

default_login_database_name=# \q

[gpadmin@mdw~]$ gpstop -m

[gpadmin@mdw~]$ gpstart -a

启动成功,但是下面的下面还有关于再增加节点时路径出错的问题,且应在删除节点这一步,一同操作。

                                        


恢复删除节点上的数据,只需将删除掉的节点上的数据重分布即可,gp_dump_0_6_20150506000259是保存在sdw3上的,先将其传到那mdw上,再执行以下命令。

 

[gpadmin@mdw~]$ psql testDB -f gp_dump_0_6_20150506000259

 

另删除原有目录下的文件。

 

如果再增加节点的话会会提示错误:

20150505:23:21:06:012345gpexpand:mdw:gpadmin-[ERROR]:-gpexpand failed: error 'ERROR:  duplicate key violates unique constraint"pg_filespace_entry_fsdb_index"

'in 'SELECT gp_add_segment('sdw3', 'sdw3', 40000,'{{"pg_system","/data1/primary/gpseg2"}}')'

default_login_database_name=# select * frompg_filespace_entry;

 fsefsoid | fsedbid |            fselocation            

----------+---------+------------------------------------

     3052 |       1 | /data/master/gpseg-1

     3052 |       2 | /data1/primary/gpseg0

     3052 |       3 | /data1/primary/gpseg1

     3052 |       6 | /data1/primarygpseg2

     3052 |       5 | /data1/mirror/gpseg1

     3052 |       7 | /data1/mirror/gpseg2

     3052 |       4 | /data1/mirror/gpseg0

(7rows)

--可见,原有的路径还在,删掉它们。

default_login_database_name=#delete from pg_filespace_entry where fsedbid in(6,7);

DELETE2

default_login_database_name=# select * from pg_filespace_entry;

 fsefsoid | fsedbid |      fselocation     

----------+---------+-----------------------

    3052 |       1 |/data/master/gpseg-1

    3052 |       2 |/data1/primary/gpseg0

    3052 |       3 |/data1/primary/gpseg1

    3052 |       5 |/data1/mirror/gpseg1

    3052 |       4 |/data1/mirror/gpseg0

(5 rows)

现在再进行增加节点就OK了。 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值