Thursday, 22 January 2015

ORA-39095: Dump file space has been exhausted

Wenn es darum geht einen Export unter Verwendung von datapump (expdp) auszuführen, werden die exportieren Daten in den dump files (*.dmp) abgelegt, welche ihr mit dem dump file parameter im expdp Befehl angibt::

dumpfile=FILENAME.dmp

Nun mit dem Export werden die spezifizierten dump files angelegt und sie werden logischerweise immer größer solang der Export-Prozess andauert. Wenn euer Filesystem oder irgendeine andere Einstellung eine Maximalgröße für Dateien vorgibt, kann es es zu Problemen kommen. Denn falls eure Datenbank sehr groß ist und das dump file die maximale erlaubte Größe erreicht, bekommt ihr folgende Meldung:

ORA-39095: Dump file space has been exhausted

Die Lösung dafür ist, dass anstatt dass ein dump file beim Export erzeugt wird, der Export sich auf mehrere, kleinere dump files ausbreiten soll. Dann sollte beim Export Befehl die maximale Größe für jedes dieser dump files angegeben werden, z.B. hier 1 GB:


filesize = 1000M

Auch muss beim expdp Befehl angegeben werden, dass falls es wirklich dazu kommt, dass mehrere dump files angelegt werden, wie die Benennung der Dateien stattfinden soll. Zum Beispiel, wenn ihr wollt, dass jede dump file eine Nummer am Ende bekommt:

file_1.dmp
file_2.dmp
file_3.dmp
...
file_99.dm

Dazu müsst ihr folgenden Parameter am Befehl dranhängen:

dumpfile=file_%U.dmp

Dass %U übernimmt dabei die Nummerierung.

Achtung, die inkrementelle Nummerierung geht nur bis 99.  Falls 99 Dateien (99* 1GB = 99 GB) generiert wurden, bevor der Export abgeschlossen ist, dann wird wieder der ORA-39095 Fehler kommen. In diesem Fall müsstet ihr wiederum die maximale Größe für dump files erhöhen.

Saturday, 17 January 2015

Wie spielt man ein PL/SQL package in eine Oracle Datenbank über den SQL Developer ein

Hallo,

letztens hatte ich den Task bekommen einige Packages in einer Oracle Datenbank einzuspielen und mir wurde empfohlen dabei den komfortablen SQL Developer zu benutzen.

Ich ging folgendermaßen an die Aufgabe heran: Nachdem ich mit der Ziel-DB verbunden war, öffnete ich die *.pkg Datei in SQL Developer über "Datei" --> "Öffnen". Das Package öffnete sich in einem Editor. Danach wählte ich oben rechts die Datenbank auf, auf die das Package drauf sollte:


Naiv wie ich war, klickte ich einfach auf dem grünen Play-Button und hoffte, dass das klappen würde, aber dem war nicht so. Es öffnete sich ein neues Fenster mit dem Titel "Ziel" wählen, welches mir auch anzeigte, dass es einen Syntax-Fehler im Code gab (der Editor meckerte, dass es irgendwo im Code ein "/" geben würde, was nicht erlaubt ist). D.h. ich konnte das Package nicht einspielen.

Die einfache Lösung für das Problem war eine andere Bedienweise: Anstatt die Package-Datei über Datei/Öffnen in den SQL Developer zu öffnen, sollte man sich als allererstes über den Database Explorer mit der Ziel-DB verbinden. Dies öffnet einen normalen SQL Editor. Dort sollte man dann den Code aus der Package-Datei copy-pasten und dann "Skript ausführen" wählen. So konnte ich das Package ohne irgendwelchen Problem ausführen.


Friday, 16 January 2015

RMAN-01009: syntax error: found "clone": expecting one of: "double-quoted-string, identifier, single-quoted-string"

Some of you might get into following problem. You want to duplicate a database and your duplicate command is the following:

RMAN> duplicate target database to dbsoandso nofilename check;

But RMAN returns following error: 

The solution is easily readable from the RMAN answer, but the one or the other person might not understand the problem immediately. So the mistake you have done is that you have forgotten the commas in:

RMAN> duplicate target database to dbsoandso nofilename check;

and it should be :

RMAN> duplicate target database to 'dbsoandso' nofilename check;

Mistake of opening an PL/SQL package as file in Oracle SQL Developer

Hi,

recently I had to introduce some packages into the database of a customer. I was told to use the handy Oracle SQL Developer for that task.

After connecting to the target database, I opened the package file (*.pkg) in SQL Developer by "File"->"Open".

The package got opened and in the package editor I selected the database on which to install the package:


Naive as I was I just clicked on the "Execute" button and received some syntax errors.

The simple solution for that problem was, that instead of opening the whole file and then selecting the target database: First connect to the database which opens an SQL editor and in that editor copy paste the complete code of the package and then execute the whole script:


So it begins ...

Hi there,

my name is Faraz Ahmed and I have recently started working as an Oracle Database Administrator. Blogging is part of being an enthusiastic and passionate Oracle DBA and that is the reason why I am joining the Oracle Blogger Community. I hope I can share new useful insight that I will gain throughout my work experience. :)