pl/postgresql_将PostgreSQL PL / Java安装为PostgreSQL扩展
pl/postgresql
在2011年,我在PostgreSQL PL / Java上撰写了一系列文章。 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便得多的方法。 这也消除了依赖第三方来创建软件包的需要。 由于我的读者已经熟悉git和maven,因此这些注释将非常简短。
(注意:我已将此信息传递给PL / Java团队,因此在您阅读本文时,它可能已经被处理。)
执行基本构建
- 克隆位于https://github.com/tada/pljava的PL / Java存储库。
- 运行Maven 不能使。
- …
- 利润!
当然不是那么简单。 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扩展相关推荐
- 将PostgreSQL PL / Java安装为PostgreSQL扩展
在2011年,我在PostgreSQL PL / Java上写了一系列文章. 基本信息仍然可靠,但是现在有了一种从源代码安装PL / Java的简便方法. 这也消除了依赖第三方来创建软件包的需要. 这 ...
- PostgreSQL PL / java简介
现代数据库允许以多种语言编写存储过程. 一种常见的实现语言是java.NB,本文讨论了PostgreSQL特定的Java实现. 其他数据库的详细信息会有所不同,但是概念是相同的. PL / Java的 ...
- PL/SQL developer的下载、安装、使用、破解,亲自测试。安全使用。
这篇文章是建立在安装完oracle之后的紧接着安装的 PL/SQL developer 如果还没有安装oracle,请看我的博客: oracle 11g的下载.安装.使用.完整版.亲自使用 https ...
- pl/sql:oracle13(跟着宝哥学java:oracle系列:全网最全):pl/sql语法、pl/sql流程控制
/* PL/SQL过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的数据库编程语言PL提供流程控制的语句SQL提供访问数据库的语句PL/SQL是对sql的扩展 使其 ...
- Postgresql学习04-pg_hint_plan安装及使用、Sql优化小知识
一.环境 名称 版本 操作系统 Centos7.9 Postgresql 14.4 pg_hint_plan 1.4 二.下载链接 pg_hint_plan下载地址 三.pg_hint_plan用途 ...
- benchmark在postgresql上的安装及使用
BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB.PostgreSQL.MySQL.Oracle以及SQL Server等数据库直接进行测 ...
- windows10下postgreSQL 下载、安装、启动、关闭
windows10下postgreSQL 下载.安装.启动.关闭 下载 安装 l设置密码和端口,一直next直到安装完成 环境变量
- CentOS6.9编译安装postgresql和php的pdo_pgsql,pgsql扩展
1.安装依赖 yum install gcc gcc-c++ make readline-devel flex zlib-devel 2.下载源码,解压 创建源码存放目录 mkdir -p /usr/ ...
- linux java的安装目录,linux java 安装目录
linux java 安装目录 [2021-02-01 05:04:30] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...
最新文章
- airpods固件更新方法_苹果AirPods 2 和 AirPods Pro固件升级
- VS Code阅读Android源码
- 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
- 爱立信物联网加速器让各行业玩转数据
- 循环数组对象 php,PHP循环遍历stdClass对象的数组
- inur new.php id,Cmsez(随易)全站系统 0day
- cmd进入mysql界面的命令
- 利用 Web Share API 将网页分享到 App(下)
- MySQL之可视化软件
- CAD二次开发——cad查看对象C#:MdgDbg.dll
- Internet选项里没有常规选项卡
- es python search 返回_Elasticsearch - python操作es,以及curl命令查询es的总结
- win10磁盘管理_一步一步的详细讲解Win10磁盘分区教程
- 墨天轮沙龙 | 麦杰科技卢学东:openPlant 实时数据库系统及应用
- 《后来》可爱MM演唱 视频
- 从山景城看,Android看起来像什么? 关于Google I / O的见解
- CAD调整十字光标的长度
- excel中批量自动生成一个月内日期和时间
- 小程序开发外包公司哪家好?
- Android 基于libaums实现读写U盘文件
热门文章
- P6835-[Cnoi2020]线形生物【期望dp】
- P1983-车站分级【图论,记忆化dfs,构图】
- USACO2.4のP1522-牛的旅行(Cow Tours)【最短路Flody】
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Yiwen with Formula(任意模数FFT)
- 【LCT】历史(P4338)
- SPOJ1812 LCS2
- MongoDB SpringBoot ObjectId序列化json为String
- SpringBoot2.1.9 多Kafka消费者配置
- 使用ueditor实现多图片上传案例——截取字符串层Util(SubString_text)
- Python解决中文乱码问题