日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

将PostgreSQL PL / Java安装为PostgreSQL扩展

發(fā)布時(shí)間:2023/12/3 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将PostgreSQL PL / Java安装为PostgreSQL扩展 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在2011年,我在PostgreSQL PL / Java上寫(xiě)了一系列文章。 基本信息仍然可靠,但是現(xiàn)在有了一種從源代碼安裝PL / Java的簡(jiǎn)便方法。 這也消除了依賴(lài)第三方來(lái)創(chuàng)建軟件包的需要。 這些注釋將非常簡(jiǎn)短,因?yàn)槲艺J(rèn)為我的讀者已經(jīng)對(duì)git和maven熟悉了。

(注意:我已將此信息傳遞給PL / Java團(tuán)隊(duì),因此在您閱讀本文時(shí),它可能已經(jīng)被處理。)

執(zhí)行基本構(gòu)建

  • 克隆PL / Java存儲(chǔ)庫(kù), 網(wǎng)址為https://github.com/tada/pljava 。
  • 運(yùn)行Maven 不能使。
  • 利潤(rùn)!
  • 當(dāng)然不是那么簡(jiǎn)單。 Maven可以引入自己的依賴(lài)關(guān)系,但是除了標(biāo)準(zhǔn)的GNU工具鏈之外,我們?nèi)匀恍枰獛讉€(gè)專(zhuān)門(mén)的庫(kù)。 在我的Ubuntu系統(tǒng)上,我需要:

    • PostgreSQL服務(wù)器開(kāi)發(fā)9.4
    • libpg開(kāi)發(fā)
    • libpgtypes3
    • libecpg開(kāi)發(fā)

    (我不知道RedHat / Fedora / CentOS的相應(yīng)軟件包名稱(chēng)。)

    可能需要進(jìn)行一些試驗(yàn),但是確定所需的所有軟件包并不難。 只要記住,您通常會(huì)需要帶有“ -dev”擴(kuò)展名的軟件包。

    編譯器有很多警告和錯(cuò)誤,但大多數(shù)(如果不是全部的話)似乎與符號(hào)轉(zhuǎn)換有關(guān)。 這值得進(jìn)一步調(diào)查-符號(hào)轉(zhuǎn)換警告表明惡意用戶可能會(huì)攻擊該網(wǎng)絡(luò)-但就目前而言,只要maven成功,我們就可以了。 我們需要三個(gè)文件:

    ./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

    復(fù)制文件

    現(xiàn)在,我們可以將三個(gè)文件復(fù)制到它們各自的位置。

    $ 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”命令學(xué)習(xí)正確的目標(biāo)目錄。

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

    我將版本從0.0.2-SNAPSHOT更改為1.4.4,因?yàn)槲覀円东@PL / Java版本,而不是pom.xml版本。 我希望這些很快會(huì)保持同步。

    編輯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';

    重要的是要記住,每個(gè)數(shù)據(jù)庫(kù)連接都有一個(gè)實(shí)例化的唯一JVM。 當(dāng)您同時(shí)具有20個(gè)以上的連接時(shí),內(nèi)存消耗可能成為主要問(wèn)題。

    創(chuàng)建pljava.control文件

    我們必須將新擴(kuò)展名告訴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可見(jiàn)

    我們通常通過(guò)JAVA_HOME環(huán)境變量指定Java二進(jìn)制文件和共享庫(kù)的位置。 這不是數(shù)據(jù)庫(kù)服務(wù)器的選項(xiàng)。

    有兩種方法取決于您是否要使Java共享庫(kù)(libjvm.so)對(duì)所有應(yīng)用程序或僅對(duì)數(shù)據(jù)庫(kù)服務(wù)器可見(jiàn)。 我認(rèn)為前者最簡(jiǎn)單。

    我們需要?jiǎng)?chuàng)建一個(gè)文件

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

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

    其中大多數(shù)路徑名來(lái)自JAVA_HOME。 您的系統(tǒng)上的位置可能不同。 該目錄必須包含共享庫(kù)“ libjvm.so”。

    我們還必須告訴系統(tǒng)刷新其緩存。

    $ 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

    加載擴(kuò)展

    現(xiàn)在,我們可以輕松地加載和卸載PL / Java。

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

    萬(wàn)一出現(xiàn)薄脆...

    如果系統(tǒng)看起來(lái)不穩(wěn)定,您可以將兩個(gè)“ 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

    總結(jié)

    以上是生活随笔為你收集整理的将PostgreSQL PL / Java安装为PostgreSQL扩展的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。