今天起床看到床头上的那本《PostgreSQL数据库内核分析》,发觉这书买了这么长时间,虽然大致看了一遍,可还没亲手实践。今天就花了点时间搭了个调试环境。
环境:Debian 7.0
#### 第一步:安装以来的工具和库 ####
sudo apt-get install build-essential gdb bison flex zlib1g-dev libreadline-dev
#### 第二步:创建用户 ####
adduser postgres
以下几步需要切换到postgres用户
#### 第三步:准备源代码 ####
git clone http://git.postgresql.org/git/postgresql.git $HOME/postgresql
#### 第四步:源代码配置、编译、安装 ####
cd postgresql
./configure --prefix=$HOME/postgresql --enable-debug --enable-cassert --enable-dtrace --enable-depend
make
make install
#### 第五步:启动数据库 ####
cd $HOME/postgresql/
mkdir data
cd bin
./initdb -D ../data/
./postgres -D ../data/
#### 连接数据库 ####
./psql
这样,整个环境就搭建起来的,接下来就可以使用gdb attach到postgres进程进行调试。PostgreSQL现在支持用户态的systemtap probe,所以可以先使用systemtap(或者dtrace)了解大体执行流程,然后在进行学习。