GVKun编程网logo

postgresql plv8 安装

13

以上就是给各位分享postgresqlplv8安装,同时本文还将给你拓展centos7下源码编译安装php支持PostgreSQLpostgresql手册postgresql官网下载postgresq

以上就是给各位分享postgresql plv8 安装,同时本文还将给你拓展centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、check_postgres.pl插件监控postgresql数据库、Greenplum与PostgreSQL社区双管齐下,谁是PostgreSQL 13 中国的"头号玩家"?、Plv8js —— 用 JavaScript 编写 PostgreSQL 函数等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

postgresql plv8 安装

postgresql plv8 安装

网上可以看到 pg 9.6 版本的 plv8 容器镜像,没有 pg 高版本的支持镜像,但是在基于原有 dockerfile 进行构建的时候,居然失败了,有墙的问题,有版本的问题
所以通过虚拟机尝试下构建方式安装以及对于碰到问题的解决

说明 centos 系统不太好使,安装起来有点费事,使用的 Debian

安装 pg

pg11

  • pg repo
 
touch /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
  • 安装
apt-get install postgresql-11 postgresql-server-dev-11 
  • 配置 pg_Config
    可选,默认会自动配置,对于多环境的可能需要,可以结合 find locate 工具查找

构建

  • 预备
 
apt install  git pkg-config libc++-dev libc++abi-dev
  • clone 代码
wget https://github.com/plv8/plv8/archive/v2.3.9.tar.gz
  • 构建
tar -xvzf v2.3.9.tar.gz
cd plv8-2.3.9
make
make install

使用

  • 启动扩展
CREATE EXTENSION plv8;
  • 简单函数
CREATE OR REPLACE FUNCTION plv8_eval_test()
RETURNS text AS $$
  var result = eval("1+2")
  return JSON.stringify(result);
$$ LANGUAGE plv8 IMMUTABLE STRICT;
  • 调用
select * from plv8_eval_test();
  • 效果

 

 

docker 镜像

  • Dockerfile
    文件内容来自 https://raw.githubusercontent.com/clkao/docker-postgres-plv8/master/10-2/Dockerfile
    v2.1.0
 
FROM postgres:10
MAINTAINER Chia-liang Kao <clkao@clkao.org>
ENV PLV8_VERSION=v2.1.0 \
    PLV8_SHASUM="207d712e919ab666936f42b29ff3eae413736b70745f5bfeb2d0910f0c017a5c v2.1.0.tar.gz"
