pl/postgresql

在2011年,我在PostgreSQL PL / Java上撰写了一系列文章。 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便得多的方法。 这也消除了依赖第三方来创建软件包的需要。 由于我的读者已经熟悉git和maven,因此这些注释将非常简短。

(注意:我已将此信息传递给PL / Java团队,因此在您阅读本文时,它可能已经被处理。)

执行基本构建

  1. 克隆位于https://github.com/tada/pljava的PL / Java存储库。
  2. 运行Maven 不能使。
  3. 利润!

当然不是那么简单。 Maven可以引入自己的依赖关系,但是除了标准的GNU工具链之外,我们仍然需要几个专门的库。 在我的Ubuntu系统上,我需要:

  • PostgreSQL服务器开发9.4
  • libpg开发
  • libpgtypes3
  • libecpg开发

(我不知道RedHat / Fedora / CentOS的相应软件包名称。)

可能需要进行一些试验,但是确定所需的所有软件包并不难。 只要记住,您通常会需要带有“ -dev”扩展名的软件包。

有大量的编译器警告和错误,但大多数(如果不是全部的话)似乎与符号转换有关。 这值得进一步调查-信号转换警告表明恶意用户可能会发动攻击-但就目前而言,只要maven成功,我们就可以了。 我们需要三个文件:

./src/sql/install.sql
./pljava/target/pljava-0.0.2-SNAPSHOT.jar
./pljava-so/target/nar/pljava-so-0.0.2-SNAPSHOT-i386-Linux-gpp-shared/lib/i386-Linux-gpp/shared/libpljava-so-0.0.2-SNAPSHOT.so

复制文件

现在,我们可以将三个文件复制到它们各自的位置。

$ sudo cp ./pljava-so/target/nar/pljava-so-0.0.2-SNAPSHOT-i386-Linux-gpp-shared/lib/i386-Linux-gpp/shared/libpljava-so-0.0.2-SNAPSHOT.so \/usr/lib/postgresql/9.4/lib/pljava.so$ sudo cp ./pljava/target/pljava-0.0.2-SNAPSHOT.jar /usr/share/postgresql/9.4/extension/pljava--1.4.4.jar$ sudo cp ./src/sql/install.sql /usr/share/postgresql/9.4/extension/pljava--1.4.4.sql

我们可以使用“ pg_config”命令学习正确的目标目录。

$ pg_config
PKGLIBDIR = /usr/lib/postgresql/9.4/lib
SHAREDIR = /usr/share/postgresql/9.4
...

我将版本从0.0.2-SNAPSHOT更改为1.4.4,因为我们要捕获PL / Java版本,而不是pom.xml版本。 我希望这些很快会保持同步。

编辑pljava–1.4.4.sql

我们需要在安装sql中添加两行:

SET PLJAVA.CLASSPATH='/usr/share/postgresql/9.4/extension/pljava--1.4.4.jar';
SET PLJAVA.VMOPTIONS='-Xms64M -Xmx128M';

重要的是要记住,每个数据库连接都有一个实例化的唯一JVM。 当您同时具有20个以上的连接时,内存消耗可能成为主要问题。

创建pljava.control文件

我们必须告诉PostgreSQL新扩展。 这由控制文件处理。

/usr/share/postgresql/9.4/extension/pljava.control

# pljava extension
comment = 'PL/Java bundled as an extension'
default_version = '1.4.4'
relocatable = false

使libjvm.so可见

我们通常通过JAVA_HOME环境变量指定Java二进制文件和共享库的位置。 这不是数据库服务器的选项。

有两种方法取决于您是否要使Java共享库(libjvm.so)对所有应用程序或仅对数据库服务器可见。 我认为前者是最简单的。

我们需要创建一个文件

/etc/ld.so.conf.d/i386-linux-java.conf

/usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server

其中大多数路径名来自JAVA_HOME。 您的系统上的位置可能不同。 该目录必须包含共享库“ libjvm.so”。

我们还必须告诉系统刷新其缓存。

$ sudo ldconfig
$ sudo ldconfig -p | grep jvmlibjvm.so (libc6) => /usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server/libjvm.solibjsig.so (libc6) => /usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/server/libjsig.so

加载扩展

现在,我们可以轻松地加载和卸载PL / Java。

=> CREATE EXTENSION pljava;
CREATE EXTENSION=> DROP EXTENSION pljava;
DROP EXTENSION

万一出现薄脆...

如果系统看起来不稳定,您可以将两个“ set”命令移至postgresql.conf文件中。

