Database gives "ORA-01109: Database not open" error when it IS open
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.