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