下载gpdb-dev镜像

pivotaldata/gpdb-dev:centos7是官方的开发镜像,里面已经装好了一些依赖,所以使用起来会方便一点。

1
docker pull pivotaldata/gpdb-dev:centos7

下载gpdb源码到指定目录

1
git clone https://github.com/greenplum-db/gpdb.git ~/github

创建目录用于容器数据库

1
2
sudo mkdir -p /var/lib/centos-gpdb-dev-data
sudo chown xiaoyu:xiaoyu /var/lib/centos-gpdb-dev-data

运行容器

1
docker run -it --name centos-gpdb-dev -v ~/github/gpdb:/home/gpadmin/gpdb_src -v /var/lib/centos-gpdb-dev-data:/home/gpadmin/data -p 15432:15432 pivotaldata/gpdb-dev:centos7

安装依赖

1
/home/gpadmin/gpdb_src/README.CentOS.bash

添加动态库搜索路径,并使之生效

1
2
3
echo /usr/local/lib >> /etc/ld.so.conf
echo /usr/local/lib64 >> /etc/ld.so.conf
ldconfig

设置启动sshd

1
2
echo /usr/sbin/sshd >> ~/.bashrc
/usr/sbin/sshd # 第一次手动启动

切换到gpadmin用户,并进入源码目录

1
2
3
su - gpadmin
mkdir gpdb # 创建gpdb目录作为gpdb安装目录
cd /home/gpadmin/gpdb_src

编译gp-xerces

1
2
3
4
5
git clone https://github.com/greenplum-db/gp-xerces.git
cd gp-xerces
./configure && make -j4
sudo make install
cd ..

安装conan

1
2
sudo pip install --upgrade pip
sudo pip install -I conan # -I忽略已安装的包

编译ORCA

1
2
3
4
5
cd depends
./configure && make -j4 orca
sudo make install_local
sudo ldconfig
cd ..

编译gpdb

1
2
./configure --enable-debug --with-perl --with-python --with-libxml --with-gssapi --prefix=/home/gpadmin/gpdb
make -j4 && make -j4 install

使greenplum环境变量生效

1
2
echo source /home/gpadmin/gpdb/greenplum_path.sh >> ~/.bashrc
source ~/.bashrc

创建测试数据库

1
2
3
4
export MASTER_DATADIR=~/data # 脚本demo_cluster.sh中用到
make create-demo-cluster
echo source /home/gpadmin/gpdb_src/gpAux/gpdemo/gpdemo-env.sh >> ~/.bashrc
source ~/.bashrc

修改数据库用户名密码

1
ALTER USER gpadmin PASSWORD 'gpadmin';

修改master数据目录的配置文件pg_hba.conf,在最后添加以下内容

1
host    all     all     192.168.0.0/16  md5

修改master数据目录的配置文件postgresql.conf,找到listen_addresses,去掉前面的#,让gpdb重新加载配置文件

1
gpstop -ua

至此,gpdb测试数据库可以接受内网的访问。