Oracle DBMS Setup¶
Folgend wird die (im Okt. 2019) aktuelle Oracle DB Version 19c installiert. Zuvor muss das Oracle Preinstallation RPM (19c) installiert werden:
sudo -H yum install oracle-database-preinstall-19c.x86_64
...
reboot
Bemerkung
Der Reboot wurde hier durchgeführt, weil das Oracle Preinstallation RPM u.A. einen Kernel Parameter ändert.
In dem Ordner /var/log/oracle-database-preinstall-19c/backup/
liegen (nach
Datum sortiert) die Sicherungen die das Oracle Preinstallation RPM angelegt
hat. Dort liegt auch das LOG zu den Änderungen (weitere Hinweise siehe auch
Installing the Oracle Preinstallation RPM). Als nächstes kann dann das DBMS
installiert werden (Installing Oracle Database Using RPM Packages).
RPM Installation¶
Wir haben uns bereits oben für die Version 19c entschieden und benötigen nun das RPM Paket für 19c (oracle-database-ee-19c-1.0-1.x86_64.rpm). Nachdem die Datei vollständig heruntergeladen wurde kann das Paket installiert werden.
[user@localhost ~]$ cd ~/Downloads
[user@localhost ~]$ sudo -H yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
...
[user@localhost ~]$ sudo -H passwd oracle
Bei der Installation des RPM wurde auch der Systembenutzer oracle
angelegt,
mit dem man die Oracle Administration vornimmt. Für diesen Benutzer wird noch
das Passwort gesetzt.
Datenbank ORCLCDB
¶
Einrichten der exemplarischen DB Instanz ORCLCDB (Creating and Configuring an Oracle Database):
[user@localhost ~]$ sudo -H /etc/init.d/oracledb_ORCLCDB-19c configure
... dauert etwas länger
Erstellen der Datenbank abgeschlossen ...
Datenbankinformationen:
Globaler Datenbankname:ORCLCDB
System-ID (SID):ORCLCDB
Database configuration completed successfully. The passwords were auto generated,
you must change them by connecting to the database using 'sqlplus / as sysdba'
as the oracle user.
Um die Passwörter in der DB Instanz zu ändern, meldet man sich mit dem
oracle Benutzer am System an. Mit sqlplus
als sysdba
kann man
dann die Passwörter wie folgt ändern. Die im Beispiel verwendeten Passwörter
"sys"
und "system"
sollten gegen sinnvolle ausgetauscht werden!:
$ . oraenv
ORACLE_SID = [oracle] ? ORCLCDB
...
$ sqlplus / as sysdba
...
SQL> alter user sys identified by "sys";
...
SQL> alter user system identified by "system";
Die ‚so‘ eingerichtete DB Instanz lauscht auf localhost
nach Verbindungen.
Will man sich remote von einem anderen Host aus gegen die DB verbinden, so muss
die IP oder Host-Name in der listener.ora eintragen.
oracle
Benutzer¶
Bei der RPM Installation wurde der Systembenutzer oracle
angelegt. Ist
man bereits auf dem Rechner angemeldet, kann man in mit su
den Benutzer
wechseln oder sich via ssh mit diesem Account anmelden.
su - oracle
Die Option -X
reicht das Display durch, womit dann auch die graphischen
Tools wie dbca
genutzt werden können.
[user@localhost ~]$ ssh -X oracle@localhost
Auswahl einer Umgebung¶
Die zur Verfügung stehen Umgebungen sind in der Datei /etc/oratab
konfiguriert:
grep -o '^[^#]*' /etc/oratab
ORCLCDB:/opt/oracle/product/19c/dbhome_1:N
ORCLCDB
ist die SID/opt/oracle/product/19c/dbhome_1
ist der Ordner der DB InstanzN
oderY
: autostart der DB bei Systemstart
Nach dem Login muss mittels oraenv
erst die DB Umgebung ausgewählt werden:
[oracle@localhost ~]$ source oraenv
ORACLE_SID = [oracle] ? ORCLCDB
The Oracle base has been changed from /home/oracle to /opt/oracle
Danach kann man dann die Tools aufrufen:
[oracle@localhost ~]$ dbca
Oder man meldet sich mit dem sqlplus
als sysdba
an:
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 11 13:48:23 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Verbunden mit:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
listener.ora
¶
Damit der Listener Verbindungen von den Remotes annimmt, muss in der listener.ora
der localhost
gegen den HOST-Namen ausgetauscht werden (s.a. tnsnames.ora):
$ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
Um den Listner (die ganze DB) neu zu starten zu können müssen erst alle noch offenen DB Verbindungen geschlossenen werden.
$ sudo -H systemctl restart oracledb_XX
tnsnames.ora
¶
Siehe auch listener.ora. Muss i.d.R. auf den Clients gesetzt werden. Auf dem Oracle Server gibt es die auch, dort in der Umgebung die mit source oraenv angezogen wurde:
$ORACLE_HOME/network/admin/tnsnames.ora
ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
LISTENER_ORCLCDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))