Autor: RainerHartwig
RMAN on Multitenant DB – Awareness of the Backup Optimization Behavior
Summary of new partitioning Features in 12.2
While looking for some new features of 12.2 concerning the partitioning e.g the auto list Weiterlesen
Using Join Elimination to increase performance on Views
A customer having a DWH has a View with a huge number of Left Outer Joins to a dim table. The Reports using this view will only using a small number of columns of some dim tables. But the Weiterlesen
Howto setup and using incremental gather_table_stats
My friend Bernhard explains to me his issue using incremental gather_table_stats on a large partitioned table in a DWH. This table has only changes on a few partitions per day, normally the last two. I was looking for a solution that only Weiterlesen
Droping a Table Column will generate a Hidden Column instead of removing them
This week a colleaque asked me for help while droping a table column. Inside of a PL/SQL procedure a table column has to be droped to prepare the table for an partition exchange. But while execute the partition exchange the Weiterlesen
Avoid mistakes when Gathering System Stats
Christian Antognini descibed in his book Troubleshooting Oracle Performance how to gather the system statistics in a very proficient way. The main idea of gathering system stats is to collect the system stats in Weiterlesen
Oracle RAC 12cR1 on OEL 7.2 VBox – Part 4: Install the GI software only
As described in my previous article Cloning the Node two a 2-Node-RAC we can start to install the GI software on both nodes. Normally you can install and configure the Grid Infrastructure (GI) Software on both nodes, starting on one node only. In a case Weiterlesen
Oracle RAC 12cR1 on OEL 7.2 VBox – Part 3: Cloning the Node two a 2-Node-RAC
In my previous article Adding ASM Disks and Configuration of OS I described to add some ASM Disks and to configure the Oracle Enterprise Linux (OEL) 7.2 to be ready for Oracle RAC 12c. In this article I will describe you a short script to clone Weiterlesen
Oracle RAC 12cR1 on OEL 7.2 VBox – Part 2: Adding ASM Disks and Configiguration of OS
In addition to my first article Installation of OEL 7.2 I will show you how to add some ASM Disks and to configure the Oracle Enterprise Linux (OEL) 7.2 to be ready for oracle RAC 12c on OEL 7.2 Weiterlesen
Howto solve Bug 22832149 – SHUTDOWN FAILS WITH ORA-449
While trying to setup and configure a two-node-RAC (12.1.0.2.0) on AIX 7.1 TL 4 SP 1 (AIX OS 7100-04-01-1543) at customer site I run into Weiterlesen
Oracle RAC 12cR1 on OEL 7.2 VBox – Part 1: Installation of OEL 7.2
Based on several articles in the internet like ORACLE-BASE and RAC-Attack and the need to patch the GI software before the cluster is configured the first time I started to create a VM. I tried to summarize them in this article being the first Weiterlesen
die Zukunft von sql*plus
Schon seit einiger Zeit gibt einige Teaser und Twitter zu sql*plus. Ja, Oracle ist dabei, SQL*PLUS komplett neu zu entwickeln: Weiterlesen
HOWTO create SR with ADRCI ?
Gerade in einem Umfeld mit vielen Datenbanken treten naturgemäß auch mehr Fehler auf. Von daher ist notwendig, diese schnell zu analysieren und Maßnahmen einzuleiten.
In diesem Beitrag möchte ich versuchen darzustellen, wie man durch einfache Handgriffe sich dabei die Arbeit etwas erleichtern kann und somit auch die Arbeit des EM etwas Weiterlesen
HOWTO upgrade to 12c
In diesem Beitrag möchte ich ein paar interessante Links zusammenstellen, die gerade beim Upgrade nach 12c interessant sein können, oder aber eine Basis für Überlegungen einer neuen Infrastruktur darstellen können:
Basis ist natürlich die Dokumentation von Oracle: Oracle Database Upgrade Guide
Grundsätzlich ist ein Upgrade recht einfach: Upgrade nach Oracle Database 12c
Jedoch hat sich mit 12c einiges verändert. Die wichtigsten Punkte und Hinweise sind hier im aufgeführt: New version of the BIG 12c SLIDE DECK. Dieses Dokument enthält unter anderem folgende wichtige Punkte:
- Eine „Database Patch Set Release Roadmap“ findet sich in MOS Note : Release Schedule of Current Database Releases (Doc ID 742060.1)
- MOS Note : Oracle Recommended Patches — Oracle Database (Doc ID 756671.1)
- MS Note : 12.1.0.2 Patch Set – Availability and Known Issues (Doc ID 1683799.1)
- MOS Note : Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2) (Doc ID 169706.1)
- Parameter Recommendations Oracle 12.1.0.2
- Deprecated and Obsolete Parameters in Oracle Database 12c
- Important Notes and White Papers
- etc.
Besonders hervorzuheben sind die beiden Punkte:
- Terminal Release: Why you seriously can’t wait for the second release!
- non-cdb deprecetad: See the Oracle Database 12.1.0.2 Upgrade Guide
Obwohl eine non-cdb Umgebung deprecated ist, sind einige Features sind im pdb Umfeld nicht verfügbar: Non-CDB architecture of Oracle databases is DEPRECATED since Oracle Database 12.1.0.2
- Database Change Notification
- Continuous Query Notification (CQN)
- Client Side Cache
- Heat Map
- Automatic Data Optimization
- Oracle Streams
- Oracle Fail Safe
- Flashback Pluggable Database (Flashback Database works but will flashback CDB$ROOT including all PDBs)
- DBVERIFY
- Data Recovery Advisor (DRA)
- Flashback Transaction Backout
Jedoch gibt es einige Punkte zu beachten, um nicht unötige und vermeidbare Probleme zu bekommen:
- bug 17325413 – patch BEFORE upgrade!
- Things to consider BEFORE upgrading to Oracle 12.1.0.2 to AVOID poor performance and wrong results
- DBMS_STATS.GATHER_DICTIONARY_STATS fails with ORA-20001 ORA-6502
- Invalid Table Data before Upgrade to 12.1.0.2?
Während und nach des Upgrades sollten noch beachtet werden:
Mein Dank geht an Mike Dietrich, der in seinem Blog sehr viele dieser Informationen verständlich und übersichtlich darstellt.
Viel Erfolg beim Upgrade,
Rainer
ORA-28575: unable to open RPC connection to external procedure agent
Nach dem Update der Oracle Software auf 11.2.0.4.0, dem Einspielen des neuesten PSU und eines speziellen Patches trat anschließend folgender Fehler beim Anwender auf:
1 | ORA-28575: unable TO OPEN RPC connection TO external PROCEDURE agent |
Im LOG File des Listener war degegen folgender Fehlerstack zu sehen:
1 2 3 4 5 | TNS-12518: TNS:listener could NOT hand off client connection TNS-12547: TNS:lost contact TNS-12560: TNS:protocol adapter error TNS-00517: Lost contact Linux Error: 32: Broken pipe |
Nach kurzer Suche in MOS fand ich dann zwei hilfreiche Notes:
Troubleshooting Guide for TNS-12518 TNS listener could not hand off client connection (Doc ID 550859.1)
External Procedures – Troubleshooting ORA-28575 Errors (Doc ID 70638.1)
Gerade in der zweiten (Doc ID 70638.1) fand in den hier endscheidenen Tipp, das Programm „extproc“ mit dem User, unter es ausgeführt werden soll, auch mal zu starten.
Dabei trat dann ein fehlermeldung auf, dass eine Shared Library nicht gefunden werden könne. Nach dem Setzen der richtigen Privilegien
1 2 3 | chmod 755 $ORACLE_HOME/lib/libclntsh.so.11.1 chmod 755 $ORACLE_HOME/lib/libagtsh.so.1.0 chmod 755 $ORACLE_HOME/lib/libocci.so.11.1 |
konnte sowohl das Programm fehlerfrei gestartet werden als auch der Endanwender hatte keine Probleme mehr.
Als Alternative hat sich herausgestellt, dass ein Relink aller Binaries die Berechtigungen wieder korrekt setzt:
1 | $ORACLE_HOME/bin/relink all |
Viel Erfolg.
Oracle Database Upgrade to 12.1.0.2 – Avoid Performance Issues and Wrong Results
Mike Dietrich hat in seinem Blogbeitrag Oracle Upgrade 12.1.0.2 auf die MOS Note:2034610.1 „Oracle Database Upgrade to 12.1.0.2 – Avoid Performance Issues and Wrong Results“ verwiesen.
Diese enthält eine Reihe von Informationen und Hinweisen, die man vor jedem Upgrade durchaus überprüfen sollte.
Rainer
Caching in 12c
Mit der Version 12c (12.1.0.2) gibt es u.a. zwei neue Features zum Caching, die gerade bei kleinen oder mittleren Datenbanken einen Geschwindigkeitsvorteil ohne Änderung an der Anwendung erzielen lassen:
- ABTC = Automatic Big Table Caching
- FDC = Full Database Caching
Beide Features sind lizenzfrei und haben nichts mit der IN-MEMORY Option zu tun.
ABTC mit seriellen Abfragen im Single Instance Umfeld steht in allen Editionen zur Verfügung. Wird ABTC für parallele und serielle Abfragen im RAC oder Single Instance Umfeld verwendet, ist jedoch die Enterprise Edition erforderlich.
Dieses Feature ist speziell für solche Tabellen geeignet, die nicht komplett in den Hauptspeicher passen und viele Full-Table-Scan verursachen. Einen ersten Einblick, welche Parameter wie zu setzen sind, damit dieses Features wirkungsvoll arbeiten kann, gibt der Artikel ABTC-Parameter
FDC ist dann sinnvoll einzusetzen, die komplette DB in den Hauptspeicher passt. In einer multitenant – Umgebung gilt dies dann für die CDB als auch alle PDB. Der Tablespace SYSAUX wie auch TEMP können davon ausgeschlossen werden.
Die Objekte werden erst beim ersten Zugriff in den Speicher geladen. Die Objekte werden wie in einem „KEEP“ Buffer gehalten, ohne diesen spezifizieren zu müssen. Sie liegen im Buffer-Cache, werden aber so behandelt, als lägen sie im KEEP-Pool. Das Aktivieren wie auch das Deaktivieren dieses Features kann nur im Zustand einer gemounteden Datenbank erfolgen. In der Oracle Dokumentation ist beschrieben, wie FDC aktiviert und deaktiviert wird und welche Auswirkungen dies auf LOB hat FDC-Aktivieren
Viel Spass bei den Performancemesssungen !
Rainer
Standard Edition 2 ab 12.1.0.2
In der Oracle MOS Note Oracle Database 12c Standard Edition 2 (12.1.0.2) (Doc ID 2027072.1) gibt Oracle bekannt, dass
- es ab Oracle 12c, genauer ab 12.1.0.2 keine Standard Edition (SE) und auch keine Standard Edition One (SEO) mehr geben wird
- sondern nur noch eine „Standard Edition 2“ (SE2), die auf Servern mit zwei Sockets begrenzt ist.
- Allerdings beinhaltet die Standard Edition 2 Oracle RAC für maximal zwei Knoten.
Ab 12.1.0.2 wird es dann keine Standard Edition noch eine Standard Edition One geben.
Diese existieren noch für 12.1.0.1 und werden auch 6 Monate nach 12.1.0.2 voll unterstützt.
Nach meiner Einschätzung wird dies viel Unmut und mögliche Konvertierungen der Lizenzen auf Enterprise Edition nach sich ziehen.
Eine mögliche Alternative ist, neue Hardware mit mehr Cores pro Socket anzuschaffen.
weitere Details – gerade im Hinblick auf SE2 – siehe auch
Zusammengefasst:
bis 12.1.0.1 SE und SEO, für 4 Sockets
ab 12.1.0.2 SE2, für 2 Sockets
ORA-02291: integrity constraint (RMAN.RLH_F1) violated – parent key not found
Beim Registrieren einer Datenbank an einem RMAN-Catalog (11g), trat folgender Fehler auf:
Auch ein De-Registrieren der DB brach mit diesem Fehler ab:
1 | ORA-02291: integrity CONSTRAINT (RMAN.RLH_F1) violated - parent KEY NOT found |
Nach Ausführen des folgenden Kommandos und dem anschließenden Ausführen des angezeigten Kommandos wurden alle Einträge komplett entfernt, so dass danach eine Registrierung möglich war.
1 2 3 4 | SELECT 'EXEC DBMS_RCVCAT.UNREGISTERDATABASE('||DB_KEY||','||DBID||');' AS command , resetlogs_time FROM rc_database WHERE name = '&db_name'; |
Eine mögliche Ausgabe wäre dann:
1 2 3 | COMMAND RESETLOGS ------------------------------------------------------------------------------------------- --------- EXEC DBMS_RCVCAT.UNREGISTERDATABASE(1146,4974324); 30-MAY-15 |
Danach ist das folgende Kommando auszuführen:
1 2 3 | SQL> EXEC DBMS_RCVCAT.UNREGISTERDATABASE(1146,4974324); PL/SQL PROCEDURE successfully completed. |
Viel Erfolg.
ORA-12162 beim Start von sqlplus / as sysdba
Beim Versuch mich via sqlplus mit der Datenbank eines Kunden zu verbinden, bekam ich folgende Fehlermeldung: ORA-12162 TNS:net service name is incorrectly specified.
Für diejenigen, die auch in diese Situation kommen, dieser kleine Beitrag Weiterlesen
DR versus IR: HowTo grant privs?
Aus einem aktuellen Projekt heraus entstand die Fragestellung: Muss man immer alle Rechte einem User direkt zuweisen oder genügt es nicht einfach, eine Prozedur mit Invoker Rights Weiterlesen
Parsen einer XML Struktur mit mehrfachen Zeilen
Heute möchte ich eine Möglichkeit vorstellen, wie man in Oracle eine XML Struktur mit mehrfachen Einträgen Weiterlesen
Konvertiere LONG RAW nach CLOB mit Zeichsatzkonvertierung
In Ergänzung zum Beitrag Konvertiere LONG nach CLOB möchte ich heute ein Beispiel vorstellen, wie man eine LONG RAW Spalte nach Weiterlesen
12c: ein Beispiel einer Interval-Reference Partitionierung
Im Rahmen eines Projektes ging es u.a. um die Einführung einer Referenz-Partitionierung mit Intervall, d.h. zwei oder mehr Tabellen, die zueinander über einen FK (Foreign Key) in Beziehung zu einander stehen, werden analog Weiterlesen
Index mit NULL Werten
Bei einer Anwendung stellte sich mir die Aufgabe, eine Abfrage zu optimieren, ohne die Abfrage oder die Tabelleninhalte ändern zu können. Wesentliches Kriterium der WHERE Klause war eine Abfrage auf der Spalte FELDNUM der Form (FELDNUM IS NULL or FELDNUM >= 5). Ich versuchte einen Index zu nutzen, der auch die Weiterlesen
möglicher Einsatz von SQL Plan Baselines
In manchen Situation ist es sinnvoll und/oder notwendig, dem Optimizer den „richtigen“ weil schnelleren Ausführungsplan mitzuteilen. Dazu sind Weiterlesen
Konvertiere LONG nach CLOB
In diesem Beitrag möchte ich drei verschiedene Möglichkeiten aufzeigen, wie man mit einfachen Mitteln eine LONG-Spalte nach CLOB – möglichst noch Weiterlesen
YUM Repository für Oracle VM Server 3.3.1. erstellen
Um weitere Pakete nach der Installation des Oracle VM Servers 3.3.1 leichter zu installieren, ist es empfehlenswert, ein YUM Repository anzulegen. Wie leicht das geht, wird in Weiterlesen
Erstellen von Screenshots während einer Installation von OEL
Ich bin gerade dabei, ein Oracle Enterprise Linux (OEL) zu installieren und dieses auch dokumentieren, da stellt sich für mich die Frage, wie kann ich dies tun, wenn die Installation von einer CD/DVD erfolgt und das erste System auf dem Rechner ist?
Nach etwas Suchen im Internet stellt sich heraus, dass man während der Installation (innerhalb von anaconda) mit Hilfe der Tastenkombinationen + ein Screenshot erzeugen und gespeichert wird. Dies kann u.U. etwas dauern. Der Screenshot wird durchnumeriert und im Verzeichnis
1 | /root/anaconda-screenshots |
abgelegt.
Aber:
Während der Installation ist das /root Verzeichnis /tmp. Deshalb befinden sich die Screenshots während der Installation noch im Verzeichnis
1 | /tmp/anaconda-screenshots |
und können dort betrachtet werden. Mittels <Ctrl> + <Alt> + F2 kann man das Fenster umschalten.
Nach der Installation befinden sich die Screenshots dann in obigen Verzeichnis.
ABER:
Bei Oracle VM ist dies wohl von Oracle deaktiviert worden. Bei der Installation von Oracle VM Server – zumindest in der Version 3.3.1 – kann man leider auf diese Art und Weise keine Screenshots erzeugen.