初始化数据库

Greenplum数据库初始化步骤包括主机名修改、环境配置、SSH密钥交换以及使用gpinitsystem工具进行初始化等关键步骤。

主机名为默认主机名localhost时,执行5会报错,本例中我们将主机名修改为master。具体主机名称以实际规划为准。

  1. 可选:如果是通过镜像站RPM包安装Greenplum,需要做如下步骤,防止初始化数据库报错。

    1. 配置本地Yum源。请参见《Greenplum 移植指南》的配置Yum源
    2. 安装依赖包。
      1
      yum -y install net-tools
      
    1. 加载动态库。
      1
      2
      echo /usr/local/lib >/etc/ld.so.conf
      ldconfig
      

  2. 修改主机名为master。

    1
    2
    hostname master
    echo master > /etc/hostname
    

    退出SSH终端。

    logout

    重新登录SSH终端后,使修改主机名生效。

  3. 将主机名的map添加到本地计算机的“/etc/hosts”。具体IP地址和主机名以实际情况为准,本例中,IP地址为192.168.202.206,主机名为master。

    1
    echo 192.168.202.206 master >>/etc/hosts
    

  4. 切换至gpadmin用户。

    1
    su - gpadmin
    

  5. 配置集群节点间互信。

    交换集群中所有机器的SSH密钥,本例是单机,只有一台。其中master为主机名,以实际情况为准。

    1
    gpssh-exkeys -h 'master'
    

  6. 退出gpadmin用户,返回到root用户。

    1
    exit
    

  7. 创建集群主机配置文件。

    创建集群主机配置文件hostfile,包括集群所有主机名,本例是单机,只有一台。其中master为主机名,以实际情况为准。

    echo master >> /data/gpdb/hostfile

  8. 切换至gpadmin用户。

    1
    su - gpadmin
    

  9. 创建初始化配置文件“init.config”

    1. 打开文件。
      1
      vim /home/gpadmin/init.config
      
    2. “i”进入编辑模式,添加如下内容。
      ARRAY_NAME="Greenplum Cluster"
      SEG_PREFIX=gpseg #segment数据库前缀名
      PORT_BASE=40000 #segment数据库起始端口号
      declare -a DATA_DIRECTORY=(/data/gpdb/segdata /data/gpdb/segdata)
      #segments数据目录,有几个DATA_DIRECTORY, 每个节点上便会启动几个segment,本例为2个segment
      MASTER_HOSTNAME=master #master主机名
      MASTER_DIRECTORY=/data/gpdb/master #master数据目录
      MASTER_PORT=5432 #master端口号,也是对外业务端口号
      TRUSTED_SHELL=ssh
      CHECK_POINT_SEGMENTS=8
      ENCODING=UNICODE
      DATABASE_NAME=gpdb
      MACHINE_LIST_FILE=/data/gpdb/hostfile #集群配置文件,hostfile对应7中创建的文件名
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  10. 执行初始化命令。

    1
    gpinitsystem -c /home/gpadmin/init.config -a
    

    init.config为9创建的文件名的名称。