ingo@3661: \section{Übersicht} ingo@3661: ingo@3661: Diese Dokumentation beschreibt die von Intevation entwickelten Werkzeuge zum ingo@3661: Importieren der hydrologischen, morphologischen und geodätischen Daten der BfG. tom@6669: Die im Folgenden beschriebenen Werkzeuge zum Importieren der Daten sind speziell auf das Verzeichnissystem der BfG ausgerichtet. ingo@3668: Dabei wird angenommen, dass sich das Verzeichnis eines Gewässers auf oberster ingo@3668: Ebene in drei Unterverzeichnisse aufgliedert: ingo@3668: ingo@3668: \begin{itemize} ingo@3668: \item Geodaesie ingo@3668: \item Hydrologie ingo@3668: \item Morphologie ingo@3668: \end{itemize} ingo@3668: ingo@3661: Desweiteren beziehen sich die Befehle, die auf der Kommandozeile abgesetzt ingo@3678: werden, auf ein SuSE-Linux-Enterprise-Server Version 11. Bitte beachten Sie ingo@3678: auch, dass einige der Befehle \textit{root}-Rechte benötigen. ingo@3661: ingo@3661: \subsection{Vorbereitungen} ingo@3661: ingo@3661: \subsubsection{Entpacken des Datenimporters} ingo@3661: ingo@3661: Damit die Software performant und korrekt ausgeführt werden kann, ist es felix@5041: erforderlich, dass sie auf dem selben System wie die Datenbank installiert felix@5041: und ausgeführt wird. felix@5041: Sollten Sie das Paket nicht auf dem ingo@3661: Zielsystem selbst heruntergeladen haben, sind ggf. weitere Werkzeuge notwendig. felix@5041: Wenn Sie von einem Windows System auf das Zielsystem zugreifen ingo@3661: wollen, können Sie beispielsweise folgende Werkzeuge verwenden: ingo@3661: ingo@3661: \begin{itemize} ingo@3661: \item WinSCP \\ ingo@3661: WinSCP ist ein Open Source Werkzeug zum Transferieren von Dateien zwischen zwei ingo@3661: Systemen. Um das heruntergeladene Paket auf das Zielsystem zu transferieren, ingo@3661: können Sie WinSCP benutzen. Für weitere Informationen und den Gebrauch von ingo@3661: WinSCP lesen Sie bitte unter folgender Adresse nach: ingo@3661: \href{http://winscp.net/}{http://winscp.net/}. ingo@3661: ingo@3661: \item Putty \\ ingo@3661: Putty ist ein Open Source Werkzeug, mit dem Sie sich von einem Windows System ingo@3661: per SSH auf das Zielsystem verbinden können. Anschließend können Sie über die ingo@3661: Kommandozeile auf dem Zielsystem die Befehle, die in diesem Dokument beschrieben ingo@3661: sind, ausführen. Für weitere Informationen zu Putty und dessen Gebrauch lesen ingo@3661: Sie bitte unter folgender Adresse nach: \href{http://www.putty.org/} ingo@3661: {http://www.putty.org/}. ingo@3661: \end{itemize} ingo@3661: ingo@3661: Bitte beachten Sie, dass diese Werkzeuge nicht zur Installtion und zum Betrieb ingo@3661: der Software selbst notwendig sind! ingo@3661: aheinecke@5065: \subsection{Systemanforderungen} aheinecke@5065: \label{Systemanforderungen} aheinecke@5065: \begin{itemize} aheinecke@5065: \item Oracle oder PosgreSQL Datenbank inkl. Schema für FLYS aheinecke@5065: \item SUSE Enterprise Linux 11.2 SP 1 aheinecke@5065: \end{itemize} ingo@3661: aheinecke@5065: \subsection{Installationsanleitung} aheinecke@5065: \label{Installationsanleitung} ingo@3661: ingo@3672: Nachdem Sie das Paket nun in das Heimatverzeichnis des Nutzers auf das ingo@3672: Zielsystem kopiert haben, entpacken Sie es mit folgenden Befehlen: ingo@3672: ingo@3672: \begin{lstlisting} ingo@3672: cd ~ ingo@3672: tar xvfz flys-importer.tar.gz ingo@3672: cd flys-importer ingo@3672: \end{lstlisting} ingo@3672: aheinecke@5075: \subsubsection{Java} tom@6669: Der flys-importer benötigt Java Version 6. Um diese zu installieren laden Sie aheinecke@5065: bitte von \url{http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html} aheinecke@5065: eine aktulle Java Version als -rpm.bin herunter. Zum Beispiel: jdk-6u41-linux-x64-rpm.bin aheinecke@5065: aheinecke@5065: Nach dem Herunterladen, öffnen Sie eine konsole und wechseln in das Downloadverzeichnis. aheinecke@5065: Führen Sie nun folgende Befehle aus: aheinecke@5065: aheinecke@5065: \begin{lstlisting} aheinecke@5065: su - # login als root aheinecke@5065: sh jdk-6u41-linux-x64-rpm.bin aheinecke@5065: aheinecke@5065: update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_41/bin/java 5 aheinecke@5065: update-alternatives --install /etc/alternatives/jre jre /usr/java/jdk1.6.0_41/jre 5 aheinecke@5065: update-alternatives --config java aheinecke@5065: \end{lstlisting} aheinecke@5065: aheinecke@5075: \subsubsection{Python und GDAL} aheinecke@5065: Installieren Sie nun die restlichen benötigten Pakete. aheinecke@5065: Dazu installieren Sie zuerst einige Abhängigkeiten und anschließend die aheinecke@5065: von der Intevation GmbH bereitgestellten speziellen Versionen von proj und libgeos aheinecke@5065: aheinecke@5065: Um die Abhängigkeiten zu installieren führen Sie bitte folgende Befehle aus: aheinecke@5065: aheinecke@5065: \begin{lstlisting} aheinecke@5065: zypper ar http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/ "intevation:bfg" aheinecke@5065: rpm --import http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/repodata/repomd.xml.key tom@6669: zypper ref # Paketliste neu laden tom@6670: zypper in python libgeos0 libproj0 proj netcdf \ tom@6670: libnetcdf4 xerces-c libxerces-c-3_0 unixODBC \ tom@6670: postgresql-libs aheinecke@5065: zypper mr -d "intevation:bfg" aheinecke@5065: zypper ref # Paketliste neu laden aheinecke@5065: \end{lstlisting} aheinecke@5065: aheinecke@5065: %\subsubsection Oracle Instantclient\\ aheinecke@5065: %Der Oracle Instantclient 11.2.0.2.0 wird benötigt, damit der Importer mittels Python aheinecke@5065: %und GDAL in die bestehende Oracle Datenbqlnk schreiben kann. Wenn Sie aheinecke@5065: %eine PosgreSQL Datenbank verwenden, können Sie diesen Schritt überspringen. aheinecke@5065: % aheinecke@5065: %Zur Anbindung von Oracle ist es erforderlich, folgende Archive von aheinecke@5065: %Oracle herunterzuladen (Sie benötigen dafür ein Oracle Benutzerkonto): aheinecke@5065: % aheinecke@5065: %Der Oracle Instantclient 11.2 wird benötigt, damit der Importer mittels Python aheinecke@5065: %und GDAL in die bestehende Oracle Datenbank schreiben kann. Dazu ist es aheinecke@5065: %erforderlich, folgende Archive von Oracle herunterzuladen. aheinecke@5065: % aheinecke@5065: % \begin{itemize} aheinecke@5065: % \item instantclient-basic-linux-x86-64-11.2.0.2.0.zip aheinecke@5065: % \item instantclient-sdk-linux-x86-64-11.2.0.2.0.zip aheinecke@5065: % \item instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip aheinecke@5065: % \end{itemize} aheinecke@5065: % aheinecke@5065: %Zu finden sind die aheinecke@5065: % Pakete unter:\\ aheinecke@5065: %\href{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html} aheinecke@5065: %{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html} aheinecke@5065: % aheinecke@5065: % aheinecke@5065: %Um diese Pakete zu installieren, öffnen Sie eine Konsole und wechseln aheinecke@5065: %in das Verzeichnis in welches Sie die heruntergeladenen Pakete aheinecke@5065: %gespeichert haben. (z.B.: cd /home/benutzername/Downloads ) aheinecke@5065: % Anschließend führen Sie folgende Befehle auf der Kommandozeile aus: aheinecke@5065: % aheinecke@5065: % \begin{lstlisting} aheinecke@5065: % unzip instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt aheinecke@5065: % unzip instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt aheinecke@5065: % unzip instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt aheinecke@5065: % aheinecke@5065: % mkdir /opt/instantclient_11_2/lib aheinecke@5065: % cd /opt/instantclient_11_2/lib aheinecke@5065: % ln -s ../libclntsh.so.11.1 . aheinecke@5065: % ln -s ../libclntsh.so.11.1 libclntsh.so aheinecke@5065: % ln -s ../libnnz11.so . aheinecke@5065: % ln -s ../libocci.so.11.1 . aheinecke@5065: % ln -s ../libocci.so.11.1 libocci.so aheinecke@5065: % ln -s ../libociei.so . aheinecke@5065: % ln -s ../libocijdbc11.so . aheinecke@5065: % ln -s ../libsqlplusic.so . aheinecke@5065: % ln -s ../libsqlplus.so . aheinecke@5065: % aheinecke@5065: % echo "/opt/instantclient_11_2/lib/" > /etc/ld.so.conf.d/oci.conf aheinecke@5065: % ldconfig aheinecke@5065: % \end{lstlisting} aheinecke@5065: % aheinecke@5065: %Sollten keine Fehler aufgetreten sein, haben Sie den \textit{Oracle aheinecke@5065: % Instantclient 11.2} erfolgreich entpackt und im Dateisystem unter aheinecke@5065: % \textit{/opt/instantclient\_11\_2} abgelegt. aheinecke@5065: % aheinecke@5065: \subsubsection{Vorbereiten der Datenbank} ingo@3661: Bevor die Importer verwendet werden können, ist es notwendig, dass eine leere tom@5877: Oracle Datenbank vorhanden ist. Anschließend müssen folgende SQL-Skripte in ingo@3661: diese Datenbank eingespielt werden: ingo@3661: ingo@3661: \begin{enumerate} ingo@3661: \item oracle.sql \\ ingo@3661: In diesem SQL Skript befindet sich das Schema zum Speichern der hydrologischen ingo@3661: Daten. ingo@3661: ingo@3661: \item oracle-minfo.sql \\ ingo@3661: In diesem SQL Skript befindet sich das Schema zum Speichern der morphologischen ingo@3661: Daten. ingo@3661: ingo@3661: \item oracle-spatial.sql \\ ingo@3661: In diesem SQL Skript befindet sich das Schema zum Speichern der geodätischen ingo@3661: Daten. ingo@3661: ingo@3661: \item oracle-spatial\_idx.sql \\ ingo@3661: Mittels diesem SQL Skript werden die Indizes zum geodätischen Datenbankschema\\ ingo@3661: hinzugefügt. ingo@3661: ingo@3661: \end{enumerate} ingo@3661: ingo@3672: Zum Einspielen dieser Schemata setzen Sie folgende Befehle auf der Kommandozeile ingo@3672: ab. Beachten Sie, dass $sqlplus$ im Pfad liegen muss, und der Linux-Nutzer felix@5041: dieses Kommando ausführen können muss. Außerdem sind $benutzername$ und $passwort$ ingo@3672: entsprechend Ihres Datenbank-Zugangs anzupassen. aheinecke@5065: SQLPlus befindet sich in /opt/instantclient\_11\_2 um es verfügbar zu machen aheinecke@5065: führen Sie im Importer Verzeichnis folgende Befehle aus: aheinecke@5065: aheinecke@5065: \begin{lstlisting} tom@6670: export LD_LIBRARY_PATH=opt/instantclient_11_2/lib:$LD_LIBRARY_PATH tom@6670: export PATH=opt/instantclient_11_2:$PATH aheinecke@5065: \end{lstlisting} aheinecke@5065: tom@5877: Damit alle in den UTF8-codierten SQL-Skripten vorhandenen Zeichen (also z.B.\ tom@5877: auch Umlaute) korrekt in die Datenbank eingelesen werden können, führen tom@5877: Sie folgenden Befehl aus: tom@5877: tom@5877: \begin{lstlisting} tom@5877: export NLS_LANG=.AL32UTF8 tom@5877: \end{lstlisting} tom@5877: tom@6631: Nun verbinden Sie sich mit der Datenbank tom@6631: \begin{lstlisting} tom@6633: sqlplus user/password@connect_identifier tom@6631: \end{lstlisting} tom@6631: tom@6631: und erstellen das Schema: ingo@3667: ingo@3661: \begin{lstlisting} tom@6631: @schema/oracle.sql tom@6631: @schema/oracle-minfo.sql tom@6631: @schema/oracle-spatial.sql tom@6631: @schema/oracle-spatial_idx.sql ingo@3661: \end{lstlisting} ingo@3661: tom@6633: Hierbei ist tom@6633: \begin{lstlisting} tom@6633: user/password@connect_identifier tom@6633: \end{lstlisting} tom@6633: so etwas wie tom@6633: \begin{lstlisting} tom@6633: ICH/geheim@127.0.0.1:1234/DB.TEST.FIRMA.DE tom@6633: \end{lstlisting} tom@6631: tom@6631: Um sqlplus zu verlassen verwenden Sie tom@6631: \begin{lstlisting} tom@6631: exit tom@6631: \end{lstlisting}