What is the purpose of the sgadef.dbf file?

Body: 

The sgadef.dbf file can be found in the ${ORACLE_HOME}/dbs directory. Whatever you do, DO NOT REMOVE IT!!! It tells the Oracle shadow processes the address of the SGA when the process first connects to the database. If the process cannot find this file, it assumes the database is down.

Problems can arise when the reverse is true ie. the database is down but the sgadef.dbf file exists, as happens when the system crashes. In this case, the memory segment addressed in the file doesn't exist (try ipcs -m to convince yourself), which results in an error.