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

