"Is there any v$views that gives us the complete history regarding the startup and shutdown of databases. "
Startup is in v$instance.startup_time, but shutdown data is problematic.
During a normal shutdown, Oracle writes message to the alert log, but under an emergency abort (i.e. un-plug the server), nothing appears in the logs, nor within Oracle. Oracle stops abruptly, and there is no way to see it, except periodlic polling for a PMAON or SMON process.
Startup and shutdown are written to the alert log, externally, but you could define the alert log as an external table and run a query to see startup time.
http://www.dba-oracle.com/t_oracle_alert_l...rnal_tables.htmOr, try this query to see uptime, from v$instance
SQL
select 'Hostname : ' || host_name
,'Instance Name : ' || instance_name
,'Started At : ' || to_char(startup_time,'DD-MON-YYYY HH24:MI:SS') stime
,'Uptime : ' || floor(sysdate - startup_time) || ' days(s) ' ||
trunc( 24*((sysdate-startup_time) -
trunc(sysdate-startup_time))) || ' hour(s) ' ||
mod(trunc(1440*((sysdate-startup_time) -
trunc(sysdate-startup_time))), 60) ||' minute(s) ' ||
mod(trunc(86400*((sysdate-startup_time) -
trunc(sysdate-startup_time))), 60) ||' seconds' uptime
from sys.v_$instance;
If you assume that PMON startup time is the same as the database startup time, you can get the uptime here:
SQL
SELECT to_char(logon_time,'DD/MM/YYYY HH24:MI:SS')
FROM v$session WHERE sid=1