天天看点

pgsql环境搭建和benchmark测试工具搭建

2018.6.6

本周开始装pgsql数据库,pgsql和之前看的mysql数据库是一样的,也是一种关系型数据库,主要是为了在pgsql中修改缓存替换算法,考虑数据的冷温热,让数据库在闪存上有更好的优化效果。

我们首先在linux系统上搭建pgsql数据库,然后使用测试工具benchmarksql对数据库进行压力测试,这个测试工具类似fio一样,测试数据库的响应性能。

————————————————————————————————————————————

pgsql的安装步骤

ps:由于我们需要修改pgsql的源码,所以不是直接通过linux的yum进行安装的,而是下载源码包编译一步步安装的,下面进行具体说明:

1、下载pgsql的源码

下载链接:http://www.postgresql.org/ftp/source/

下载版本:下载PostgreSQL v7.4.30

原因:下载PostgreSQL v7.4.30 是因为这是最后一个使用LRU算法的版本,更新版本的PostgreSQL 使用了更复杂的缓存替换算法,阅读起来更有难度,而且,在实现自己的缓存替换算法,几乎都要和LRU算法进行比较,下载这个版本,就不用再实现一遍LRU算法。

————————————————————————————————————————————

2、安装pgsql的源码

首先从pgsql的源码中可以看到有一个安装的说明文件,安装说明中指出了数据库创建启动的基本步骤

pgsql环境搭建和benchmark测试工具搭建

按照这个步骤我们可以知道,安装创建一个数据库需要以下几步:

1.首先配置安装路径,然后编译源码,安装可执行文件

2.为linux添加一个用户,以为pgsql不能以root权限登录,只能以普通用户登录,需要创建临时用户

3.然后为数据库创建数据区,即数据实际存放的地方,并且将这个数据区的操作用户修改为当前用户

4.然后登录当前新设置的用户,初始化数据工作区

5.启动pgsql服务

6.创建一个新的数据库

按照这个步骤,可以创建pgsql的数据库,具体的操作如下:

./configure --prefix=想要安装的路径 --without-readline --without-zlib
make
sudo make install
           

我们通过第一条语句指定数据库的安装路径,如果不指定,则默认安装到 /usr/loca/pgsql 目录下,要是读者现在身边没有固态盘,则可以不指定 --prefix 参数,让数据库安装到默认位置。为了描述方便,下面假设读者安装到默认位置,如果安装到其他位置,在下面的语句中,请自行修改路径。

执行完上面3条语句以后,数据库就安装完成了,但是还有很多工作要做,

首先,修改/usr/local/pgsql/share目录下的conversion_create 文件,将所有的 “$libdir” 替换成 “安装目录/lib”,如果你不会vim ,也不会shell 脚本,这真是件很有挑战性的事情,不过不用担心,这里的所有操作我都写了脚本,你只需要运行脚本就可以了,我这里之所以还把安装过程讲得这么详细,是方便读者在遇到问题的时候能够自行调试,自行解决。

替换完成以后,初始化工作区:

mkdir /usr/local/pgsql/data
chown userName /usr/local/pgsql/data
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data #初始化工作区
           

初始化工作区以后,还需要修改配置文件:

进入存储空间所在文件夹(/usr/local/pgsql/data),打开postgresql.conf文件,将#tcpip_socket = false的#删除,false改为true。将#port = 5432的#删除

上面步骤完成以后,配置工作就完成了,下面只需要启动数据库服务,然后新建数据库就可以了。

#启动服务
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
#创建一个名为test 的数据库
/usr/local/pgsql/bin/createdb test
           

注意:

pgsql进行默认创建的时候,会创建三个数据库:

pgsql环境搭建和benchmark测试工具搭建

这三个数据库均是由initdb生成的,其中template0 和template1 为数据库模板,创建时直接可以使用其克隆一个新数据库。

实际是会默认创建一个本机用户无密码的数据库,为了让用户直接登录数据库,创建其他的数据库操作。

之后的创建,按照创建用户,创建对应用户的数据库进行。

类似下面的操作:

pgsql环境搭建和benchmark测试工具搭建

————————————————————————————————————————————

3、测试

在完成了数据库的创建之后,直接使用benckmark工具对数据库进行测试,那么首先需要下载benchmark的测试工具,注意测试工具有两个版本,两个版本的改变较大,这里我们测试都选用安装简单的benchmark4.4.1进行安装。

下载链接:https://sourceforge.net/projects/benchmarksql/?source=typ_redirect

下载完成之后将压缩包解压即可。为了后续的测试必要,最好的解压路径就是之前创建的data数据库数据存放目录下。

pgsql环境搭建和benchmark测试工具搭建

解压完成后,目录中有个run的目录,就是运行的目录如下:

pgsql环境搭建和benchmark测试工具搭建

运行时用脚本的方式定义的:

pgsql环境搭建和benchmark测试工具搭建

至此,benchmachsql安装工作算是完成.

————————————————————————————————————————————

接下来需要将测试工具与pgsql关联起来,按照以下的步骤进行:

1.首先为数据库创建一个新的用户及测试的数据库表

pgsql环境搭建和benchmark测试工具搭建
2.修改benchmarksql数据库的连接配置,将benchmarksql与当前新建的用户和数据库关联起来
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
3.进行测试
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
4.输出测试结果:
pgsql环境搭建和benchmark测试工具搭建
5.对索引的测试
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建
6.测试完成,可以执行删除操作,主要包括有清理测试数据、删除表的索引、删除测试表
pgsql环境搭建和benchmark测试工具搭建
pgsql环境搭建和benchmark测试工具搭建

————————————————————————————————————————————

参考文献:

https://my.oschina.net/yafeishi/blog/742314

https://my.oschina.net/yafeishi/blog/742314#toc_3

https://blog.csdn.net/hadiniit/article/details/62037155

https://github.com/funnyfan/note/blob/54a1f7a75f9237b2db63f27ff9a045d45ce76da5/postgreSQL.md

https://blog.csdn.net/dyx1024/article/details/6596036