GPDB集群迁移(Greenplum)

经过多次测试,GPDB集群迁移只需要把GPDB数据和安装目录直接rsync过去即可。这样才能保证权限和用户完整的迁移过去。

如果通过 导入导出的方式来迁移,复杂而且 需要做的操作很多。

segment迁移也差不多的套路:迁移目录,修改hosts,免密,启动。

这个方法只适合,整个集群的迁移,或者某个节点的迁移。大同小异。

需求描述:

旧机器(旧集群) 新机器(新集群)
master 192.168.2.221 192.168.2.222
segment 192.168.4.200 192.168.4.200
segment 192.168.4.201 192.168.4.201

我master机器磁盘损坏了,需要把master节点迁到新的机器,其他两个segment不变。

我们总共分几步来进行,步骤如下:

如下步骤是按照我当时安装旧集群的方式来准备的。每个人的环境不一样。

1、新机器

说明:实际上面新机器只要把环境弄好,只需要 创建gpdb管理用户即可,我们用的是gpadmin。但是建议在新机器上面安装一下gpdb,确保依赖包正常。最后迁移的时候把原来的安装目录移除,使用旧的即可。

安装相关的依赖包

[root@mdw ~]# yum -y install rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools openldap openldap-devel logrotate gcc-c++ python-py bzip2-devel libevent-devel apr-devel curl-devel ed python-paramiko python-devel


只需要创建gpadmin:

[root@mdw ~]# groupadd -g 530 gpadmin

[root@mdw ~]# useradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadmin

[root@mdw ~]# passwd gpadmin   #记录下密码,master和segment密码一致。如果忘记segment密码修改成和这个密码一样。不会影响旧的集群联系


绑定 hosts:

[root@mdw conf]# vi /etc/hosts

192.168.2.222 mdw

192.168.4.200 sdw1

192.168.4.201 sdw2

修改主机名:

[gpadmin@mdw ~]$ vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=mdw


修改内核配置:

[root@mdw conf]# cat /etc/sysctl.conf

kernel.shmall = 4294967296

kernel.shmmax = 500000000

kernel.shmmni = 4096

kernel.shmall = 4000000000

kernel.sem = 500 1024000 200 4096

kernel.sysrq = 1

kernel.core_uses_pid = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.msgmni = 2048

net.ipv4.tcp_syncookies = 1

net.ipv4.ip_forward = 0

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_max_syn_backlog = 4096

net.ipv4.conf.all.arp_filter = 1

net.ipv4.ip_local_port_range = 1025 65535

net.core.netdev_max_backlog = 10000

net.core.rmem_max = 2097152

net.core.wmem_max = 2097152

vm.overcommit_memory = 1

net.ipv4.tcp_synack_retries = 3

net.ipv4.tcp_syn_retries = 3

[root@mdw conf]# sysctl -p

修改文件打开限制,添加以下内容

[root@mdw conf]# vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 131072

* hard nproc 131072

关闭 SELINUX 安全设置

[root@mdw conf]# vi /etc/selinux/config

SELINUX=disabled

2、旧机器

1)如果有监控程序,先停止监控程序 gpcc stop,再停止gpdb,否则无法停止gpcc。
2)直接同步gpdb数据和安装 文件到新机器

[root@mdw conf]# rsync -avz --delete /home/gpadmin/gpdb 192.168.2.222:/home/gpadmin/

[root@mdw conf]# rsync -avz --delete /data/gpdata 192.168.2.222:/data

[root@mdw conf]# rsync -avz --delete /home/gpadmin/greenplum-db 192.168.2.222:/home/gpadmin/

[root@mdw conf]# rsync -avz --delete /home/gpadmin/.bashrc 192.168.2.222:/home/gpadmin/

# 迁移 监控工具

[root@mdw conf]# rsync -avz --delete /home/gpadmin/greenplum-cc-web 192.168.2.222:/home/gpadmin/

# 监控工具密码文件,如果不迁这个密码文件启动监控工具会报错

[root@mdw conf]# rsync -avz --delete /home/gpadmin/.pgpass* 192.168.2.222:/home/gpadmin/

3、两个segment 

1)备份 /home/gpadmin/.ssh/authorized_keys

因为新机器做免密之后会将旧机器的key覆盖掉,所以这个步骤用于迁移失败可以直接将旧的key粘贴到后面,这样不需要重新做免密。

cp /home/gpadmin/.ssh/authorized_keys /home/gpadmin/.ssh/authorized_keys_20210927

2)修改/etc/hosts
把192.168.2.221 mdw(旧IP) 改成192.168.2.222 mdw(新IP)

4、新机器 

1)免密

[gpadmin@mdw config]$ cd /home/gpadmin/gpdb/config

[gpadmin@mdw config]$ gpssh-exkeys -f hostlist #提示输入上面创建的密码

确定免密成功:

[gpadmin@mdw config]$ gpssh -f hostlist -e 'pwd'

2)修改/data/gpdata/master/gpseg-1/pg_hba.conf
将192.168.2.221 (旧IP)改成 192.168.2.222(新IP)
3)启动gpdb

[gpadmin@mdw config]$ gpstart -a

启动监控程序 gpcc start

猜你喜欢

转载自blog.csdn.net/MYF12/article/details/120532313