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目录下创建数据库初始文件

``

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,167评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,200评论 19 139
  • 北极星你在哪 秋夜,阴森的树林渐渐寒气漂浮,手机也没电了。跟一起来露营的旅伴走散了,...
    左溪凡阅读 1,281评论 14 7
  • 模拟器 沙盒 沙盒机制与文件(一) Xcode6的iPhone模拟器文件夹 每个文件夹都和某种模拟器相对应。为了知...
    plantAtree_dAp阅读 167评论 0 0