部署

    注:下面示例中,”#”开头的命令为切换到 root 用户运行的命令;”$”开头的命令,为切换到 sdbadmin 用户运行的命令。

    1. 下载 PostgreSQL

      下载链接:PostgreSQL 9.3.4

    2. 创建安装目录

    3. 解压安装包

      1. # cd /opt
      2. # tar -zxvf postgresql-9.3.4.tar.gz
    4. 源码编译配置

      1. # su - sdbadmin
      2. $ cd /opt/postgresql-9.3.4/
      3. $ ./configure --prefix=/opt/postgresql
    5. 源码编译

      1. $ make

      当编译出现“All of PostgreSQL successfully made. Ready to install.”,说明编译成功。

    6. 源码安装

      1. $ make install
    7. 设置环境变量

      编辑$HOME/.bash_profile,将如下变量添加至 sdbadmin 用户的环境变量中:

      export PGSQL_HOME=/opt/postgresql
      export PATH=$PGSQL_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$PGSQL_HOME/lib:$LD_LIBRARY_PATH

      注意:不同的 Linux 操作系统需要编辑的启动文件存在差异。大多数 Linux 操作系统只用以下3个启动文件中的一个:

      • $HOME/.bash_profile
      • $HOME/.bash_login
      • $HOME/.profile
    8. 使环境变量生效

      1. $ source ~/.bash_profile
    9. 初始化数据目录(该操作只能操作一次)

    1. 创建 PostgreSQL 的 lib 目录

      获取 PostgreSQL 的 libdir 路径

      1. $ cd /opt/postgresql
      2. $ PGLIBDIR=$(bin/pg_config --libdir)

      如果显示的 libdir 目录不存在,则创建该目录:

      1. $ mkdir -p ${PGLIBDIR}
    2. 创建PostgreSQL的extension目录

      获取 PostgreSQL 的 sharedir 路径

      1. $ PGSHAREDIR=$(bin/pg_config --sharedir)

      检查 sharedir 目录下是否存在 extension 目录,若不存在,则创建该目录:

      1. $ mkdir -p ${PGSHAREDIR}/extension
    3. 安装 PostgreSQL 的扩展文件

      sdb_fdw.so 文件名如 sdb_fdw.so_2.2_23000 ,2.2 代表对应的 SequoiaDB 版本,23000 代表 Release 号。

      1. $ cd ${PGLIBDIR}
      2. $ ln -s sdb_fdw.so_2.2_23000 sdb_fdw.so
    4. 将 sdb_fdw.control 和 sdb_fdw—1.0.sql 脚本拷贝到 extension 目录中:

      1. $ cp -f /opt/sequoiadb/postgresql/sdb_fdw.control ${PGSHAREDIR}/extension/
      2. $ cp -f /opt/sequoiadb/postgresql/sdb_fdw--1.0.sql ${PGSHAREDIR}/extension/

      sdb_fdw.control 脚本内容:

      1. # sdb_fdw extension
      2. comment = 'foreign data wrapper for SequoiaDB access'
      3. default_version = '1.0'
      4. module_pathname = '$libdir/sdb_fdw'
      5. relocatable = true

      sdb_fdw—1.0.sql 脚本内容:

      1. /* contrib/sdb_fdw/sdb_fdw--1.0.sql */
      2. -- complain if script is sourced in psql, rather than via CREATE EXTENSION
      3. \echo Use "CREATE EXTENSION sdb_fdw" to load this file. \quit
      4. CREATE FUNCTION sdb_fdw_handler()
      5. AS 'MODULE_PATHNAME'
      6. LANGUAGE C STRICT;
      7. RETURNS void
      8. AS 'MODULE_PATHNAME'
      9. LANGUAGE C STRICT;
      10. CREATE FOREIGN DATA WRAPPER sdb_fdw
      11. HANDLER sdb_fdw_handler
      12. VALIDATOR sdb_fdw_validator;
    1. 修改 PostgreSQL 的日志配置,日志中增加打印时间信息、连接信息等

      打印连接信息

      1. log_connections = on

      打印断连信息

      1. log_disconnections = on

      日志中打印时间,进程id,客户端地址信息

      1. log_line_prefix = '%m %p %r'

      出现错误时,断开当前连接

      1. exit_on_error = on
    2. 检查端口是否被占用

      PostgreSQL 默认启动端口为”5432”,检查端口是否被占用(检查操作建议使用 root 用户操作,只有检查端口需要 root 权限,其余操作还是需要在 sdbadmin 用户下操作)

      1. # netstat -nap | grep 5432

      如果5432端口被占用或者希望修改 PostgreSQL 的启动端口,可继续修改/opt/postgresql/data/postgresql.conf文件。如把启动端口改为11700。

      1. port = 11700
    3. 启动 PostgreSQL 服务进程(需要使用 sdbadmin 用户执行以下命令)

      1. $ bin/postgres -D data/ >> logfile 2>&1 &
    4. 检查 PostgreSQL 是否启动成功

      1. # netstat -nap | grep 5432
      2. tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 20502/postgres
      3. unix 2 [ ACC ] STREAM LISTENING 40776754 20502/postgres /tmp/.s.PGSQL.5432
    5. 运行 PostgreSQL shell 命令行客户端