Recently at a customer I was confronted with a problem of restarting the Oracle Database 12c automatically on a Windows Server 2008 R2 x64.
I installed Oracle 12.1.0.1.0 with a user of service in a domain who has member of the Group ORA_DBA. The authentication service is correctly set with the NTS parameter in the sqlnet.ora file.

This Installation has been successfully but after a reboot we can see the database are not OPEN.

oracle@********:C:\Users\oracle\ [rdbms1201] DBPIO22
********* dbi services Ltd. *********
STATUS : STOPPED
*************************************
oracle@********::C:\Users\oracle\ [DBPIO22] sqh
SQL*Plus: Release 12.1.0.1.0 Production on Mar. Nov. 10 13:51:35 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connecté à une instance inactive.
.
SQL> select status from v$instance;
select status from v$instance
*
ERREUR à la ligne 1 :
ORA-01034: ORACLE not available
ID de processus : 0
ID de session : 0, Numéro de série : 0

A restart of the service doesn’t work. When we restart the service, no commands are sent to the database instance.
Unfortunately we find no information in the alert log concerning this problem.

The Oracle Service in the services.msc have been correctly configured for a Automatic restart :
services.msc

Solution

This problem provide of the parameter SQLNET.OUTBOUND_CONNECT_TIMEOUT in the sqlnet.ora file. This parameter is to specify the time for a client to establish an Oracle Net clients to the database. The outbound connect timeout interval includes the time taken to be connected to an Oracle instance providing the requested service.

If you want restart automatically the database on Windows environment you should modify the value at “0” or comment the parameter SQLNET.OUTBOUND_CONNECT_TIMEOUT:

# ****************************************************************************
# Specify the time for a client to connect with the database server
# and provide the necessary authentication information
# unit in seconds
#
SQLNET.INBOUND_CONNECT_TIMEOUT=60
# ****************************************************************************
# Specify the time for a client to establish an Oracle Net connection
# to the database, superset of the TCP connect timeout ( i.e : 8min on Linux)
# unit in seconds
SQLNET.OUTBOUND_CONNECT_TIMEOUT=0

After a reboot, If you have change the value of this parameter in the sqlnet.ora file, the database has rebooted automatically and successfully:

SQL> select INSTANCE_NAME, STATUS,STARTUP_TIME,VERSION from v$instance;
.
INSTANCE_NAME STATUS STARTUP_TIME VERSION
---------------- ------------ ---------------------- -----------------
dbpio22 OPEN 10-NOV. -2015 14:04:30 12.1.0.1.0

I have open a Service Request to Oracle Support for this bug, I wait for a patch update for fix the bug on Windows environment.

The bug is fixed on Oracle 12.2 but on the release 12.1.0.1 the patch is not available specifically for Microsoft Windows x64 (64-bit). The bug is in Development Working status.

Many Thanks to Nicolas Jardot for his Help and Expertise 🙂