Sammlung von kurzen Notizen zu den Themen rund um die Oracle Datenbank.
Übersicht über die wichtigsten Komponenten einer Oracle Datenbank Umgebung:
Historie der Versionen:
Die Datenbank Version auslesen ⇒ * Datenbank Version unter Oracle 12c versus 19c auslesen
( MOS Note: 742060.1 für den letzten Stand der Graphik - März 2025 )
Im Support Portal findet sich dazu dieses Dokumente über das wichtige Thema:
Was für ein Feature ist in welcher Version von Oracle verfügbar : https://apex.oracle.com/database-features/
Architektur Übersicht ⇒ https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/19/database-technical-architecture.html
Das Data Dictionary abfragen ⇒ https://www.viskey4you.com/
Oracle Database 12.1.0.2 Standard Edition (SE2) - einschränkungen - Sollten auch noch für die Version 18 gelten!
siehe ⇒ http://www.oracle.com/us/corporate/pricing/databaselicensing-070584.pdf
Oracle Database Standard Edition 2 may only be licensed on servers that have a maximum capacity of 2 sockets. When used with Oracle Real Application Clusters, Oracle Database Standard Edition 2 may only be licensed on a maximum of 2 one-socket servers. In addition, notwithstanding any provision in Your Oracle license agreement to the contrary, each Oracle Database Standard Edition 2 database may use a maximum of 16 CPU threads at any time. When used with Oracle Real Application Clusters, each Oracle Database Standard Edition 2 database may use a maximum of 8 CPU threads per instance at any time. The minimums when licensing by Named User Plus (NUP) metric are 10 NUP licenses per server
Die Modi der Datenbank
OraPowerShell Powershell und Bash Scripts + meine SQL Script Library
Grundlagen:
12c Rac
Die Datenbank ID zurücksetzen:
EXEC dbms_backup_restore.zerodbid(0);
Berechtigungsprobleme:
Netzwerk/Firewall und SQL*Net
Datenbank Connection Pooling
SQL*Net und IPv6
Ab 11g den Listener dynamisch tracen
#Bei Bedarf am Listener entsprechend anmelden LSNRCTL> set current_listener LISTENER_GPI #einschalten LSNRCTL> set trc_level 16 # Wo liegt der Trace LSNRCTL> show trc_file #Ausschalten LSNRCTL> set trc_level 0
siehe ⇒ „SQL*Net listener dynamic tracing (Doc ID 1940914.1)“
12c
21c
High Availability Clustering mit Pacemaker
SQL*Plus:
SQL Scripte:
Command Line SQLcl 12c - Nachfolger für SQL*Plus
Alternativen:
11g
12c
18c
AWR
chained Rows Problem
siehe ⇒ http://www.akadia.com/services/ora_chained_rows.html
Analysieren:
ANALYZE TABLE T_03_COLL_1_IMMO_PRIV COMPUTE STATISTICS;
resmgr:pq queued | enq: JX - SQL statement queue
In einer 12c Umgebung kann beobachtet werden das ein Truncate plötzlich mit dem Wait Event „esmgr:pq queued“ hängt. Hier auf das Verhältnis von PARALLEL_SERVER_TARGET zu den anderen Parallel Parametern achten!
Siehe dazu auch:
Blogs:
Oracle:
Oracle Text
Oracle Vector Index 23ai
VPD
Standby DB und Data Guard
Alternative Lösung für die SE ⇒ http://standbyone.de/
Streams
External Table
Heterogeneous Connectivity - Oracle Database Gateway for ODBC
Java in der Datenbank
Oracle Fail Safe Unter Windows kann die Datenbank in die Microsoft Failover Cluster Technologe integriert werden
Workload Management
User APPQOSSYS siehe ⇒ Database Quality of Service Management User's Guide
Mehr:
Oracle Multitenant ab Oracle 12c
Table Compression
EE Feature + Option!
Lizenz
„The base installation of Enterprise Manager Cloud Control 12c includes several features free of charge with the purchase of any Oracle software license or Support contract.”
„Users of Standard Edition and Enterprise Edition databases can use the Base Framework features and the Base Database Management Features. The following items are included as part of base database management features of Enterprise Manager Cloud Control 12c“
⇒ Die Basisfunktionalität kann auch schon bereits in der Standard Edition eingesetzt werden!
Alternativen
Alternative in APEX „Oracle Apex Database Monitor“:
12c Database
OEM 12c
Links zu 12c
Server Side THRESHOLDS
Support Portal:
AWR Warehouse für 12c
11g dbconsole
11g
Ora-600 Monitoring
Leistet Oracle Support für den Betrieb der DB auf VMware? Wenn genug Lizenzen für die Umgebung vorhanden sind inzwischen JA!
Siehe
Zeichensatz:
Die wichtigste Entscheidung bei der Installation ist die richtige Wahl des Zeichensatzes der Datenbank
Welcher Zeichensatz ist in meiner DB aktuell eingestellt:
Was für möglichen Zeichensätze werden unterstützt:
Ansible (https://www.ansible.com/) ist ein Open-Source Werkzeug zur Konfiguration und Administration, insbesondere im Umfeld von RedHat Basierenden Server Systemen.
Einfach mal ohne das ganze Installationsdrama arbeiten ⇒ fertige Docker Images verwenden ⇒ https://container-registry.oracle.com/pls/apex/f?p=113:1:16736952150739::NO:::
Oracle Datenbank 23ai
Oracle Datenbank 23c
Oracle Datenbank 21c Linux
Basis Vorbereitung:
Oracle Datenbank 19c Unter MS Windows
Oracle 18c auf Linux:
Oracle 18c XE auf Linux
Basis Vorbereitung:
Installation:
ASM:
Linux:
Windows:
Probleme:
12c Standard Edition (September 2015)
Basis Vorbereitung:
Installation:
Problem und Nacharbeiten
Support nodes:
User
User soll das gesamte DD lesen können:
GRANT SELECT ANY DICTIONARY TO scott;
In 12c etwas besser eingeschränkt, Tabellen wie $USER können nicht mehr gelesen werden! ⇒ http://www.petefinnigan.com/ramblings/how_to_grant_all_privs.htm
Spalte oracle_maintained in den Datenbank Views verwenden:
SELECT username,oracle_maintained FROM dba_users;
TDE
Log4j
Passwort
Rollen
Securtiy Checklisten:
Securtiy Empfehlungen Oracle 12c:
Security Scanner
Applicationssicherheit
Mit UTL_FILE/Directory und External Table zum DBA ⇒ http://ora-600.pl/art/privilege_escalation_2.pdf
PL/SQL
Oracle Security im Netz
IDS Intrusion Detection System - mit der Oracle Datenbank
Für Linux tripwire http://www.tripwire.org/
Für Oracle Linux 7:
wget https://ftp.fau.de/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum repolist yum install tripwire tripwire-setup-keyfiles tripwire --init
Tactics and Techniques representing the MITRE ATT&CK® Matrix for Enterprise
Support Nodes:
Vor dem Upgrade muss geklärt werden, ob ein 1zu1 Upgrade erfolgen soll oder bereits jetzt auf wenigstens Single Tenant umgestiegen werden soll.
Für eine Übersicht siehe
Security:
12.1 und kleiner
ab 12.2
19c
Welche Pache müssen on top auf den RU eingespielt werden?
OPatch
Checks:
Linux
Windows:
Import/Export IMP/EXP
DataPump
SQLLDR
Siehe Lizenzinformation unter ⇒ https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-0F9EB85D-4610-4EDF-89C2-4916A0E7AC87
Gute Übersicht ⇒ https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/19/rac/main.html
Support Infos:
Auf dem Knoten, der nicht mehr starten soll!
#als root! cd $GRID_HOME/bin/ ./crsctl disable crs # wieder einschalten mit ./crsctl disable crs #prüfen ./crsctl check crs
export SRVM_TRACE=true srvctl ....
RH7 Doku ⇒ https://www.redhat.com/en/files/resources/en-rhel-deploy-oracle-rac-database-12c-rhel-7.pdf
Übersicht Clusterware siehe hier www.twg-it.de
Support:
Timing Issues:
Heterogeneous Connectivity - Oracle Database Gateway for ODBC
MariaDB Connect Engine
Das PolyBase Feature
Siehe auch: https://www.markusdba.de/wp-content/uploads/2024/05/2023-05-mfl-datenaustausch-v01-deutsch.pdf
Ab Oracle 21 ein Muss! Oracle 19c letzte Version mit „normalen“ Betriebsmodus!
Lizenz ⇒ siehe https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/database-licensing-information-user-manual.pdf auf Seite 11 ⇒ „For all offerings, if you are not licensed for Oracle Multitenant, then you may have up to 3 user-created PDBs in a given container database at any time“
Bei jeder Option sind dann also 3 Plugable Datenbank pro DB in der Basis Lizenz enthalten.
Mehr oder weniger Spass mit Oracle
11g
Architektur
Problemstellungen
Space Management:
Performance
Oracle ASM Utiltiy um Metricen einzusammlen von Bertrand Drouvot:
Migration
Wartung
Installation
SQL*Net
Probleme
Hilfreiche Befehle
ASM Header von den Platten auslesen
$GRID_HOME/bin/kfed read /dev/oracleasm/disks/VOT1
Die neusten SQL Scripte liegen hier ⇒ http://orapowershell.codeplex.com/SourceControl/latest#sql/help.sql
2010/05/05 09:03 | Probleme beim Sichern der DB lösen In regelmäßigen Abständen sind die Logfile der Sicherung zu überprüfen. (siehe: /opt/oracle/admin/<sid>\backup\backup_<tag>.log) Mit dem Script am Ende der Seite regelmäßig prüfen, ob die Flash Recovery Area nicht vollläuft! | |
2012/03/22 17:30 | Anzeige der per Foreign Key referenzierten Tabellen Wie erkennt man bei einem „ORA-02449: unique/primary keys in table referenced by foreign keys“ die abhängigen Tabellen? Lösung: SELECT table_name ,constraint_name ,status ,owner FROM all_constraints WHERE r_owner = :ref_owner AND constraint_type = 'R' AND r_constraint_name IN (SELECT constraint_name FROM all_constraints … | |
2010/04/30 13:00 | Flashback aktivieren DB:10g Aufgabe: Auf einer 10g Cluster Datenbank soll Flashback aktiviert werden. Die Datenspeicherung erfolgt über eine Oracle ASM Instance. Bisher wurde die Recovery Area Parameter nicht verwendet. Die Platte für die Archivelogs und RMAN Backups ist gross aber langsam, die Flashback Logs soll auf einer schnellen 100GB Lun abgelegt werden. Die Flashback Logs lassen sich aber nicht einzeln konfigurieren. | |
2010/04/29 18:45 | Ungültige Objekte in der DB "reparieren" In einer produktiven Datenbank sollten kleine Objekte ungültig sein und die Entwickler sollten bei ungültigen Objekten diese „reparieren“. Folgendes Schript hilft die schlimmsten Fehler zu beseitigen, wenn z.b. der Oracle Enterprise Manager hunderte von ungültigen Objekten anmerkt. | |
2010/04/26 16:24 | Per SQL Spool Scripte erzeugen SQL*Plus im Detail unter Einführung SQL*Plus Synonyme erzeugen ##SOURCESCHEME## mit dem Schemanamen ersetzen -- Setup some SQLPlus parameters. SET heading off -- Spool everything to an file to reuse the generated SQL. spool synonymspool -- Do the Query. SELECT 'CREATE SYNONYM ##DESTINATIONSCHEME##.' || TABLE_NAME || ' FOR ##SOURCESCHEME##.' || TABLE_NAME || ';' FROM cat WHERE TABLE_NAME NOT LIKE 'BIN%'; -- Close spool. spool off | |
2013/07/23 13:38 | Größe einer Tabelle analysieren Oft ist es notwendig, sich neben der reinen Größe einer Tabelle auch den Füllgrade anzeigen zu lassen: (Die aktuelle Version liegt immer hier OraPowerShell SQL Library - space.sql ) set pagesize 300 set linesize 250 set verify off define lnum = "format 9G999G999D99" define num = "format 99G999" define snum = "format 9G999" ttitle left "Space Usage of a table" skip 2 define ENTER_OWNER='&TABLE_OWNER' define ENTER_TABLE='&TABLE_NAME' column segment_nam… | |
2010/05/05 09:03 | Die aktuellen SQL Statements in der DB auswerten Der einfachste Ansatz zum finden von „problematischen“ SQL Statements ist die Auswertung der in der SGA gecachten Statements nach den evlt. Problemfällen. Dabei werden die Statements gesucht, die oft aufgerufen werden UND viele Resourcen (CPU und Lesevorgänge) verbrauchen. | |
2010/05/05 09:03 | Statistiken anlegen und überwachen 1. Systemweite Statistik In der DOAG News 01/2013 (S.52) ist ein sehr gut gemachter Artikel von Thorsten W. Grebe über die Problematik mit den Oracle Systemstatistiken zu finden: “Glücksspiel Systemstatistiken - Das Märchen vom typischen Workload“. |