Linux下调试PostgreSQL数据库
2015-09-01 11:44
696 查看
1.环境准备
这里采用的是源码安装的方式进行postgresSQL安装的,源码下载在这里准备源码包为:postgresql-9.4.1.tar.gz
操作系统:ubuntu 14.04 x64 server
解压源码包:
#tar zxvf postgresql-9.4.1.tar.gz #cd postgresql-9.4.1/ #./configure --enable-debug --without-readline --without-zlib #make -j4 #make install
这里在执行configure的时候,需要增加debug选项,这样生成的makefile文件才会有-g调试选项,另外,生成makefile文件之后还需要修改一下
./src目录下的
Makefile.global文件,将其中的-O2选项去掉,由于-O2选项编译优化可能会打乱代码秩序,对于源代码流程查阅可能有影响。
2.使用数据库
上面第一步已经完成了数据库的安装,接下来是使用数据库,那么如何使用。处于安全性考虑Postgresql是不会让你用root用户操作的,所以这里需要增加一个数据库专用用户。#adduser postgre #chown -R postgre:postgre /usr/local/pgsql/
接下来切换用户,然后初始化postgreSQL的数据文件:
#su postgre $cd ~ $mkdir data $/usr/local/pgsql/bin/initdb data/ //初始化数据库文件 $/usr/local/pgsql/bin/pg_ctl -D data/ -l logfile start //启动数据库服务 $/usr/local/pgsql/bin/psql template1 //进入数据库服务
到这一步就可以进入postgreSQL数据库服务器了,可以执行语句,具体如下所示:
psql (9.4.1) Type "help" for help. template1=# select pg_backend_pid(); pg_backend_pid ---------------- 31073 (1 row)
这里通过select pg_backend_pid()函数调用来获取postgresSQL实例的进程号。接下来就是gdb神奇的功能了,gdb可以通过进程号调试正在运行的进程,当然,此举必须在root用户下执行。新开一个ssh窗口,切换到root用户,输入:
#gdb /usr/local/pgsql/bin/postgres 31073
这样就启动了gdb调试器,于是就可以调试postgres程序了,如下图所示:
当我们在gdb中输入s(step)时,会发现此时程序阻塞了,这时候是在等待用户的数据,我们切换到postgre用户窗口,在
template1=#中输入SQL语句。
psql (9.4.1) Type "help" for help. template1=# select * from test1;
切换到root窗口,可以发现gdb调试程序不再阻塞,如下图所示:
在调试页面可以看到我们刚刚输入的字符串,说明程序能够正常调试。
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- PostgreSQL新手入门教程
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- PostgreSQL教程(十):性能提升技巧
- PostgreSQL教程(二):模式Schema详解
- PostgreSQL教程(十三):数据库管理详解
- PostgreSQL教程(八):索引详解
- PostgreSQL教程(三):表的继承和分区表详解