データベースの構成

序言:序言

GeoNetwork uses a database to persist aspects such as metadata records, privileges and configurations. The database default structure is created by the application on initial startup. Subsequent releases of GeoNetwork will update the database structure automatically. For this reason the database user initially needs create privileges on the database. A number of database dialects are supported; H2, PostgreSQL, PostGIS, Oracle, SQL Server. This section describes various options to configure the database connection.

H 2データベース

デフォルトの場合、1つは H2 データベースは、アプリケーションの最初の起動時に構成されて作成されます。H 2データベースと呼ばれています gn.h2.db 作成されました:

  • はい。 jetty 使用時には,GeoNetworkアプリケーションフォルダのフォルダを用いる. ZIP distribution それがそうです。

  • はい。 bin 導入時にはTomcatフォルダを使用 WAR Tomcatで使用開始 startup.sh )。

注釈

君は知らない need ローカルH 2データベースに満足している場合は、データベースを構成してください。構成は、リモートデータベースにデータを格納したい場合にのみ変更されます。

プロファイル構成データベースによる

データベース方言は中に配置されています /WEB-INF/config-node/srv.xml それがそうです。使う方言への注釈を取り消します。

PostgreSQL,Oracle,H 2用のJDBCドライバを含む.他の方言はJDBCドライバをインストールする必要があります。この方言のJDBCライブラリをダウンロードして入れます /WEB-INF/lib TomcatやGeoNetwork libフォルダにある.

接続詳細を更新するには、関連接続情報を用いて|jdbc.properties|ファイルを更新してください。

GeoNetworkは,データがユーザのデフォルトアーキテクチャに格納されていると仮定する.そうでなければ、設定を起動する必要があります hibernate.default_schema はい。 /WEB-INF/config-spring-geonetwork.xml それがそうです。初期化時に直接データベース上で動作するスクリプトもあり、使用できません hibernate.default-schema パラメータです。これらのスクリプトの場合、デフォルトモードを手動で設定する必要があります。PostgreSQLでは ?currentSchema=example データベース接続に接続します。

JNDIによるデータベースの構成

Java命名とディレクトリインタフェース(JNDI)は,Tomcatにデータベースを構成し,JNDI接続を名前順に参照することを可能にする技術である.

  1. JNDIをアクティブにするためには、JNDIデータベースタイプをアクティブにする必要があります /WEB-INF/config-node/srv.xml それがそうです。

  2. TomcatにJNDIコネクションを配置し,メソッドは新しい資源を追加する. TOMCAT/conf/context.xml それがそうです。香港の波止場のために設置されている WEB-INF/jetty-env.xml それがそうです。

    <Resource name="geonetwork"
        type="javax.sql.DataSource"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/geonetwork"
        username="xxxxx" password="xxxxxx"
        maxActive="20"
        />
    

環境によるデータベースの構成

Dockerなどの容器環境では,環境変数により配置属性を設定することが一般的である.2つの選択肢があります

  1. JAVA_OPTSを置き換えることでパラメータをJava環境に直接追加する.

    docker run --rm --name gn -p 8080:8080 -e JAVA_OPTS="
        -Dgeonetwork.db.type=postgres
        -Djdbc.database=example
        -Djdbc.username=example
        -Djdbc.password=xxx
        -Djdbc.host=localhost
        -Djdbc.port=5432" geonetwork:latest
    
  2. “.”を含む正確な環境変数を設定する.多くのGeoNetwork配置パラメータには1つの点が含まれており,環境変数による置換には挑戦である.Dockerはここでは例外であり,環境変数でドットを使用することを可能にする機構を提供する.

    docker run --rm --name gn -p 8080:8080
        -e geonetwork.db.type=postgres
        -e jdbc.database=example
        -e jdbc.username=example
        -e jdbc.password=xxx
        -e jdbc.host=localhost
        -e jdbc.port=5432 geonetwork:latest
    

PostgreSQLでは、構成可能 postgres あるいは…。 postgis それがそうです。後者の場合,GeoNetworkはPostGISの空間機能を用いてメタデータをフィルタリングする.第1の場合(他のデータベース方言の場合)には、メタデータカバーレートを格納するためのshapefileが作成される。

ログ記録.

データベース接続およびクエリに関するより詳細な情報を見るためには、ログをデバッグレベルに切り替えることができます。 source file web/src/main/webapp/WEB-INF/classes/log4j.xml (または参照 ディレクトリサーバ >ログレベル)。

<logger name="org.hibernate.SQL" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="fileAppender" />
</logger>
<logger name="org.hibernate.type" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="fileAppender" />
</logger>
<logger name="org.hibernate.tool.hbm2ddl" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="consoleAppender" />
    <appender-ref ref="fileAppender" />
</logger>

要約.要約

GeoNetworkにデータベースを配置するには様々な方法がある.新しいバージョンに更新したり、データベースを変更したりする際に、アプリケーションファイルに触れる必要がないので、JNDIおよび環境は有利です。