I have experienced this is the past, and since you have the DB server and the ALM server hosted on the same physical server system, I believe that what is happening is a timing issue.
In order to have the ALM services start up completely the DB sever must already be up and running prior to starting the ALM services. I believe what is happening is that the DB server is not fully started when the ALM services are attempted to start after a reboot/restart of the server. This would cause the services startup to fail and not complete in order to have the ALM server running.
What I would suggest is that you set a recovery option on the ALM services. You can do this by performing the following:
1) Launch the Windows Application services application (not to be confused with the ALM services option).
2) Scroll down through the available services to the HP Application Lifecycle Management service
3) Select this service to highlight it (at this point I will bet it is being reported as started, meaning the only options available are to stop and restart the services, but it hasn't completed startup correctly and the tray icon on the lower right should have the ALM icon with a red slash through it and a circle around it and when hovered over reports as being stopped).
4) Right click this highlighted service
5) Select the properties option
6) I the properties box select the Recovery Option tab
7) In the first and second failure boxes select the ''restart services'' option as this will guarantee the services retry to start at least 2 times.
8) Click the ''Apply'' button
9) Close the properties box.
You can now test your recovery plan by restarting/ rebooting the server and it should start the services correctly this time.
Hope this helps,