PG12.2源码安装
- 下载源码包:
可以到postgresql官方网站下载安装包,也可到私人网盘下载PG12.2部署包(提取码:qas3),本文以postgresql-12.2.tar.gz为例。
-
解压、编译安装:
# 创建user 和 group
groupadd postgres
useradd -g postgres postgres
# 安装依赖(其余碰到报错再根据情况安装)
yum -y install make gcc gcc-c++ gzip readline readline-devel zlib zlib-devel libperl docbook-dtds docbook-style-xsl fop libxslt
# 解压
tar -zxvf postgresql-12.2.tar.gz
# 编译安装
cd postgresql-12.2
./configure --prefix=/usr/local/pgsql
make && make install
# 安装contrib目录下的一些工具
cd ./contrib
make && make install
# 创建数据库data目录并赋予相关权限
mkdir -p /usr/local/pgsql/data
chown -R postgres:postgres /usr/local/pgsql
chmod -R 775 /usr/local/pgsql
# 切换至postgres用户,配置环境变量
echo 'export PATH=/usr/local/pgsql/bin:$PATH' >> ~/.bashrc
echo 'export PGDATA=/usr/local/pgsql/data' >> ~/.bashrc
source ~/.bashrc
# 初始化
initdb -D /usr/local/pgsql/data
- 配置
# 修改客户端认证配置文件pg_hba.conf,将需要远程访问PG的IP地址或地址段加入到该文件
su postgres
vim /usr/local/pgsql/data/pg_hba.conf
# 确保有如下配置(本次测试以trust为例,线上环境建议使用password、md5或者scram-sha-256等)
host all all <your subnet> trust
# 修改postgres.conf配置文件
vim /usr/local/pgsql/data/postgres.conf
# 确保如下配置
listen_addresses = '*'
# 其余配置保持默认,后面有需要再进行配置
- 启动数据库
# 启动数据库,将日志输出到data/serverlog文件中 su postgres pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile start
opensips-cli操作数据库
opensips3.0采用opensips-cli工具来管理和监控opensips server,数据库的管理也通过改工具来实现。
- 部署opensips-cli
前面写过一篇opensips3.0之新工具opensips-cli安装,此处省略这一步骤。 - opensips-cli配置文件
# 创建.opensips-cli.cfg文件,注意文件位置 vim ~/.opensips-cli.cfg # 配置文件中配置如下信息 [default] log_level: INFO prompt_name: opensips3.0.2-cli prompt_intro: Welcome to OpenSIPS 3.0.2! prompt_emptyline_repeat_cmd: False history_file: ~/.opensips-cli.history history_file_size: 1000 output_type: pretty-print communication_type: fifo fifo_file: /tmp/opensips_fifo database_schema_path: /usr/local/opensips3.0.2/share/opensips database_admin_url: postgres://postgres:postgres@172.172.0.12 database_modules: ALL database_url: postgres://postgres:postgres@172.172.0.12 database_name: pbxs # database_schema_path 表示数据库schema目录,此处postgres的sql文件都在/usr/local/opensips3.0.2/share/opensips/opensips目录下,若没有该目录,则需要编译安装db_postgres模块。 # database_admin_url配置超级管理员信息 # database_modules配置数据库支持的模块,此处将所有模块都包含进去,如果只包含部分,则将模块名配置在此,以空格分隔,eg:dialog usrloc # database_url表示数据库连接字符串,建议配置非管理员用户 # database_name表示数据库名,若不配置,默认为opensips
- 编译安装db_postgres模块
# 在源码目录下编译安装db_postgres模块 cd <your dir>opensips-3.0.2 make prefix=/usr/local/opensips3.0.2 modules=modules/db_postgres modules make prefix=/usr/local/opensips3.0.2 modules=modules/db_postgres install # 则可在/usr/local/opensips3.0.2/lib64/opensips/modules目录下找到db_postgres.so文件,并在/usr/local/opensips3.0.2/share/opensips目录下找到postgres目录
- 测试
启动opensips后,进入opensips-cli,tab键,会发现有如下命令可用:
尝试运行下mi ps,成功列出当前所有processes:
尝试创建pbxs数据库和所有表:
进入数据库中查看,发现pbxs数据库被成功创建,并且包括了所有模块的表(信息在opensips-cli配置文件中都已经配置好了,所以执行命令时不需要参数)
再尝试删除数据库:
输入y, 便可将pbxs成功删除。
该工具包含以下模块:
以上opensips-cli模块可以很好的管理和监控opensips server,使用起来也很方便和友好,更多功能还需要继续探索。