Primeiro, verifique o arquivo ALERT.LOG normalmente localizado em D:\app\oracle\diag\rdbms\DBNAME\SID\trace\ .
As últimas entradas em seu ALERT.LOG devem fornecer uma indicação sobre o que está acontecendo. O banco de dados está iniciando? Desligando?
Caso o banco de dados fique travado no processo de desligamento, você pode tentar matar o oracle.exe processo e, em seguida, reinicie o banco de dados via Windows Service.
Muitas vezes, quando o banco de dados parece travar na inicialização, na verdade ele está aplicando REDO para obter um estado consistente, portanto, preste muita atenção no que o ALERT.LOG informa.