最近学习数据库,搜集了些资料,并在本地单机安装使用学习。
SQL
PostgreSQL
文档
PostgreSQL的架构
Backend Flowchart
PostgreSQL 数据存储目录结构和进程结构
安装
sudo apt install postgresql
service postgresql start # /etc/init.d/postgresql
从难缠的模糊查询聊开 - PostgreSQL独门绝招之一 GIN , GiST , SP-GiST , RUM 索引原理与技术背景
Greenplum
Greenplumj基于postgresql开发(魔改),连默认端口号都一样。不安装PG,直接安装GP也行。
文档
Greenplum企业应用实战(笔记):第一章 greenplum简介以及该系列
聊聊Greenplum的那些事
详解开源大数据引擎Greenplum的架构和技术特点
安装
建立gpadmin用户
主要参考Install Greenplum OSS on Ubuntu安装的。
Greenplum DatabasePPA description
另外要
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpsne-1 # my MASTER_DIRECTORY=/home/gpadmin/gpmaster
sudo chown -R gpadmin:gpadmin ${GPHOME}
测试
我是使用apt安装的gp运行官方的回归测试中,需要我们有3个segment,因为其会对运行计划的特性的测试,其假定有3个segment。
下载源代码后,发现greenplum在github仓库里的.travis.yml
里运行
make -s unittest-check
make -C src/test/regress installcheck-small
而其在README里说的在gpdb目录下运行make installcheck-world
其中主要运行的是
make -C src/test/regress installcheck-good
通过看src/test/regress/GNUmakefile
:
installcheck: installcheck-good
installcheck-small: all
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(EXTRA_TESTS)
installcheck-good: all twophase_pqexecparams hooktest query_info_hook_test
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule --schedule=$(srcdir)/greenplum_schedule $(EXTRA_TESTS)
所以我们
cd src/test/regress
make installcheck
其最终会运行
../../../src/test/regress/pg_regress --inputdir=. --psqldir='/usr/local/gpdb/bin' --dlpath=. --init-file=./init_file --schedule=./parallel_schedule --schedule=./greenplum_schedule
当遇到与gp_inject_fault
没有安装的问题
cd gpcontrib/gp_inject_fault/
make install USE_PGXS=1
当遇到与gp_debug_numsegments
没有安装的问题
cd gpcontrib/gp_debug_numsegments/
make install USE_PGXS=1
当运行make installcheck
遇到类似于
/opt/greenplum-db-6-6.11.2/lib/postgresql/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=./ --psqldir='/opt/greenplum-db-6-6.11.2/bin' --dbname=contrib_regression udf_vector_sum_and_filter
(using postmaster on Unix socket, default port)
sh: 1: /usr/local/greenplum-db-oss/bin/psql: not found
pg_regress: cannot read the result
/opt/greenplum-db-6-6.11.2/lib/postgresql/pgxs/src/makefiles/pgxs.mk:303: recipe for target 'installcheck' failed
make: *** [installcheck] Error 2
的错误时
sudo mkdir -p /usr/local/greenplum-db-oss/bin
ln -s ${GPHOME}/bin/psql /usr/local/greenplum-db-oss/bin/