Oracle Administration

SQL Developer unter debian/ubuntu installieren

Damit man eine Software später wieder deinstallieren kann, bietet sich die Installation mittels Paketmanager an. Debian und Ubuntu verwenden typischerweise das .deb Dateiformat. Da Oracle nur ein .rpm-Paket bereitstellt, kann man dieses in ein .deb-Paket umwandeln und installieren:

Download von "Oracle SQL Developer RPM for Linux" von der Webseite http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

alien und openjdk installieren:

sudo apt-get install alien openjdk-6-jdk

.rpm-Paket in ein.deb-Paket umwandeln:

sudo alien sqldeveloper-2.1.1.64.45-1.noarch.rpm

.deb installieren

sudo dpkg-i sqldeveloper-2.1.1.64.45-1.noarch.deb

Oracle SQL Developer starten mit

sqldeveloper

sqlplus unter debian / ubuntu installieren

In der Datei /etc/apt/sources.list muss man eine weitere Zeile anfügen:

deb http://oss.oracle.com/debian unstable main non-free

Danach die Paketinformationen auffrischen und die Pakete oracle-xe-client und libaio installieren:

sudo apt-get update
sudo apt-get install oracle-xe-client libaio

Anschließend steht der Befehl sqlplus zur Verfügung. Auch ein Start per Startmenü sollte möglich sein ("SQL-Befehlszeile ausführen").

Connection String für sqlplus

Ein funktionierendes Beispiel ist folgendes:

sqlplus "<user>/<password>@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <oraclehost>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>)))"

Die Platzhalter in spitzen Klammern müssen inklusive den spitzen Klammern  ersetzt werden. Z.B.:

sqlplus "joe/secret@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myoracle123.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = mysid)))"

Weitere Connection Strings:

https://www.connectionstrings.com/oracle/

Client Encoding einstellen

Oft werden sprachspezifische Umlaute und Sonderzeichen auf Seite des Clients falsch dargestellt. Dies lässt sich oft vermeiden, indem man das Client-Encoding auf UTF8 umstellt.

Bevor man beispielsweise den Befehlszeilenclient sqlplus startet, muss man unter Linux eine Umgebungsvariable setzen:

export NLS_LANG="AMERICAN_AMERICA.UTF8"

Cursor-Tasten in sqlplus (workaround)

Wenn man den oracle Befehlszeilenclient sqlplus unter Linux installiert hat, funktionieren mitunter die Cursor-Tasten nicht.

Abhilfe schafft hier ein Tool namens rlwrap. Auf debian und ubuntu lässt es sich installieren mit 

sudo apt-get install rlwrap

Beim Aufruf von sqlplus wird es dann einfach vorangestellt:

rlwrap sqlplus <parameter>

Laufende User-Prozesse anzeigen

Mit folgendem SQL-Statement können alle laufenden User-Prozesse auf dem oracle-Server angezeigt werden:

SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45
SELECT s.inst_id,
 s.sid,
 s.serial#,
 p.spid,
 s.username,
 s.program
FROM gv$session s
 JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE s.type != 'BACKGROUND';

Quelle:

https://oracle-base.com/articles/misc/killing-oracle-sessions

Laufenden User-Prozess beenden

Mit folgendem SQL-Statement kann ein User-Prozess auf dem oracle-Server beendet werden:

ALTER SYSTEM KILL SESSION 'sid,serial#';

Quelle: https://oracle-base.com/articles/misc/killing-oracle-sessions