データベースの構成¶
序言:序言¶
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接続を名前順に参照することを可能にする技術である.
JNDIをアクティブにするためには、JNDIデータベースタイプをアクティブにする必要があります
/WEB-INF/config-node/srv.xml
それがそうです。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つの選択肢があります
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
“.”を含む正確な環境変数を設定する.多くの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および環境は有利です。