Database gives "ORA-01109: Database not open" error when it IS open Running Oracle Database 12c on Windows Server 2012


Whenever I attempt to do a log switch (alter system archive log current), I am given the error in the title. Searching online shows the simple solution of opening the database via alter database open, then checking the status via select status from v$instance to ensure it is open will fix the issue. However, anytime I check the status, it is already in an OPEN state. alter database open doesn't do anything as it's already open.

Anyone have any idea why I'm encountering this issue? Any help would be appreciated.

Thanks
Your database instance is open. 

Your database open_status is a different thing, it could be open READ ONLY. The database is expected to be open for READ WRITE when you switch a logfile. So you might conclude that the error message is not complete.

select name, open_mode from v$database;


and since you are in 12c also check:

select name, open_mode from v$pdbs;


Most likely your database is not open for READ WRITE, as the error states. Question that remains is: why?

Documentation about Oracle Database Instance

When your database is open READ ONLY and try to perform a log switch, you get ORA-1109 : database not open.