News zu Oracle

DataPump-Ex­­por­­t/Im­­port vs. RMAN-Backup

Das Thema “Backup” ist eine absolute IT-Grundlage. Un­ab­hän­gig davon wie hoch­ver­füg­bar eine In­fra­struk­tur ausgelegt ist, sollte die Er­stel­lung von Da­ten­si­che­run­gen grund­sätz­lich kein Ge­gen­stand einer Dis­kus­si­on sein. Die Aus­ge­stal­tung der Backups (Häu­fig­keit, Ablage, Tests, etc.) un­ter­liegt natürlich den je­wei­li­gen An­for­de­run­gen des Geschäftsbetriebes. 

Doch Backup ist eben nicht gleich Backup. Das wird schnell klar, wenn man sich ver­schie­de­ne An­wen­dungs­sze­na­ri­en für die Wie­der­her­stel­lung von Daten(banken) anschaut. Ins­be­son­de­re im Bereich der Oracle Da­ten­ban­ken scheiden sich hier die Geister. In nicht wenigen Fällen ist man der Meinung, dass die Er­stel­lung von “Exports mit DataPump” eine aus­rei­chen­de Da­ten­si­che­rung darstellen. 

Aber ist ein DataPump-Export wirklich die optimale Backup-Strategie? Wir möchten dazu einen kurzen Vergleich zwischen DataPump-Exports und den mittels Oracle Recovery Manager er­stell­ten RMAN-Backups anstellen. Dazu werden im Folgenden die Mög­lich­kei­ten beider Varianten an­ge­ris­sen und bewertet.

DataPump-Ex­por­t/Im­port

Beim DataPump-Export werden so­ge­nann­te Dumpfiles angelegt. Diese be­inhal­ten die logischen Elemente einer Oracle Datenbank. Hierzu zählen bei­spiels­wei­se Tabellen, Trigger, Cons­traints, sowie Metadaten und Steu­er­in­for­ma­tio­nen. Für den Export können ver­schie­de­ne Modi verwendet werden, wie beispielsweise:

  • die komplette Oracle Datenbank (full=yes),
  • einzelne Ta­b­le­spaces (tablespaces=ts1,ts2,ts3),
  • einzelne Schemata (schemas=s1,s2,s3), oder
  • einzelne Tabellen (tables=t1,t2,t3)

Ein weiterer, spe­zi­el­ler Modus ist der “Trans­por­ta­ble Ta­b­le­space Mode”, welcher al­ler­dings nur in der Oracle Datenbank En­ter­pri­se Edition zur Verfügung steht.

Es ist möglich, die Daten kon­sis­tent zu ex­por­tie­ren (flashback_scn=xyz / flashback_time=), so dass alle Da­ten­sät­ze innerhalb eines Dumps einen zu­ein­an­der passenden Stand haben.

Ohne das spezielle Recht  DATAPUMP_EXP_FULL_DATABASE  kann der ex­por­tie­ren­de Benutzer al­ler­dings lediglich sein eigenes Schema, re­spek­ti­ve Elemente daraus ex­por­tie­ren. Er braucht daher zwingend das Recht, schrei­bend auf das Export-Ver­zeich­nis (Default: DATA_PUMP_DIR) zu­zu­grei­fen. Für einen Import wird das ent­spre­chen­de Leserecht benötigt. Wird zu­sätz­lich ein Logfile beim Import ge­schrie­ben, ist auch das Schreib­recht auf das Import-Ver­zeich­nis erforderlich.

Sofern nun die folgenden Parameter nicht anders gesetzt werden, gelten die hier an­ge­ge­be­nen Werte:

directory=DATA_PUMP_DIR
dumpfile=expdat.dmp
logfile=export.log

Beim Anlegen eines DataPump-Exports ist min­des­tens anzugeben, was ex­por­tiert werden soll. In unserem Beispiel ist es das Schema “SCOTT”:

Prompt #> expdp schemas=scott

Es ist ebenfalls möglich, ganze Schemata zu ex­por­tie­ren und gleich­zei­tig bestimmte, na­ment­lich auf­ge­führ­te Objekte oder ganze Ob­jekt­ty­pen dabei aus­zu­schlie­ßen (al­ter­na­tiv nur spe­zi­fi­sche Objekte/Objekttypen ex­por­tie­ren mit include=):

Prompt #> expdp schemas=scott exclude=view,trigger
Prompt #> expdp schemas=scott include=table,constraint

Der DataPump-Import arbeitet ähnlich wie der Export. Er lädt den kom­plet­ten Dump, schließt Teile davon aus (exclude=) oder im­por­tiert aus­schließ­lich spe­zi­fi­zier­te Objekte/Objekttypen (include=). Für den Import von Objekten, die nicht zum eigenen Schema gehören, wird hier das DATAPUMP_IMP_FULL_DATABASE Recht benötigt.

RMAN-Backup

Oracle liefert u.a. für Backups bei allen Datenbank Edition kostenlos das Werkzeug Oracle Recovery Manager (RMAN) mit. Als in­te­grier­tes Tool ist der RMAN das prä­de­sti­nier­te Werkzeug für die Er­stel­lung von Backups.

Mit Hilfe eines RMAN-Backups kann eine komplette Oracle Datenbank physisch gesichert werden. Es ist aber auch hier möglich, nur Teile der Oracle Datenbank zu sichern, wie einzelne Tablespace(s), Datenfile(s), das Ser­ver­pa­ra­me­ter­file oder die Controlfile(s).

