postgresql7.4.1初始化数据库

# postgresql7.4.1初始化数据库

标签(空格分隔): postgresql, postgersql7.4.1源码阅读

---

第一篇文章,为什么要阅读7.4版本的源码呢?当前在postgresql的官网中,能够找到的最新的源码的版本就是postgres95,这是postgres在1995年发布的第一个开源版本,理论上也是刚开始接触postgersql源码的朋友来说是最简单的入门版本,如果我们要研究linux内核的源码,我们可以有这样的阅读思路和轨迹,但是数据库的源码相对代码量较多,且postgres95之前的版本都是学院派的编码,发布到互联网之后,由世界上众多的编码高手进行修改,代码的变化还是非常的大的,无论从数据结构设计,代码规范,到产品人性化程度都有了一个质的飞跃。所以即便是阅读了postgres95的源码,也未必就能够很容易的阅读最新的版本。版本6系列基本上还是一个酝酿期,基本数据结构没有改变,只是做了一些更加人性化的产品体验上的改变。但是到了版本7,绝大部分的代码都已经经过了重构,并且已经非常的接近于当前最新版本,阅读此版本的代码应该是最合适的。选择小版本7.4.1也是因为他是大版本7中最稳定使用的一个。另外一个不建议阅读更早期版本的重要原因是,早期版本编写时间过早,在现代的linux平台上面不能方便的编译通过(编译器和系统头文件已经发生了很大的改变),这给编译和调试实际上带来了很多的麻烦。现在最新版本的postgresql已经是9.6版本,里面已经涉及到了很多的功能,比如更复杂的数据库之间的流复制机制,分布式系统等等,这些功能已经严重的加大了数据库本身的复杂性。对于一个初学者而言,这些内容都不是必须要先掌握的,但是却非常影响基本功能代码的阅读。所以最终选择了7.4.1版本源码作为初次的源码分析。对于最新版本,会另外编写文章来分析。

postgresql在版本7开始已经开始逐渐脱离原始的配置方式(早期的版本都是在编译阶段,在配置文件中指定的数据库数据文件的安装目录,也就是说如果你需要更改这些目录,就意味着要重新编译一遍整个源码才行,切同一份编译出来的源码是不能运行两个不同数据库目录的实例的),使用initdb命令的-D参数就可以指定。

安装目录下的bin目录中有initdb文件就是用于做数据初始化的命令,此脚本支持多个参数选项,但是最重要的就是-D选项,本文也只是针对此选项进行分析,此选项是初始化命令的一个必选选项,用于指定一个将要初始化的数据库实例的路径,数据库实例的概念并不是说指我们在用sql语句中的用到的库的名称,这里的实例是指,运行一个数据库服务,通常涉及到一个进程簇和一个对外服务的端口。每一个数据库服务实例,会管理一个指定的数据库数据文件目录,这个目录就是上面说的使用-D参数来初始化的目录。

``

initdb -D /home/denny/instance/data/

// 在/home/denny/instance/data目录下创建数据库初始文件

``

你可能感兴趣的:(postgresql7.4.1初始化数据库)