By katsumii on Feb 21, 2014
If you are desperately salvaging out data or doing forensics or auditing type of job or just poking around buffer cache or in-memory columnar area and do not want to use oracle tools, I found there are at least 2 ways.
- Run gcore on oracle process
- You can pipe to od or perl with 'shmcat'. Plus, you can dump shared memory segments selectively.
This is a simple tool that dumps shared memory segments (System V and POSIX), files and text. It might be useful when you have to debug programs that use shared memory.
Lastly, here are some caveats and foot notes.
- I don't think we(oracle) support that instance will run healthy after dumping SGA. Please check with apporopriate channel.
- I don't know if any oracle tool can dump SGA in similar way. And I'm afraid Oracle Support won't help finding such tool.
- I'm not sure if there's a case when one needs to dump SGA to salvage data even when db is noarchivelog mode and on-line redo logs are accidentally deleted or when all background processes died unexpectedly.