ORACLE Export (exp) vs Datapump (expdp)
ORACLE biedt twee externe hulpprogramma's om database-objecten van de ene database naar een andere database over te brengen. Traditionele export (exp / imp) wordt geïntroduceerd vóór 10g. Vanaf 10g introduceerde ORACLE datapump (expdp / impdp) als een verbetering van het traditionele exporthulpprogramma.
Traditionele export (exp/ imp)
Dit is een extern hulpprogramma voor de ORACLE-database, dat wordt gebruikt om database-objecten van de ene databaseserver naar een andere databaseserver over te brengen. Hiermee kunnen de database-objecten over verschillende platforms, verschillende hardware- en softwareconfiguraties worden overgedragen. Wanneer een exportopdracht wordt uitgevoerd op een database, worden databaseobjecten geëxtraheerd met hun afhankelijkheidsobjecten. Dat betekent dat als het een tabel extraheert, de afhankelijkheden zoals indexen, opmerkingen en subsidies worden geëxtraheerd en naar een exportbestand worden geschreven (dumpbestand in binair formaat). Hieronder volgt de opdracht om een volledige database te exporteren, Cmd > exp userid=gebruikersnaam/[email protected]_tns file=export.dmp log=export.log full=y statistics=none
De bovenstaande opdracht zal de database naar een binair dumpbestand exporteren met de naam export.dmp. Vervolgens kan het hulpprogramma imp worden gebruikt om deze gegevens in een andere database te importeren. Hieronder volgt het commando om te importeren, Cmd > imp userid=gebruikersnaam/[email protected]_tns file=export.dmp log=import.log full=y statistics=geen
Datapump-export (expdp/impdp)
Dit is ook een extern hulpprogramma voor de ORACLE-database, dat wordt gebruikt om objecten tussen databases over te dragen. Dit hulpprogramma komt uit de ORACLE 10g-database. Het heeft meer verbeteringen dan de traditionele exp/imp-hulpprogramma's. Dit hulpprogramma maakt ook dumpbestanden, die in binaire indelingen zijn met databaseobjecten, objectmetagegevens en hun besturingsinformatie. De opdrachten expdp en impdp kunnen op drie manieren worden uitgevoerd,
- Opdrachtregelinterface (specificeer expdp/impdp-parameters in de opdrachtregel)
- Parameterbestandsinterface (specificeer expdp/impdp-parameters in een apart bestand)
- Interactieve commando-interface (verschillende commando's invoeren in de exportprompt)
Er zijn vijf verschillende manieren om gegevens te ontladen met expdp. Ze zijn,
- Volledige exportmodus (hele database wordt verwijderd)
- Schemamodus (dit is de standaardmodus, specifieke schema's worden verwijderd)
- Tabelmodus (opgegeven set tabellen en hun afhankelijke objecten worden verwijderd)
- Tablespace Mode (de tabellen in de gespecificeerde tablespace worden verwijderd)
- Transportable Tablespace Mode (alleen de metadata voor de tabellen en hun afhankelijke objecten binnen een gespecificeerde set tablespaces worden verwijderd)
Het volgende is de manier om een volledige database te exporteren met expdp, Cmd > expdp userid=gebruikersnaam/wachtwoord dumpfile=expdp_export.dmp logfile=expdp_export.log full=y directory=export
Dan moet het impdp-hulpprogramma worden gebruikt om dit bestand in een andere database te importeren.
Wat is het verschil tussen traditionele export en datapump?
• Datapump werkt op een groep bestanden die dumpbestandensets worden genoemd. Normale export werkt echter op een enkel bestand.
• Datapump-toegangsbestanden op de server (met behulp van ORACLE-directory's). Traditionele export heeft toegang tot bestanden in zowel client als server (zonder gebruik te maken van ORACLE-mappen).
• Exports (exp/imp) vertegenwoordigen database-metadata-informatie als DDL's in het dumpbestand, maar in datapump vertegenwoordigt het in XML-documentformaat.
• Datapump heeft parallelle uitvoering maar in exp/imp enkele stream uitvoering.
• Datapump ondersteunt geen sequentiële media zoals tapes, maar traditionele export ondersteunt.