ich schaue mir gerade die ganzen Scripte an die auf unseren Servern liegen (seit kurzem kann ich die Dinger auch einigermaßen lesen…).
bei einem export-Script wird ein FIFO-File angelegt und das wird dann bei EXP als file angegeben.
exp userid=${CONNECT_STRING} file=${ORACLE_SID}_${METHOD}_exp.p log=${LOG_FILE} \
.
.
Das ganze wird komprimiert und dabei dann in das eigentliche dmp-File geschoben/umbenannt
makefifo () {
cd ${DESTINATION_PATH}
[-p ${ORACLE_SID}_${METHOD}_exp.p] && rm -f ${ORACLE_SID}_${METHOD}_exp.p
mkfifo ${ORACLE_SID}_${METHOD}_exp.p
if [$? -ne 0]; then
ExitProc 10 „Kann Named Pipe nicht erzeugen …“
exit
fi
compress -f $EXP_FILE &
}
Was wird damit erreicht ?
und noch eine Frage, die Variable CONNECT_STRING enthält ja nur ("/") wie funktioniert das ?funktioniert das nach dem gleichen Prinzip das man sich ja auch mit sqlplus ‚/ as sysdba‘ anmelden kann ?
Bei älteren Betriebsystem(BS) ist die maximale Dateigrösse 2GB, wenn der OracleDump grösser wird als 2GB dann bricht das BS ab. Um nun zu verhindern, dass die Datei grösser wird als 2GB kann man in eine NamedPipe exportieren und dann komprimieren.
Da sich OracleExports sehr gut komprimieren lassen kannst du hier einen sehr grossen Dump exportieren ohne das du an die BS- Dateigrössengrenze kommst.
danke dir für die Antwort, noch eine Frage, ist eine Pipe eine Art Swapspace der den Dump erst einmal aufnimmt und dann als komplettsatz komprimiert oder wird on the fly in die Datei geschrieben und währenddessen direkt komprimiert ?