• centos 7.4 + greenplum 5.7 + make


    os: centos 7.4
    gp: gpdb-5.7.0

    greenplum 简称gp,是由postgresql演变而来,感兴趣的哥们可以baidu一下

    三台机器
    node1 为master host
    node2、node3为segment host

    os设置

    # cat /etc/centos-release
    CentOS Linux release 7.4.1708 (Core)
    # uname -a
    Linux node1 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    修改hostname

    # vi /etc/hostname
    node1

    使用setup或者 nmtui-edit 配置IP

    # setup
    或者
    # nmtui-edit

    修改/etc/hosts

    vi /etc/hosts
    
    10.0.2.7 node1-pub
    10.0.2.8 node2-pub
    10.0.2.9 node3-pub
    
    192.168.56.101 node1
    192.168.56.102 node2
    192.168.56.103 node3

    关闭防火墙

    # systemctl stop firewalld.service
    # systemctl disable firewalld.service
    # iptables -F

    关闭selinux

    vi /etc/selinux/config
    SELINUX=DISABLED
    或者
    vi /etc/sysconfig/selinux
    SELINUX=DISABLED

    修改/etc/sysctl.conf

    #kernel.shmall = 2097152
    #kernel.shmmax = 536870912 # Bytes
    kernel.shmmni = 4096
    
    fs.aio-max-nr = 1048576
    fs.file-max = 68116544
    
    kernel.sem = 250 5120000 100 20480
    kernel.sysrq = 1
    kernel.core_uses_pid = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.msgmni = 2048
    
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.all.arp_filter = 1
    net.ipv4.ip_forward = 0
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_recycle=1
    net.ipv4.tcp_max_syn_backlog=4096
    net.ipv4.ip_local_port_range = 1025 65535
    net.core.netdev_max_backlog=10000
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048586
    
    vm.overcommit_memory=2
    vm.overcommit_ratio = 95
    

    立即生效

    # sysctl -p
    # lsipc

    修改/etc/security/limits.conf

    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * hard nproc 131072

    上述配置具体含义:

    soft nproc: 可打开的文件描述符的最大数(软限制)
    hard nproc: 可打开的文件描述符的最大数(硬限制)
    soft nofile:单个用户可用的最大进程数量(软限制)
    hard nofile:单个用户可用的最大进程数量(硬限制)

    修改 /etc/rc.local

    # vi /etc/rc.local
    #禁用大页
    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
       echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
       echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    #修改读块大小
    /usr/sbin/blockdev --setra 16384 /dev/sda
    #修改 io scheduler为deadline
    echo deadline > /sys/block/sda/queue/scheduler
    
    # chmod u+x /etc/rc.d/rc.local

    或者修改grub

    # vi /etc/default/grub
    ipv6.disable=1 numa=off elevator=deadline transparent_hugepage=never
    # grub2-mkconfig -o /boot/grub2/grub.cfg

    创建 greenplum 组

    # groupadd -g 10000 gpadmin

    创建 greenplum 用户:

    # useradd -u 10000 -g gpadmin gpadmin
    # usermod -G root gpadmin
    # passwd gpadmin

    创建 greenplum 目录

    # mkdir -p /usr/local/greenplum-db
    # chown -R gpadmin:gpadmin /usr/local/greenplum-db
    # mkdir -p /u01/greenplum-data/
    # chown -R gpadmin:gpadmin /u01

    源码编译安装

    https://github.com/greenplum-db/gpdb/releases
    https://github.com/greenplum-db/gpdb/tree/5.7.0

    安装依赖包,有点多

    # yum install centos-release-scl epel-release dh-autoreconf  devtoolset-6-toolchain
    # yum install git wget cmake3 rsync coreutils glib2 lrzsz sysstat e4fsprogs xfsprogs ntp zlib zlib-devel openssl openssl-libs openssl-devel pam pam-devel tcl-devel 
     smartmontools OpenIPMI-tools openldap openldap-devel logrotate libcurl-devel htop perl-Env libffi-devel libtool libaio ed net-tools 
     gcc gcc-c++ glibc-static make curl-devel bzip2-devel psutils psutils-perl liblockfile liblockfile-devel libevent libevent-devel vim-common vim-enhanced 
     perl perl-devel perl-ExtUtils-Embed  readline readline-devel apr apr-devel apr-util apr-util-devel libxml2 libxml2-devel 
     libxslt libxslt-devel bison bison-devel bison-runtime flex flex-devel isomd5sum isomd5sum-devel libyaml libyaml-devel
    
    # yum install python python-devel python-isomd5sum python-setuptools python-py
    # yum install python-lockfile  
    # yum install python-paramiko 
    
    # vi /etc/ld.so.conf
    include ld.so.conf.d/*.conf
    /usr/local/lib
    /usr/local/lib64
    # ldconfig
    

    使用pip安装一些必备工具
    pip 的安装可以参考 https://pip.pypa.io/en/stable/installing/

    # curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    # python get-pip.py
    
    # pip install setuptools
    # pip install --upgrade setuptools
    
    # pip install epydoc
    # pip install psi
    # pip install psutil
    # pip install lockfile
    # pip install paramiko
    # pip install gssapi
    # pip install conan
    Cannot uninstall 'enum34'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
    
    # yum list installed |grep enum34
    # yum remove python-enum34.noarch
    Running transaction
      Erasing    : python-paramiko-doc-2.1.1-4.el7.noarch                                 1/4 
      Erasing    : python-paramiko-2.1.1-4.el7.noarch                                     2/4 
      Erasing    : python2-cryptography-1.7.2-1.el7_4.1.x86_64                            3/4 
      Erasing    : python-enum34-1.0.4-1.el7.noarch                                       4/4 
      Verifying  : python-paramiko-doc-2.1.1-4.el7.noarch                                 1/4 
      Verifying  : python-enum34-1.0.4-1.el7.noarch                                       2/4 
      Verifying  : python2-cryptography-1.7.2-1.el7_4.1.x86_64                            3/4 
      Verifying  : python-paramiko-2.1.1-4.el7.noarch                                     4/4 
    

    安装cmake (所有节点),如果已经 yum install cmake3,则跳过这一步
    参考
    https://cmake.org/download/

    # cd /root
    # mkdir cmake
    # cd cmake
    # rz
    # ./cmake-3.11.0-Linux-x86_64.sh
    # ln -s /root/cmake/bin/cmake /usr/bin/cmake

    安装gp-xerces (所有节点)
    参考
    https://github.com/greenplum-db/gp-xerces
    https://github.com/greenplum-db/gp-xerces.git

    # cd /root
    # git clone https://github.com/greenplum-db/gp-xerces.git
    # cd gp-xerces
    # mkdir build
    # cd ./build
    # ../configure --prefix=/usr/local
    # make
    # make install

    安装re2c (所有节点)
    参考
    http://re2c.org/install/install.html
    https://github.com/skvadrik/re2c
    https://github.com/skvadrik/re2c.git

    # cd /root
    # git clone https://github.com/skvadrik/re2c.git
    # cd ./re2c/re2c
    # ./autogen.sh
    # ./configure --prefix=/usr/local
    # make
    # make install

    安装ninja (所有节点)
    参考
    https://ninja-build.org/
    https://github.com/ninja-build/ninja
    https://github.com/ninja-build/ninja.git

    # cd /root
    # git clone https://github.com/ninja-build/ninja.git
    # cd ninja
    # ./configure.py --bootstrap
    # ln -s /root/ninja/ninja /usr/bin/ninja

    安装 gporca
    这里啰嗦两句,gporca是 greenplum 新一代的优化器,在性能上有很大提升
    legacy是早期针对单节点 greenplum 而构建的,主要应用于OLTP场景,greenplum在不安装orca的情况下使用的是legacy优化器。
    为什么要有两个优化器,其实都是有历史原因的,现在的greenplum使用MPP,主要应用场景变为OLAP场景,legacy对此虽然进行了修改,但是从架构设计上,使得其维护和添加新的功能越来越困难,所以有了GPORCA优化器。

    1、手动单独安装gporca (所有节点)
    参考
    https://github.com/greenplum-db/gporca
    https://github.com/greenplum-db/gporca.git

    # cd /root
    # git clone https://github.com/greenplum-db/gporca.git
    # cd gporca
    # cmake -GNinja -H. -Bbuild
    # ninja install -C build
    --
    --
    -- Installing: /usr/local/include/gpopt/version.h
    
    待安装完成后,进入/gporca/build目录,执行ctest命令进行检查,确保100% tests passed
    # cd /root/gporca/build/
    # /root/cmake/bin/ctest
    100% tests passed, 0 tests failed out of 157
    
    Total Test time (real) = 194.05 sec

    2、自动安装,其实最后都是拷贝文件到 /usr/local/include/ /usr/local/lib/
    (所有节点)
    参考 https://github.com/greenplum-db/gpdb/tree/5.7.0

    # su - gpadmin
    $ echo 'source scl_source enable devtoolset-6' >> ~/.bashrc
    $ cd /tmp
    $ rz gpdb-5.7.0.tar.gz
    $ unzip ./gpdb-5.7.0.zip
    $ cd gpdb-5.7.0
    $ cd depends
    $ ./configure
    $ make
    ===================================================================
    Orca can now be installed on the local system using "make install"
    and be used as any normal system library
    
    If you'd rather compile GPDB using ORCA in it's current location and then
    install ORCA into the gpdb installation location then first run the top
    level configure as follows:
    LD_LIBRARY_PATH=/tmp/gpdb-5.7.0/depends/build/lib ./configure  
        --with-libraries=/tmp/gpdb-5.7.0/depends/build/lib  
        --with-includes=/tmp/gpdb-5.7.0/depends/build/include 
    
    Then run "make".
    Then run "LD_LIBRARY_PATH=/tmp/gpdb-5.7.0/depends/build/lib make install"
    
    These steps should work on both MacOS and Linux
    
    # make install_local
    ===================================================================
    Orca can now be installed on the local system using "make install"
    and be used as any normal system library
    
    If you'd rather compile GPDB using ORCA in it's current location and then
    install ORCA into the gpdb installation location then first run the top
    level configure as follows:
    LD_LIBRARY_PATH=/tmp/gpdb-5.7.0/depends/build/lib ./configure  
        --with-libraries=/tmp/gpdb-5.7.0/depends/build/lib  
        --with-includes=/tmp/gpdb-5.7.0/depends/build/include 
    
    Then run "make".
    Then run "LD_LIBRARY_PATH=/tmp/gpdb-5.7.0/depends/build/lib make install"
    
    These steps should work on both MacOS and Linux
    /bin/mkdir -p /usr/local
    cp -R build/* /usr/local
    
    最后两条命令就是拷贝到系统路径里
    # /bin/mkdir -p /usr/local
    # cp -R build/* /usr/local
    
    后来在 gpdb configure 的时候报了如下错误
    checking Checking ORCA version... configure: error: Your ORCA version is expected to be 2.55.XXX
    发现 gporca 的版本是 2.55.13 ,后来通过 第一种方式编译 gporca的版本为 2.55.20,没有再报错

    重装gporca前清空

    rm -rf /usr/local/include/naucrates
    rm -rf /usr/local/include/gpdbcost
    rm -rf /usr/local/include/gpopt
    rm -rf /usr/local/include/gpos
    rm -rf /usr/local/lib/libnaucrates.so*
    rm -rf /usr/local/lib/libgpdbcost.so*
    rm -rf /usr/local/lib/libgpopt.so*
    rm -rf /usr/local/lib/libgpos.so*

    构建 greenplum

    # su - gpadmin
    $ cd /tmp
    $ unzip ./gpdb-5.7.0.zip
    finishing deferred symbolic links:
      gpdb-5.7.0/concourse/tasks/compile_gpdb_open_source.yml -> compile_gpdb_open_source_centos.yml
    
    $ cd /tmp/gpdb-5.7.0
    
    $ ./configure --prefix=/usr/local/greenplum-db --enable-mapreduce --with-perl --with-python --with-libxml --with-gssapi --enable-orca --with-includes=/usr/local/include/ --with-libraries=/usr/local/lib/
    
    如果没有编译gporca优化器,则需要添加 --disable-orca 参数,如下
    $ ./configure --prefix=/usr/local/greenplum-db --enable-mapreduce --with-perl --with-python --with-libxml --with-gssapi --disable-orca
    
    相对比较全的选项
    --with-gssapi --with-pgport=5432 --with-libedit-preferred --with-perl --with-python --with-openssl
    --with-pam --with-krb5 --with-ldap --with-libxml --enable-cassert --enable-debug --enable-testutils --enable-debugbreak --enable-depend
    
    
    中间有如下报错
    ./configure: line 11922: #include: command not found
    
    需要多次make时,可以执行autoreconf
    # cd /tmp/gpdb-5.7.0
    # autoreconf -ivf
    
    $ make -j4
    $ make install
    
    $ cd /usr/local/greenplum-db
    $ ls -l
    total 24
    drwxrwxr-x 7 gpadmin gpadmin 4096 Apr 17 13:54 bin
    drwxrwxr-x 3 gpadmin gpadmin   24 Apr 17 13:54 doc
    drwxrwxr-x 3 gpadmin gpadmin   22 Apr 17 13:54 docs
    drwxrwxr-x 2 gpadmin gpadmin   25 Apr 17 13:54 etc
    -rw-rw-r-- 1 gpadmin gpadmin  698 Apr 17 13:54 greenplum_path.sh
    drwxrwxr-x 4 gpadmin gpadmin 4096 Apr 17 13:54 include
    drwxrwxr-x 5 gpadmin gpadmin 4096 Apr 17 13:54 lib
    drwxrwxr-x 2 gpadmin gpadmin 4096 Apr 17 13:54 sbin
    drwxrwxr-x 4 gpadmin gpadmin   41 Apr 17 13:54 share
    

    设置用户环境变量

    # vi /home/gpadmin/.bashrc
    source /usr/local/greenplum-db/greenplum_path.sh
    # vi /home/gpadmin/.bash_profile
    source /usr/local/greenplum-db/greenplum_path.sh

    设置完后记得source一下使其立即生效。

    # source /home/gpadmin/.bashrc
    # source /home/gpadmin/.bash_profile
    # echo $PATH

    至此 node1上的 greenplum 已经安装完毕。

    需要在所有主机安装Greenplum二进制版本
    在node1上touch all_host all_segment

    # source /usr/local/greenplum-db/greenplum_path.sh
    # cd $GPHOME
    # vi all_host
    node1
    node2
    node3
    # vi all_segment
    node2
    node3

    在node1上建立节点信任,需要输入root密码

    # source /usr/local/greenplum-db/greenplum_path.sh
    # cd $GPHOME/bin
    # ./gpssh-exkeys -f $GPHOME/all_host

    在node1上操作批量安装

    # source /usr/local/greenplum-db/greenplum_path.sh
    # cd $GPHOME/bin
    # ./gpseginstall -f $GPHOME/all_segment -u gpadmin -p rootroot

    在node1上检查批量安装情况

    # source /usr/local/greenplum-db/greenplum_path.sh
    # cd $GPHOME/bin
    # ./gpssh -f $GPHOME/all_segment -e ls -l $GPHOME

    在node1、node2、node3上分别检查数据目录

    # ls -l / |grep -i u01 ;ls -l /u01/ ;

    时间同步,各个节点要和master的时间保持一致
    使用ntp和标准时间、内部时间同步

    # yum install ntp
    # systemctl start ntpd
    # systemctl enable ntpd

    或者使用gpssh来相互同步时钟

    $ gpssh -f all_host -v date
    $ gpssh -f all_host -v ntpd

    运行gpcheck 来检查刚配的segment机器的操作系统情况

    # gpcheck -f /usr/local/greenplum-db/all_host

    硬件性能效验

    # gpcheckperf -f /usr/local/greenplum-db/all_host -d /tmp -d /home/gpadmin/ -v -r ds

    网络性能效验:

    # gpchecknet -f /usr/local/greenplum-db/all_host -d /tmp
    # gpchecknet -f /usr/local/greenplum-db/all_host -r N -d /tmp

    初始化

    gp初始化文件

    $ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /usr/local/greenplum-db/
    $ chmod 775 ./gpinitsystem_config
    $ vi /usr/local/greenplum-db/gpinitsystem_config
    $ egrep -v "(^$|^#)" ./gpinitsystem_config
    
    ARRAY_NAME="test Greenplum Data Platform"
    SEG_PREFIX=gpseg
    PORT_BASE=40000
    declare -a DATA_DIRECTORY=(/u01/greenplum-data)
    MASTER_HOSTNAME=node1
    MASTER_DIRECTORY=/u01/greenplum-data
    MASTER_PORT=5432
    TRUSTED_SHELL=ssh
    CHECK_POINT_SEGMENTS=8
    ENCODING=UNICODE
    DATABASE_NAME=peiybdb
    MACHINE_LIST_FILE=/usr/local/greenplum-db/all_segment
    
    简单说明下
    ARRAY_NAME:设置阵列名称,默认Greenplum Data Platform。
    SEG_PREFIX:设置segment的前缀,默认gpseg。
    PORT_BASE:设置segment的起始端口,会从此端口往上增加,默认从40000开始。
    DATA_DIRECTORY:设置segment primary的数据存储目录,有几个segment节点就需要设置几个数据存储目录。
    MASTER_HOSTNAME:设置master的主机名。
    MASTER_DIRECTORY:设置master的存储目录。
    MASTER_PORT:设置master的端口,默认5432。
    TRUSTED_SHELL:设置节点之间的信任方式,默认SSH。
    CHECK_POINT_SEGMENTS:预写日志文件(WAL)数量,默认为8,这意味着为主机上的每个Segment或Master实例分配1088MB的WAL空间。
    ENCODING=UNICODE:设置初始字符集,默认UNICODE(UTF-8)。
    MACHINE_LIST_FILE:仅包含segment主机地址
    注意,其中所有需要的目录都是在创建数据存储区域时做好的。

    gp初始化工具

    $ cd $GPHOME/bin
    $ gpinitsystem -c /usr/local/greenplum-db/gpinitsystem_config -h /usr/local/greenplum-db/all_segment
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checking configuration parameters, please wait...
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Reading Greenplum configuration file /usr/local/greenplum-db/gpinitsystem_config
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Locale has not been set in /usr/local/greenplum-db/gpinitsystem_config, will set to default value
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Locale set to en_US.utf8
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checking configuration parameters, Completed
    20180417:17:41:25:005291 gpinitsystem:node1:gpadmin-[INFO]:-Commencing multi-home checks, please wait...
    ...
    20180417:17:41:27:005291 gpinitsystem:node1:gpadmin-[INFO]:-Configuring build for standard array
    20180417:17:41:27:005291 gpinitsystem:node1:gpadmin-[INFO]:-Commencing multi-home checks, Completed
    20180417:17:41:27:005291 gpinitsystem:node1:gpadmin-[INFO]:-Building primary segment instance array, please wait...
    ...
    20180417:17:41:29:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checking Master host
    20180417:17:41:29:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checking new segment hosts, please wait...
    ...
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checking new segment hosts, Completed
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Greenplum Database Creation Parameters
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:---------------------------------------
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master Configuration
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:---------------------------------------
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master instance name       = test Greenplum Data Platform
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master hostname            = node1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master port                = 5432
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master instance dir        = /u01/greenplum-data/gpseg-1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master LOCALE              = en_US.utf8
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Greenplum segment prefix   = gpseg
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master Database            = peiybdb
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master connections         = 250
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master buffers             = 128000kB
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Segment connections        = 750
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Segment buffers            = 128000kB
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Checkpoint segments        = 8
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Encoding                   = UNICODE
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Postgres param file        = Off
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Initdb to be used          = /usr/local/greenplum-db/bin/initdb
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-GP_LIBRARY_PATH is         = /usr/local/greenplum-db/lib
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-HEAP_CHECKSUM is           = on
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Ulimit check               = Passed
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Array host connect type    = Single hostname per node
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [1]      = ::1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [2]      = 10.0.2.7
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [3]      = 192.168.122.1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [4]      = 192.168.56.101
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [5]      = fe80::a00:27ff:fe6e:8656
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Master IP address [6]      = fe80::a00:27ff:fef3:ba27
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Standby Master             = Not Configured
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Primary segment #          = 1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Total Database segments    = 3
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Trusted shell              = ssh
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Number segment hosts       = 3
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Mirroring config           = OFF
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:----------------------------------------
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-Greenplum Primary Segment Configuration
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:----------------------------------------
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-node1   /u01/greenplum-data/gpseg0  40000   2 0
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-node2   /u01/greenplum-data/gpseg1  40000   3 1
    20180417:17:41:39:005291 gpinitsystem:node1:gpadmin-[INFO]:-node3   /u01/greenplum-data/gpseg2  40000   4 2
    
    Continue with Greenplum creation Yy|Nn (default=N):
    > y
    20180417:17:41:43:005291 gpinitsystem:node1:gpadmin-[INFO]:-Building the Master instance database, please wait...
    20180417:17:41:46:005291 gpinitsystem:node1:gpadmin-[INFO]:-Starting the Master in admin mode
    20180417:17:41:51:005291 gpinitsystem:node1:gpadmin-[INFO]:-Commencing parallel build of primary segment instances
    20180417:17:41:51:005291 gpinitsystem:node1:gpadmin-[INFO]:-Spawning parallel processes    batch [1], please wait...
    ...
    20180417:17:41:51:005291 gpinitsystem:node1:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
    ...............................
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:------------------------------------------------
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Parallel process exit status
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:------------------------------------------------
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Total processes marked as completed           = 3
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Total processes marked as killed              = 0
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Total processes marked as failed              = 0
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:------------------------------------------------
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Deleting distributed backout files
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Removing back out file
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-No errors generated from parallel processes
    20180417:17:42:23:005291 gpinitsystem:node1:gpadmin-[INFO]:-Restarting the Greenplum instance in production mode
    
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Starting gpstop with args: -a -l /home/gpadmin/gpAdminLogs -i -m -d /u01/greenplum-data/gpseg-1
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Gathering information and validating the environment...
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Obtaining Segment details from master...
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.0.0 build dev'
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-There are 0 connections to the database
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='immediate'
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Master host=node1
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=immediate
    20180417:17:42:23:009523 gpstop:node1:gpadmin-[INFO]:-Master segment instance directory=/u01/greenplum-data/gpseg-1
    20180417:17:42:24:009523 gpstop:node1:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
    20180417:17:42:24:009523 gpstop:node1:gpadmin-[INFO]:-Terminating processes for segment /u01/greenplum-data/gpseg-1
    20180417:17:42:25:009553 gpstart:node1:gpadmin-[INFO]:-Starting gpstart with args: -a -l /home/gpadmin/gpAdminLogs -d /u01/greenplum-data/gpseg-1
    20180417:17:42:25:009553 gpstart:node1:gpadmin-[INFO]:-Gathering information and validating the environment...
    20180417:17:42:25:009553 gpstart:node1:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 5.0.0 build dev'
    20180417:17:42:25:009553 gpstart:node1:gpadmin-[INFO]:-Greenplum Catalog Version: '301705051'
    20180417:17:42:25:009553 gpstart:node1:gpadmin-[INFO]:-Starting Master instance in admin mode
    20180417:17:42:26:009553 gpstart:node1:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
    20180417:17:42:26:009553 gpstart:node1:gpadmin-[INFO]:-Obtaining Segment details from master...
    20180417:17:42:26:009553 gpstart:node1:gpadmin-[INFO]:-Setting new master era
    20180417:17:42:26:009553 gpstart:node1:gpadmin-[INFO]:-Master Started...
    20180417:17:42:26:009553 gpstart:node1:gpadmin-[INFO]:-Shutting down master
    20180417:17:42:27:009553 gpstart:node1:gpadmin-[INFO]:-Commencing parallel segment instance startup, please wait...
    ........ 
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-Process results...
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-----------------------------------------------------
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-   Successful segment starts                                            = 3
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-   Failed segment starts                                                = 0
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-   Skipped segment starts (segments are marked down in configuration)   = 0
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-----------------------------------------------------
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-Successfully started 3 of 3 segment instances 
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-----------------------------------------------------
    20180417:17:42:35:009553 gpstart:node1:gpadmin-[INFO]:-Starting Master instance node1 directory /u01/greenplum-data/gpseg-1 
    20180417:17:42:36:009553 gpstart:node1:gpadmin-[INFO]:-Command pg_ctl reports Master node1 instance active
    20180417:17:42:36:009553 gpstart:node1:gpadmin-[INFO]:-No standby master configured.  skipping...
    20180417:17:42:36:009553 gpstart:node1:gpadmin-[INFO]:-Database successfully started
    20180417:17:42:36:005291 gpinitsystem:node1:gpadmin-[INFO]:-Completed restart of Greenplum instance in production mode
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Scanning utility log file for any warning messages
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Log file scan check passed
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Greenplum Database instance successfully created
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-------------------------------------------------------
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-To complete the environment configuration, please 
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-update gpadmin .bashrc file with the following
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-1. Ensure that the greenplum_path.sh file is sourced
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-2. Add "export MASTER_DATA_DIRECTORY=/u01/greenplum-data/gpseg-1"
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-   to access the Greenplum scripts for this instance:
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-   or, use -d /u01/greenplum-data/gpseg-1 option for the Greenplum scripts
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-   Example gpstate -d /u01/greenplum-data/gpseg-1
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Script log file = /home/gpadmin/gpAdminLogs/gpinitsystem_20180417.log
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-To remove instance, run gpdeletesystem utility
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-To initialize a Standby Master Segment for this Greenplum instance
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Review options for gpinitstandby
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-------------------------------------------------------
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-The Master /u01/greenplum-data/gpseg-1/pg_hba.conf post gpinitsystem
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-has been configured to allow all hosts within this new
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-new array must be explicitly added to this file
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-located in the /usr/local/greenplum-db/docs directory
    20180417:17:42:42:005291 gpinitsystem:node1:gpadmin-[INFO]:-------------------------------------------------------

    node1 上增加 greenplum master的数据变量,最终的修改如下:

    # vi /home/gpadmin/.bashrc
    source /usr/local/greenplum-db/greenplum_path.sh
    export MASTER_DATA_DIRECTORY=/u01/greenplum-data/gpseg-1
    
    # vi /home/gpadmin/.bash_profile
    source /usr/local/greenplum-db/greenplum_path.sh
    export MASTER_DATA_DIRECTORY=/u01/greenplum-data/gpseg-1

    node2、node3 作为segment,最终的修改如下:

    # vi /home/gpadmin/.bashrc
    source /usr/local/greenplum-db/greenplum_path.sh
    
    # vi /home/gpadmin/.bash_profile
    source /usr/local/greenplum-db/greenplum_path.sh

    设置访问权限

    $ cd /u01/greenplum-data/gpseg-1
    $ ls -l
    total 60
    drwx------ 6 gpadmin gpadmin    54 Apr 17 17:42 base
    drwx------ 2 gpadmin gpadmin  4096 Apr 17 17:42 global
    -r-------- 1 gpadmin gpadmin   109 Apr 17 17:41 gp_dbid
    drwxrwxr-x 5 gpadmin gpadmin    42 Apr 17 17:41 gpperfmon
    -rw-rw-r-- 1 gpadmin gpadmin   860 Apr 17 17:41 gpssh.conf
    drwx------ 2 gpadmin gpadmin     6 Apr 17 17:41 pg_changetracking
    drwx------ 2 gpadmin gpadmin    18 Apr 17 17:41 pg_clog
    drwx------ 2 gpadmin gpadmin    18 Apr 17 17:41 pg_distributedlog
    drwx------ 2 gpadmin gpadmin     6 Apr 17 17:41 pg_distributedxidmap
    -rw-rw-r-- 1 gpadmin gpadmin  4307 Apr 17 17:41 pg_hba.conf
    -rw------- 1 gpadmin gpadmin  1636 Apr 17 17:41 pg_ident.conf
    drwx------ 2 gpadmin gpadmin   141 Apr 17 17:42 pg_log
    drwx------ 4 gpadmin gpadmin    36 Apr 17 17:41 pg_multixact
    drwx------ 2 gpadmin gpadmin    25 Apr 17 17:42 pg_stat_tmp
    drwx------ 2 gpadmin gpadmin    18 Apr 17 17:41 pg_subtrans
    drwx------ 2 gpadmin gpadmin     6 Apr 17 17:41 pg_tblspc
    drwx------ 2 gpadmin gpadmin     6 Apr 17 17:41 pg_twophase
    drwx------ 2 gpadmin gpadmin     6 Apr 17 17:42 pg_utilitymodedtmredo
    -rw------- 1 gpadmin gpadmin     4 Apr 17 17:41 PG_VERSION
    drwx------ 3 gpadmin gpadmin    60 Apr 17 17:42 pg_xlog
    -rw------- 1 gpadmin gpadmin 21250 Apr 17 17:41 postgresql.conf
    -rw------- 1 gpadmin gpadmin   205 Apr 17 17:42 postmaster.opts
    -rw------- 1 gpadmin gpadmin    53 Apr 17 17:42 postmaster.pid
    
    熟悉吧,和 postgresql 的目录基本是一致的。
    
    $ vi pg_hba.conf
    $ psql -d postgres -c "select pg_reload_conf();"
    $ psql -d postgres
    psql (8.3.23)
    Type "help" for help.
    
    postgres=#
    

    补充一下

    $ gpinitsystem -c /usr/local/greenplum-db/gpinitsystem_config -h /usr/local/greenplum-db/all_host

    -h 应该是 /usr/local/greenplum-db/all_segment,当时拷贝错了,事后才发现。有空再重做一遍,增加下熟练度。
    再次提醒自己,要细心,要细心,要细心

  • 相关阅读:
    Docker 镜像
    Docker 安装命令
    Docker 基本概念
    Redis 高可用之"持久化"
    Git 安装和使用
    oracle角色
    oracle权限
    审计
    手动创建数据库
    oracle口令文件认证
  • 原文地址:https://www.cnblogs.com/ctypyb2002/p/9793007.html
Copyright © 2020-2023  润新知