expdp and large database problems
4745Oct 13 2004 — edited Jan 4 2006having trouble getting myself set up with an automated backup using expdp. I have a database that is larger than the remaining space on the disk, so dmp files created with exp/expdp won't fit. in 8i we used to get around this using named pipes a la...
mkfifo expdat.dmp
exp sys/syspass full=y file=expdat.dmp &
gzip -c < expdat.dmp > expdat.dmp.gz
worked like a charm since the zipped file was small enough to fit on remaining space on the disk.
however with Data Pump i get an ORA-27038 error saying 'file to create already exists' when I try to expdp to a named pipe.
In another attempt, i wanted to use the FILESIZE parameter of expdp to limit the size of the exported files. from the oracle documentation...
'If there is insufficient space on the device to write a file of the specified size, the export operation will stop. It can be restarted after the situation is corrected.'
I was thinking each time the expdp process stopped, I'd zip the existing files, then check for suspended expdp jobs. if any are found i'd start them up until it ran out of space again or the job finished. easily automated, problem solved... or is it...
when the disk runs out of space instead of the job gracefully stopping i get a million messages like...
ORA-31693: Table data object "SCHEMA"."MYTABLE" failed to load/unload and is being skipped due to error:
ORA-31644: unable to position to block number 11818 in dump file "/dumpfiles/SCHEMA02.dmp"
ORA-19502: write error on file "/dumpfiles/SCHEMA02.dmp", blockno 11818 (blocksize=4096)
ORA-27072: File I/O error
Linux Error: 28: No space left on device
Additional information: 11817
and finally
Dump file set for SYSTEM.SCHEMA is:
/dumpfiles/SCHEMA01.dmp
/dumpfiles/SCHEMA02.dmp
Job "SYSTEM"."SCHEMA" completed with 167 error(s) at 14:40
the job is now finished and cannot be started.
am I doing something wrong with expdp? are there any tricks I can use to be able to create my files without running out of space? short of doing the expdp on a second server with enough space of course... not an option.
thanks in advance,
simon