------解决方案--------------------
I had the same problem of the database not mounting and opening after a reboot with Oracle 10g. I finally figured out the problem and solution.
The startup of the database requires access to the pfile. I choose not to have the pfile in the default location under the Oracle Home. Therefore although the service OracleServiceSID started, it could not auto start the database.
You can specify an alternate location for the pfile when creating the service.
Oradim -new -sid SID -startmode auto -pfile C:\mypath\InitSID.ora
To correct the problem I had to tell the service where my pfile is. That is done in the registry at LOCAL_MACHINE/Software/Oracle/KEY_OraDb10g_home1. I had to create a string registry value called ORA_SID_PFILE, where SID is my Oracle SID. The value of the registry setting is the full path of pfile.