Mit einem RMAN-Full-Backup der Oracle Datenbank kann die komplette Datenbank zu einem be­stimm­ten Zeitpunkt X wie­der­her­ge­stellt werden. Ist der AR­CHI­VELOG MODE in der Oracle Datenbank aktiviert, kann das Backup auch online – also ohne Downtime – durch­ge­führt werden. Zudem er­mög­licht das Backup der Ar­chi­velogs, die Oracle Datenbank zu einem be­lie­bi­gen Zeitpunkt nach dem Anlegen des Full-Backups zu restoren. Vor­aus­set­zung dafür ist das Vor­han­den­sein von Ar­chi­velogs (oder Backups davon), die nach dem Full Backup angelegt wurden.
Auch hier ist ein Minimum anzugeben, was gesichert werden soll:

RMAN> backup datafile 1;

Daneben gibt es noch eine Vielzahl von Pa­ra­me­tern und Kommandos, mit denen die RMAN-Backups verwaltet werden können. Das folgende Kommando legt ein kom­pri­mier­tes Full Backup inklusive der be­nö­tig­ten Ar­chi­velogs an, um die Oracle Datenbank kon­sis­tent restoren und recovern zu können:

RMAN> backup as compressed backupset database plus archivelog;

Vor- und Nachteile

Der we­sent­li­che Un­ter­schied zwischen beiden Si­che­rungs­ar­ten ist, dass der DataPump-Export die Objekte logisch sichert, während mit RMAN die Backups physisch gesichert werden.

So ist es mit DataPump-Export möglich, einzelne Objekte für die Wie­der­her­stel­lung zu sichern. Hier liegt auch der klare Vorteil einer logischen Sicherung mit DataPump: die Wie­der­her­stel­lung einzelner Objekte, ohne die komplette Oracle Datenbank restoren zu müssen. Will man bei­spiels­wei­se nur eine Tabelle re­kon­stru­ie­ren, weil Daten un­be­ab­sich­tigt gelöscht wurden, so ist der Aufwand ist an dieser Stelle deutlich geringer als bei einem RMAN-Backup.

Der Vorteil der phy­si­schen Sicherung mit einem RMAN-Backup in der Ge­schwin­dig­keit der Wie­der­her­stel­lung wenn alle be­nö­tig­ten Kom­po­nen­ten gesichert wurden. 

RMAN:

  • sichert physisch
  • Sicherung und Wie­der­her­stel­lung der gesamten Datenbank bzw. ganzer Da­ten­files möglich
  • Wie­der­her­stel­lung einfacher und schneller, wenn alle be­nö­tig­ten Kom­po­nen­ten gesichert wurden

Data-Pump:

  • sichert Objekte logisch
  • Sicherung und Wie­der­her­stel­lung einzelner Objekte möglich, ohne die komplette Oracle Datenbank restoren zu müssen

Beispiel – Verlust einer kom­plet­ten Oracle Datenbank

Im Falle eines kom­plet­ten Daten(bank)verlustes, bei­spiels­wei­se bei einem defekten Da­ten­trä­ger, ist die Wie­der­her­stel­lung der Datenbank aus einem RMAN-Backup ver­gleichs­wei­se einfach. Vor­aus­set­zung ist hierbei ist jedoch, dass alle be­nö­tig­ten Kom­po­nen­ten gesichert wurden, d.h. Spfile, Con­trol­fi­le, Da­ten­files und ggf. Archivelogs. 

Als Erstes wird dazu das Spfile restored, im Anschluss daran folgt das Con­trol­fi­le und zum Schluss die Da­ten­bank­files. Im Falle eines Online-Backups wird, mit Hilfe der ge­si­cher­ten Ar­chi­velogs, ab­schlie­ßend ein Recovery der Datenbank durch­ge­führt und die Datenbank geöffnet.

Liegt nun aber lediglich ein Dump vor, muss zunächst eine leere Instanz ein­ge­rich­tet werden. Das kann durchaus einige Zeit in Anspruch nehmen. An­schlie­ßend kann erst der Dump ein­ge­spielt werden. Hier liegt also auch der we­sent­li­che Un­ter­schied zwischen beiden Si­che­rungs­va­ri­an­ten, der im Be­darfs­fall eine Menge Zeit in der Wie­der­her­stel­lung kosten kann.

Fazit

Welche Sicherung verwendet wird, hängt von ver­schie­de­nen Faktoren ab. Es empfiehlt sich auf jeden Fall ein RMAN-Full-Backup, um im De­sas­ter­fall die Datenbank möglichst ohne viele Eingriffe wie­der­her­stel­len zu können. Ins­be­son­de­re ist eine Wie­der­her­stel­lung zu einem be­stimm­ten Zeitpunkt nur mit RMAN-Backups, über das Anwenden der Ar­chi­velogs, möglich.

Ein DataPump-Export kann optional angelegt werden, wenn immer wieder einzelne Objekte aus diesen Dumps benötigt werden. Das kann hier eine sehr sinnvolle Ergänzung sein, reicht jedoch nach unserer Be­trach­tungs­wei­se als al­lei­ni­ges “Backup” nicht aus.

Im Übrigen lässt sich aus einem RMAN-Full-Backup eine Oracle Datenbank auch du­pli­zie­ren, z. B. für Testzwecke.

Hier findest du weitere in­ter­es­san­te Posts zu den Themen Oracle Datenbank  oder auch Backup and Recovery aus unserem News und Insights Bereich.

icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email