Oracle Database is taking time to shut down.
1. Before shutting down database, flush relevant information using command -
SQL> EXEC DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
2. Get the information of database status before shutdown -
SQL> SELECT * FROM V$TRANSACTION;
SQL> SELECT * FROM V$FAST_START_TRANSACTIONS;
SQL> SELECT COUNT(1) FROM SMON_SCN_TIME;
SQL> SELECT SID, SERIAL#, SQL_ID, LAST_CALL_ET, USERNAME, STATUS FROM V$SESSION;
--- Then do Disable archive processes, switch log files, checkpoint
3. Enable 10046 trace for database shutdown operation.
SQL> ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
--- Then shutdown the database in immediate mode.
ALTER SESSION SET EVENTS '10046 trace name context off'; --- If shutdown happens properly.
4. Because of delay, if you have to abort the database, immediately after startup, get the output of -
SQL> SELECT * FROM V$FAST_START_TRANSACTIONS;