I noticed that your dbshut call was put in the background with the &. While it is acceptable to have the startup in the background, the shutdown should be called in the foreground. Otherwise, there is the distinct possibility that the system could shutdown before all of the databases were closed, which would cause them to 'crash'.

What are the exact messages in the system log? The TNS error number and exact order may indicate the actual problem v. a secondary symptom.

It has been my experience that the cause is usually related to the environment. Although su - should properly set the environment, I have found that it is not always the case.