Exporteren en Importeren Oracle database met exp en imp

5 nov

Met behulp van exp en imp kun je in Oracle een database exporteren en importeren. Dit kan nuttig zijn voor bijvoorbeeld het verversen van een testdatabase of voor een migratie naar een andere database versie. In de huidige Oracle 10g versies heten de programma’s imp.exe en exp.exe (%ORACLE_HOME%\BIN), in de 8i versies was dit exp80 en imp80. De werking is zo goed als hetzelfde.

Hieronder de uitleg voor het exporteren en importeren in een Windows 2003 Server omgeving.

Exporteren data uit brondatabase
Om de data te exporteren moet er eerst een parfile (parameter file) worden gemaakt. Deze file bevat de settings voor de export. Het is ook mogelijk de parameters bij de aanroep van exp.exe als argumenten mee te geven. Er zijn meerdere parameters mogelijk, onderstaande zijn nodig om de gehele database te exporteren.

userid=user/pass@db
file=D:\pad_naar_exportlocatie\dump
log=D:\pad_naar_exportlocatie\log
full=y
consistent=y
buffer=1000000
compress=n
statistics=none

Vervolgens start je een command prompt en zet je je Oracle variabelen (ORACLE_HOME, ORACLE_SID). Met onderstaand commando voer je de export uit (als voorbeeld is exp.par als parameter bestand gekozen):
exp parfile=exp.par

Voorbereiden doeldatabase
Indien de doeldatabase een nieuwe database is, dan deze gewoon naar wens installeren. Indien de doeldatabase een bestaande database is volg je onderstaande stappen:

  • Backup van de doeldatabase maken
  • Inloggen als sysdba op de doeldatabase
  • Zorgen dan niemand kan inloggen tijdens en eventuele openstaande sessies verbreken:
    alter system enable restricted session;
    --disconnecten gebruikers
    declare
    cursor c_users is
    select sid, serial#
    from v$session
    where username != 'SYS'
    and username is not null;
    begin
    for r_user in c_users
    loop
    execute immediate('ALTER SYSTEM KILL SESSION '''||r_user.sid||','||r_user.serial#||''' IMMEDIATE');
    end loop;
    end;
    /
  • Verwijder het oude schema:
    drop user doeluser cascade;
  • User opnieuw aanmaken:
    CREATE USER DOELUSER
    IDENTIFIED BY ...
    ...
  • Systeem weer toegankelijk voor alle gebruikers:
    alter system disable restricted session;

Importeren data in doeldatabase
Ook voor het importeren hebben we een parameter file nodig. In dit voorbeeld imp.par (vul voor bronuser en doeluser de juiste waarden in):
userid=user/pw@db
file=D:\pad_naar_exportlocatie\dump.DMP
log=D:\D:\pad_naar_exportlocatie\imp.DMP
fromuser=bronuser
touser=doeluser
ignore=y
buffer=1000000

Vervolgens start je een command prompt en zet je je Oracle variabelen (ORACLE_HOME, ORACLE_SID). Met onderstaand commando voer je de import uit:
imp parfile=imp.par

Compile invalid objects
Maak verbinding met de doeldatabase als sysdba gebruiker.

  • Compile invalid objects:
    @%ORACLE_HOME%\rdbms\admin\utlrp

Trackbacks and Pingbacks

  1. ROB CILISSEN » EXP-00008 en EXP-00056 foutmeldingen tijdens Full export Oracle Database - 06-12-2007

    [...] het exporteren van een Oracle database zoals omschreven in exporteren en importeren oracle database met exp en imp treden een aantal fouten [...]

Leave a Reply