Het komt geregeld voor dat men een of een aantal tabellen van de ene server wil exporteren en weer wil importeren in een andere database. Dit kan door bijvoorbeeld op de server waar je wil importeren zowel de export als de import te draaien.
In eerste instantie zorg je dat je vanaf de "import server" een sql*plus connectie kan maken naar de "export server", dit kan je door een entry in de tnsnames.ora te plaatsen. Als dit gedaan is test je dit en kan je het export script draaien: export_mike.sh #!/bin/ksh id=`date '+%Y%m%d_%H%M'` export NLS_LANG=.WE8ISO8859P15 USERID="system/<password>@<server_sid>" PARFILE=/tmp/exp_mike.par LOGFILE=/tmp/exp_mike_${id}.log FILE=/tmp/mike.dmp touch ${PARFILE} chmod 600 ${PARFILE} echo " userid = ${USERID} buffer = 1024000 log = ${LOGFILE} file = ${FILE} rows=y direct=y consistent=y statistics=ESTIMATE tables=(MIKE.DUMMY1, MIKE.DUMMY2, MIKE.DUMMY3, MIKE.DUMMY4) " > ${PARFILE} exp parfile=${PARFILE} sync; sync; sync Vervolgens op de "import server" een sql*plus script neerzetten die de tabellen leegt die je wil importeren. Dit sql*plus script kan je in je import script aanroepen: truncate_mike.sql TRUNCATE TABLE MIKE.DUMMY1; TRUNCATE TABLE MIKE.DUMMY2; TRUNCATE TABLE MIKE.DUMMY3; TRUNCATE TABLE MIKE.DUMMY4; Nu kan je het import script draaien. In dit voorbeeld worden er voor iedere stap logfiles aangemaakt en wordt er na iedere stap een echo naar je scherm gestuurd zodat je kan zien waarje bent: import_mike.sh #!/bin/ksh # # Schedule on UNIX prompt: # echo imp_job.sh | at hh:mi # ORACLE_SID=<SID> ORAENV_ASK=NO . oraenv NLS_LANG=".WE8ISO8859P15" # je characterset export NLS_LANG id=`date '+%Y%m%d_%H%M'` USERID="system/Manager" PARFILE=/tmp/imp_mike.par LOGFILE=/tmp/imp_mike_${id}.log FILE=/tmp/mike.dmp touch ${PARFILE} chmod 600 ${PARFILE} echo "variabelen zijn gezet" sqlplus "/ as sysdba" << EOF1 2>&1 > /dev/null set linesize 132; spool /tmp/truncate_mike.log @/tmp/truncate_mike spool off EOF1 echo "tabellen zijn getruncate" sleep 5 echo "we kunnen weer verder met importeren" echo " ignore = y userid = ${USERID} log = ${LOGFILE} file = ${FILE} rows = y indexes = n commit = y fromuser= MIKE touser = MIKE " > ${PARFILE} echo "parfile is aangemaakt en importeren maar" imp parfile=${PARFILE} sync; sync; sync echo "klaar" |