RUN buildDependencies="build-essential \
    ca-certificates \
    curl \
    git-core \
    python \
    postgresql-server-dev-$PG_MAJOR" \
  && apt-get update \
  && apt-get install -y --no-install-recommends ${buildDependencies} \
  && mkdir -p /tmp/build \
  && curl -o /tmp/build/${PLV8_VERSION}.tar.gz -SL "https://github.com/plv8/plv8/archive/$PLV8_VERSION.tar.gz" \
  && cd /tmp/build \
  && echo ${PLV8_SHASUM} | sha256sum -c \
  && tar -xzf /tmp/build/${PLV8_VERSION}.tar.gz -C /tmp/build/ \
  && cd /tmp/build/plv8-${PLV8_VERSION#?} \
  && sed -i ''s/\(depot_tools.git\)/\1; cd depot_tools; git checkout 46541b4996f25b706146148331b9613c8a787e7e; rm -rf .git;/'' Makefile.v8 \
  && make static \
  && make install \
  && strip /usr/lib/postgresql/${PG_MAJOR}/lib/plv8.so \
  && cd / \
  && apt-get clean \
  && apt-get remove -y ${buildDependencies} \
  && apt-get autoremove -y \
  && rm -rf /tmp/build /var/lib/apt/lists/*
 

v2.3.8

# Docker image for PostgreSQL with the plv8 extensions installed
# Note: building plv8 from source takes a long time, and will timeout with Docker Hub''s
# automated builds. See the main Dockerfile for an image that uses pre-built binaries
# (built using this Dockerfile.build)
# Provided by Ionx Solutions: https://www.ionxsolutions.com
# Begin by building plv8
FROM postgres:11.2 AS build
ENV PLV8_VERSION 2.3.8
ENV PLV8_SHASUM="b3ffb95daeb21b17bc5670f372403879dfad7eee86e0152e4da763ffd16fbf07 ${PLV8_VERSION}.tar.gz"
RUN buildDeps="curl build-essential ca-certificates git python gnupg libc++-dev libc++abi-dev pkg-config glib2.0 postgresql-server-dev-$PG_MAJOR" \
    && apt-get update \
    && apt-get install -y --no-install-recommends libc++1 ${buildDeps} \
  && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
  && curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
  && apt-get update \
  && apt-get install -y --no-install-recommends libc++1 postgresql-server-dev-$PG_MAJOR \
    && git config --global user.email "nobody@example.com" \
    && git config --global user.name "nobody" \
    && mkdir -p /tmp/build \
    && curl -o /tmp/build/${PLV8_VERSION}.tar.gz -SL "https://github.com/plv8/plv8/archive/v${PLV8_VERSION}.tar.gz" \
    && cd /tmp/build \
    && echo ${PLV8_SHASUM} | sha256sum -c \
    && tar -xzf /tmp/build/${PLV8_VERSION}.tar.gz -C /tmp/build/ \
    && cd /tmp/build/plv8-${PLV8_VERSION} \
    && sed -i ''104i%.bc : %.cc\n\t$(COMPILE.cxx.bc) $(CCFLAGS) $(CPPFLAGS) -fPIC -c -o $@ $<\n'' Makefile.shared \
    && make static \
    && make install \
    && cd / \
    && rm -rf /tmp/build \
    && apt-get remove -y --purge ${buildDeps} \
    && apt-get autoremove -y --purge \
    && rm -rf /var/lib/apt/lists/
 
 

v2.3.9

FROM postgres:11.2
ENV PLV8_VERSION=v2.3.9 
RUN buildDependencies="curl build-essential ca-certificates git python gnupg libc++-dev libc++abi-dev pkg-config glib2.0 postgresql-server-dev-$PG_MAJOR" \
  && apt-get update \
  && apt-get install -y --no-install-recommends libc++1 ${buildDependencies} \
  && mkdir -p /tmp/build \
  && curl -o /tmp/build/${PLV8_VERSION}.tar.gz -SL "https://github.com/plv8/plv8/archive/$PLV8_VERSION.tar.gz" \
  && cd /tmp/build \
  && tar -xzf /tmp/build/${PLV8_VERSION}.tar.gz -C /tmp/build/ \
  && cd /tmp/build/plv8-${PLV8_VERSION#?} \
  && make static \
  && make install \
  && cd / \
  && apt-get clean \
  && apt-get remove -y ${buildDependencies} \
  && apt-get autoremove -y \
  && rm -rf /tmp/build /var/lib/apt/lists/*

几个问题

  • v8 代码包的问题
    主要是墙的问题,合理上网解决
  • make: * No rule to make target ''plv8.bc'', needed by ''all
    参考 https://github.com/plv8/plv8/issues/304 使用高版本,比如我使用 2.3.9 , 在测试 2.3.8 版本的时候碰到的此问题
  • undefined symbol: getmissingattr
    这个是因为 pg 版本的问题,主要是在 2.3.8 集成 pg 11 的时候,当时使用的 11.1 后边发现是 11.2 才支持的

参考资料

https://github.com/plv8/plv8
https://github.com/clkao/plv8x
https://github.com/plv8/plv8/issues/304
https://github.com/clkao/docker-postgres-plv8

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

1. 下载源码

$ mkdir /usr/downloads
$ wget -c http://cn2.php.net/distributions/php-5.6.20.tar.gz
$ tar -xvf php-5.6.20.tar.gz
$ mv php-5.6.20 /usr/local/src
$ cd !$ &amp; cd php-5.6.20
登录后复制

2. 阅读安装指导

$ ls -also
$ less README
$ less INSTALL
登录后复制

3. 安装依赖包

$ yum install apr apr-util apr-devel apr-util-devel prce lynx
登录后复制

4. 安装httpd

$ wget -c http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz
$ tar -xvf httpd-2.4.20.tar.gz
$ cd httpd-2.4.20
$ ./configure \
--prefix=/usr/local/programs/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-module=shared
$ make
$ make install
$ cd /usr/local/programs/apache2
$ cp bin/apachectl /etc/init.d/httpd ## 复制启动脚本
$ /etc/init.d/httpd start ## 启动apache服务器,访问http://localhost/
$ egrep -v ''^[ ]*#|^$'' /usr/local/apache2/conf/httpd.conf | nl ## 查看apache服务器的配置
## 将apache加入系统服务
vi /etc/rc.d/rc.local
```
/usr/local/programs/apache2/bin/apachectl start
```
$ cat /etc/rc.local
登录后复制

4. 安装postgresql

立即学习“PHP免费学习笔记(深入)”;

$ yum install readline-devel  ## 安装readline依赖
$ cd /usr/downloads
$ wget -c https://ftp.postgresql.org/pub/source/v9.5.0/postgresql-9.5.0.tar.bz2
$ tar -xvf postgresql-9.5.0.tar.bz2
$ cd postgresql-9.5.0
$ ./configure --prefix=/usr/local/programs/postgresql
$ make
$ su
$ make install
$ /sbin/ldconfig /usr/local/programs/postgresql/lib ## 刷新下共享动态库
$ cd /usr/local/programs/postgresql
$ bin/psql --version  ## 检查运行情况
## 开始对postgresql的配置
$ vi /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge
``` 
PATH=/usr/local/programs/postgresql:$PATH
export PATH
```
$ source /etc/profile ## 更新环境变量

## 增加用户和其他文件夹
$ adduser postgres
$ passwd postgres 
$ mkdir /usr/local/programs/postgresql/logs
$ mkdir /usr/local/programs/postgresql/data
$ chown postgres /usr/local/programs/postgresql/data
$ su - postgres

## 初始化数据库
$ ./bin/initdb -D ./data
$ ./bin/createdb test
$ ./bin/psql test
## 已有数据库,可导入data文件夹后尝试root访问,假如带密码,可能需要进一步研究下
$ ./bin/postgres -D ./data &gt;./logs/start-log-1.log 2&gt;&amp;1 &amp;
$ ./bin/psql --list  ##列出数据库
## ok,安装完成

## 自定义设置,权限控制等,可以跳过,等熟悉使用后再做
## 编辑数据库配置及权限文件:
$ vi /usr/local/programs/postgresql/data/postgresql.conf   ## 数据库配置文件
$ chown postgres postgresql.conf
$ chmod 644 postgresql.conf
$ vi /usr/local/programs/postgresql/data/pg_hba.conf   ## 权限文件
$ vi /usr/local/programs/postgresql/data/pg_ident.conf

## 设置开机自启动:
$ vi /etc/rc.d/rc.local    ## 添加如下内容
```
/usr/local/programs/postgresql/bin/postgresql start
```
登录后复制

5. 安装php

## 源码已经在第一步中下载,现在开始安装:
$ yum install libxml2 libxml2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel
$ ./configure \
--prefix=/usr/local/programs/php \
--with-apxs2=/usr/local/programs/apache2/bin/apxs \
--with-zlib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib-dir \
--enable-mbstring \
--with-pgsql=/usr/local/programs/postgresql \
--with-pdo-pgsql=/usr/local/programs/postgresql 
$ make
$ make test
&gt; Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt]  XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags
&gt; Bug #67296 (filter_input doesn''t validate variables) [ext/filter/tests/bug49184.phpt]  XFAIL REASON: See Bug #49184
&gt; Bug #53640 (XBM images require width to be multiple of 8) [ext/gd/tests/bug53640.phpt]  XFAIL REASON: Padding is not implemented yet
&gt; zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
&gt; zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
&gt;Bug #70470 (Built-in server truncates headers spanning over TCP packets) [sapi/cli/tests/bug70470.phpt]  XFAIL REASON: bug is not fixed yet

## 查阅官方的bug,发现:
&gt; id=66582: status : Closed. Fixed in master (PHP7)
&gt; id=42718: status : Assigned
&gt; id=42718: reference to id=49184, unsolved for many years
## 那就不关心了,直接装吧
$ make install
&gt; You may want to add: /usr/local/programs/php/lib/php to your php.ini include_path

## 那就按它说的设置吧
$ cp php.ini-development /usr/local/programs/php/lib/php.ini
```
include_path = ".;/usr/local/programs/php/lib/php"

## 然后,编辑httpd的设置,确保其能正确解析php文件
```
...
LoadModule php5_module modules/libphp5.so
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php5

...
<ifmodule dir_module>
    DirectoryIndex index.html index.php
</ifmodule>     
```

## 重启httpd,测试
$ cd /usr/local/programs/apache2
$ bin/httpd -h
$ bin/httpd -k stop
$ bin/httpd -f conf/httpd.conf
## 默认设置的www页面在./htdocs/下,那就先去里面建一个测试页面吧
$ vi htdocs/index.php
```
<?php phpinfo(); ?>
```
$ curl http://localhost/index.php |grep postgresql
#ok
登录后复制

后续应该做的事

* 1. 启动时,不需要要手动指定配置文件
* 2. php初始化www目录设置
* 3. php 用户、权限管理等

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了centos 7下源码编译安装php支持PostgreSQL,包括了postgresql,centos 7方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

check_postgres.pl插件监控postgresql数据库

check_postgres.pl插件监控postgresql数据库


check_postgres.pl插件监控postgresql数据库:


下载网址:


https://exchange.nagios.org/directory/Plugins/Databases/Postgresql/check_postgres/details



# tar zxfv check_postgres-2.11.1.tar.gz

# rsync -av check_postgres-2.11.1/check_postgres.pl /usr/lib/nagios/plugins/



显示数据库aa的连接数:

# /usr/lib/nagios/plugins/check_postgres.pl --output=nagios -H 127.0.0.1 -db aa --dbuser=user --dbpass=xxxx --action=backends -w=120 -c=150


显示数据库aa的大小(占用空间):

# /usr/lib/nagios/plugins/check_postgres.pl --output=nagios -H 127.0.0.1 -db aa --dbuser=user --dbpass=xxxx --action=database_size -w=1T -c=2T


显示数据库aa的查询时间(默认w为120s,c为300s):

# /usr/lib/nagios/plugins/check_postgres.pl --output=nagios -H 127.0.0.1 -db aa --dbuser=user --dbpass=xxxx --action=query_time


集成到nrpe、icinga2略

Greenplum与PostgreSQL社区双管齐下,谁是PostgreSQL 13 中国的

Greenplum与PostgreSQL社区双管齐下,谁是PostgreSQL 13 中国的"头号玩家"?

了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站

9月24日,PostgreSQL全球开发组宣布PostgreSQL 13 正式发布!作为世界上最流行的开源数据库之一,PostgreSQL起源于加利福尼亚大学伯克利分校,得益于全球开发者社区超过25年的开源开发,它已成为一款以其可靠性和健壮性著称、优秀的单机开源数据库产品。PostgreSQL的新版本在索引和查找方面进行了重大改进,改进包括索引的空间节省和性能提高,使用聚合或分区的查询时响应更快,使用增强的统计信息时查询计划更优等。

众所周知,Greenplum是一款基于PostgreSQL内核的开源分布式MPP数据库。自创建以来,Greenplum针对大数据场景和用户需求开发了众多优秀特性并做了极致优化。Greenplum紧密拥抱Postgres社区,以敏捷的方式快速升级Postgres内核,并已于9月22日,花费半年多跨越三个大版本,完成了9.6到12的内核升级。

不仅如此,Greenplum团队双管齐下,同时致力于对PostgreSQL社区的贡献。虽非专职Postgresql 团队,但Greenplum中国团队一直都是国内PostgreSQL代码提交最多、质量最高的团队,是名副其实的“头号玩家”。

PG12的贡献者纪念奖章

据统计,在PostgreSQL 13中,Greenplum中国团队共贡献了26个patch,相关功能15个。具体信息请查看下表,点击阅读原文查看相关讨论邮件链接。

目前,Greenplum研发团队正在致力于Postgresql 12内核升级的后续整理工作,对稳定性和性能进行更多的测试和优化,从而打造更加强大的Greenplum内核“骨架”,在Greenplum 7中为大家带来更多的惊喜。同时,Greenplum中国团队也会继续在两个Greenplum和Postgresql两个社区双管齐下,积极参与Postgresql社区的贡献,作中国的头号玩家

image

Plv8js —— 用 JavaScript 编写 PostgreSQL 函数

Plv8js —— 用 JavaScript 编写 PostgreSQL 函数

plv8js 是一个 PostgreSQL 的存储过程语言的扩展,也就是说你可以用 JavaScript 来编写 PostgreSQL 的函数,使用 Google 的 V8 引擎。

关于postgresql plv8 安装的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、check_postgres.pl插件监控postgresql数据库、Greenplum与PostgreSQL社区双管齐下,谁是PostgreSQL 13 中国的"头号玩家"?、Plv8js —— 用 JavaScript 编写 PostgreSQL 函数的相关知识,请在本站寻找。

本文标签: