Hier geht es darum, einen Server einzurichten, auf dem R-Anwendungen laufen sollen. Die Applikationen werden die Daten aus Oracle- und PostgreSQL-Datenbanken holen und die Ergebnisse in PostgreSQL ablegen. Als Basis dient ein neu installierter Ubuntu Server.
In Teil 1 werden die notwendigen Schritte zur Einrichtung der Datenbankverbindungen erläutert. Teil-2 beschreibt die Installations- und Konfigurationsschritte, die für die Einrichtung der Entwicklungs- und Ausführungsumgebung von R-Anwendungen erforderlich sind.
Voraussetzungen
- Als Basis wird ein Ubuntu-Server mit der Version 22.04 verwendet.
- Des Weiteren ist ein SSH-Zugang zum Server erforderlich.
- Man braucht einen Benutzer mit Sudo-Rechten.
- Die Oracle- und PostgreSQL-Datenbanken müssen netzwerktechnisch freigeschaltet werden.
Updates einspielen
Mit den folgenden drei Befehlen aktualisieren Sie das Ubuntu-System.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
Ich würde vorschlagen, den Server neu zu starten.
$ sudo shutdown -r now
Verbindung zu PostgreS testen
Die Verbindung zur PostgreSQL-Datenbank wird mit dem psql Client getestet. Installieren Sie diesen mit dem folgenden Befehl.
$ sudo apt-get install -y postgresql-client
Verbinden Sie jetzt.
$ psql --port=5432 --host host_name --user db_user --dbname db_name -c "\l"
Password for user db_user:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------+--------------------+----------+-------------+-------------+-----------------------
Installieren Sie Oracle Client
Wechseln Sie mit den folgenden Schritten zu Root, laden Sie die nötige Datei herunter und führen Sie die Installation von Oracle Instant Client aus.
Wechsel zu root :
$ sudo -s
[sudo] password for sudoer_user:
# whoami
root
#
Erstellen Sie nun für den Client einen Ordner unter /opt :
# mkdir /opt/oracle
Laden Sie Oracle Instant Client herunter :
# cd /opt/oracle
# wget https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-basic-linux.x64-23.4.0.24.05.zip
Entpacken Sie die Datei :
# unzip instantclient-basic-linux.x64-23.4.0.24.05.zip
Installieren Sie die Linux asynchronous I/O Library :
# apt update
# apt install libaio1
Fügen Sie den Pfad zum Oracle Instant Client zur Systemkonfiguration hinzu :
# sudo sh -c "echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Fügen Sie den Pfad zum Oracle Instant Client zum LD Library Path hinzu. Erstellen Sie dafür eine .sh-Datei unter dem Pfad /etc/profile.d und geben Sie darin die Umgebungsvariablen an. Damit gilt diese Konfiguration für alle BenutzerInnen.
# cd /etc/profile.d
# nano zusaetzliche_einstellungen.sh
PATH="$PATH:/opt/oracle/instantclient_23_4"
export PATH
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/oracle/instantclient_23_4"
export LD_LIBRARY_PATH
Starten Sie den Server neu :
# shutdown -r now
Lassen Sie die tnsnames.ora und sqlnet.ora Dateien von Ihrem Datenbankadministrator oder Ihrer Datenbankadministratorin zukommen und legen Sie diese unter /opt/oracle/instantclient_23_4/network/admin/ ab.
Verbindung zu Oracle testen
Mit sql*plus testen Sie, ob die Verbindung zur Oracle-Datenbank funktioniert. So sehen Sie sofort, ob der Oracle-Client richtig konfiguriert wurde. Um sql*plus zu installieren, müssen Sie folgende Schritte (als root) ausführen.
# cd /opt/oracle
# wget https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-sqlplus-linux.x64-23.4.0.24.05.zip
# unzip instantclient-sqlplus-linux.x64-23.4.0.24.05.zip
Um sql*plus aufrufen zu können, müssen weitere Umgebungsvariablen gesetzt werden. Diese Einstellungen werden hiermit für alle Benutzer gleichzeitig eingestellt. Dazu wird die früher erstellte zusätzliche_einstellungen.sh Datei erweitert.
Navigieren Sie zum Ordner /etc/profile.d, öffnen Sie die Datei mit einem Text-Editor, zum Beispiel nano, und fügen Sie die folgenden Ungebungsvariablen hinzu.
# cd /etc/profile.d
# nano zusaetzliche_einstellungen.sh
ORACLE_BASE=/opt/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/instantclient_23_4
export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin
export TNS_ADMIN
Starten Sie den Server erneut neu :
# shutdown -r now
Nach der Neuanmeldung gehen Sie direkt zum Ordner der sqlplus-Datei und rufen Sie sie auf.
$ cd /opt/oracle/instantclient_23_4
$ sqplus
SQL*Plus: Release 23.0.0.0.0 - Production on Wed Jun 12 10:36:22 2024
Version 23.4.0.24.05
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Enter user-name: oracle_db_user@instanz
Enter password:
Last Successful login time: Wed Jun 12 2024 10:37:31 +02:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0
SQL> select * from dual;
Installieren Sie Oracle ODBC
Die R-Applikationen werden die Daten aus den zwei Datenbanken PostgreSQL und Oracle über ODBC-Verbindungen abrufen. Dazu muss die Oracle ODBC-Komponente eingerichtet werden.
Installieren Sie die Oracle ODBC-Komponente, indem Sie folgende Schritte als root ausführen:
# cd /opt/oracle
wget https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-odbc-linux.x64-23.4.0.24.05.zip
# unzip instantclient-odbc-linux.x64-23.4.0.24.05.zip
Lesen Sie gegebenenfalls die Readme-Datei:
# cd /opt/oracle/instantclient_23_4
# nano ODBC_README
Installieren Sie unixODBC
In diesem Schritt werden weitere Komponenten installiert, die für den Datentransfer über ODBC erforderlich sind. Führen Sie dazu (als root) die folgenden Befehle aus. Beachten Sie die Schreibweise (Kleinbuchstaben).
# apt install unixodbc
Konfigurieren Sie jetzt die ODBC-Komponente:
# nano /etc/odbcinst.ini
[OracleODBC-23]
Description = Oracle ODBC driver for Oracle 21
Driver = /opt/oracle/instantclient_23_4/libsqora.so.23.1
FileUsage = 1
Driver Logging = 7
Sie müssen eine ODBC-Verbindung zur Oracle-Datenbank definieren:
# nano /etc/odbc.ini
[ODBC_to_ORACLE_INSTANZ]
Driver = OracleODBC-23
DSN = OracleODBC-23
ServerName = INSTANZ
UserID = oracle_db_user
Password = <Kennwort_des_oracle_db_users>
Testen Sie die ODBC-Verbindung zur Oracle-Datenbank:
# isql -v ODBC_to_ORACLE_INSTANZ
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from dual;
Umlaute prüfen
Sollten Sie bei den Abfragen aus der Oracle-Datenbank Probleme mit den Umlauten haben (diese werden nicht angezeigt), gibt es eine weitere Umgebungsvariable, die Ihnen weiterhilft. Fügen Sie die folgenden Sätze einfach zu unserer Profile-Datei hinzu:
# cd /etc/profile.d
# nano zusaetzliche_einstellungen.sh
NLS_LANG=GERMAN_GERMANY.UTF8
export NLS_LANG
Installieren Sie PostgreSQL ODBC
Um die PostgreSQL-Datenbank über ODBC erreichen zu können, müssen weitere Komponenten installiert werden. Führen Sie die folgenden Befehle aus:
# apt install unixodbc-dev
# apt-get install odbc-postgresql
Nach der erfolgreichen Installation erscheinen neue Einträge in der ODBC-Konfigurationsdatei. Diese müssen nun für die Angabe einer ODBC-Verbindung zur PostgreSQL-Datenbank verwendet werden.
# nano /etc/odbcinst.ini
[OracleODBC-23]
Description = Oracle ODBC driver for Oracle 21
Driver = /opt/oracle/instantclient_23_4/libsqora.so.23.1
FileUsage = 1
Driver Logging = 7
[PostgreSQL ANSI]
Description=PostgreSQL ODBC driver (ANSI version)
Driver=psqlodbca.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1
[PostgreSQL Unicode]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1
Die Details der Verbindung zur PostgreSQL Datenbank werden ebenfalls in der odbc.ini Datei festgelegt.
# nano /etc/odbc.ini
[ODBC_to_ORACLE_INSTANZ]
Driver = OracleODBC-23
DSN = OracleODBC-23
ServerName = INSTANZ
UserID = oracle_db_user
Password = <Kennwort_des_oracle_db_users>
[ODBC_to_POSTGRESQL]
Description = ODBC Verbindung zur PostgreSQL Datenbank
Driver = PostgreSQL Unicode
ServerName = host_name
Port = 5432
Database = db_name
UserName = db_user
Password = <Kennwort_des_postgres_db_users>
Testen Sie die ODBC-Verbindung zur PostgreSQL-Datenbank:
# isql -v ODBC_to_POSTGRESQL
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from my_table;
Sie haben alle notwendigen Voraussetzungen geschaffen, um Daten aus Oracle- und PostgreSQL-Datenbanken für Ihre R-Anwendungen zu holen. Im Folgenden zeige ich Ihnen, wie Sie die R-Umgebung einrichten können.
Nützliche Links
- Updates ausführen: https://www.devopsschool.com/blog/ubuntu-20-04-2-lts-display-34-updates-can-be-installed-immediately/
- psql Client installieren: postgresql – How to install psql without Postgres? – Ask Ubuntu
- Hier erhalten Sie den Oracle Instant Client zum Download: https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
- Informationen zu unixODBC finden Sie hier: https://www.unixodbc.org/


Schreibe einen Kommentar