/etc/postgresql/9.4/main/postgresql.conf

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------# Add settings for extensions herePLJAVA.CLASSPATH='/usr/share/postgresql/9.4/extension/pljava--1.4.4.jar'
PLJAVA.VMOPTIONS='-Xms64M -Xmx128M'

翻译自: https://www.javacodegeeks.com/2015/08/installing-postgresql-pljava-as-a-postgresql-extension.html

pl/postgresql

pl/postgresql_将PostgreSQL PL / Java安装为PostgreSQL扩展相关推荐

  1. 将PostgreSQL PL / Java安装为PostgreSQL扩展

    在2011年,我在PostgreSQL PL / Java上写了一系列文章. 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便方法. 这也消除了依赖第三方来创建软件包的需要. 这 ...

  2. PostgreSQL PL / java简介

    现代数据库允许以多种语言编写存储过程. 一种常见的实现语言是java.NB,本文讨论了PostgreSQL特定的Java实现. 其他数据库的详细信息会有所不同,但是概念是相同的. PL / Java的 ...

  3. PL/SQL developer的下载、安装、使用、破解,亲自测试。安全使用。

    这篇文章是建立在安装完oracle之后的紧接着安装的 PL/SQL developer 如果还没有安装oracle,请看我的博客: oracle 11g的下载.安装.使用.完整版.亲自使用 https ...

  4. pl/sql:oracle13(跟着宝哥学java:oracle系列:全网最全):pl/sql语法、pl/sql流程控制

    /* PL/SQL过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的数据库编程语言PL提供流程控制的语句SQL提供访问数据库的语句PL/SQL是对sql的扩展 使其 ...

  5. Postgresql学习04-pg_hint_plan安装及使用、Sql优化小知识

    一.环境 名称 版本 操作系统 Centos7.9 Postgresql 14.4 pg_hint_plan 1.4 二.下载链接 pg_hint_plan下载地址 三.pg_hint_plan用途 ...

  6. benchmark在postgresql上的安装及使用

    BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB.PostgreSQL.MySQL.Oracle以及SQL Server等数据库直接进行测 ...

  7. windows10下postgreSQL 下载、安装、启动、关闭

    windows10下postgreSQL 下载.安装.启动.关闭 下载 安装 l设置密码和端口,一直next直到安装完成 环境变量

  8. CentOS6.9编译安装postgresql和php的pdo_pgsql,pgsql扩展

    1.安装依赖 yum install gcc gcc-c++ make readline-devel flex zlib-devel 2.下载源码,解压 创建源码存放目录 mkdir -p /usr/ ...

  9. linux java的安装目录,linux java 安装目录

    linux java 安装目录 [2021-02-01 05:04:30]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

最新文章

  1. airpods固件更新方法_苹果AirPods 2 和 AirPods Pro固件升级
  2. VS Code阅读Android源码
  3. 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
  4. 爱立信物联网加速器让各行业玩转数据
  5. 循环数组对象 php,PHP循环遍历stdClass对象的数组
  6. inur new.php id,Cmsez(随易)全站系统 0day
  7. cmd进入mysql界面的命令
  8. 利用 Web Share API 将网页分享到 App(下)
  9. MySQL之可视化软件
  10. CAD二次开发——cad查看对象C#:MdgDbg.dll
  11. Internet选项里没有常规选项卡
  12. es python search 返回_Elasticsearch - python操作es,以及curl命令查询es的总结
  13. win10磁盘管理_一步一步的详细讲解Win10磁盘分区教程
  14. 墨天轮沙龙 | 麦杰科技卢学东:openPlant 实时数据库系统及应用
  15. 《后来》可爱MM演唱 视频
  16. 从山景城看,Android看起来像什么? 关于Google I / O的见解
  17. CAD调整十字光标的长度
  18. excel中批量自动生成一个月内日期和时间
  19. 小程序开发外包公司哪家好?
  20. Android 基于libaums实现读写U盘文件

热门文章

  1. P6835-[Cnoi2020]线形生物【期望dp】
  2. P1983-车站分级【图论,记忆化dfs,构图】
  3. USACO2.4のP1522-牛的旅行(Cow Tours)【最短路Flody】
  4. 2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Yiwen with Formula(任意模数FFT)
  5. 【LCT】历史(P4338)
  6. SPOJ1812 LCS2
  7. MongoDB SpringBoot ObjectId序列化json为String
  8. SpringBoot2.1.9 多Kafka消费者配置
  9. 使用ueditor实现多图片上传案例——截取字符串层Util(SubString_text)
  10. Python解决中文乱码问题