ORA-01154: database busy. Open, close, mount, and dismount not allowed

 Normal database environment

If database is giving following message then you can use shutdown abort and startup it again.

If not fixed then you can use shutdown abort command
Shutdown abort command kill your instance process and on startup you database will go to instance recovery state.

Shutdown abort;
Startup

Dataguard Environment
If standby server is open in Read-only mode & is in Recover state and you tried to open directly then it fail with the following error:


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Now When I type the following command, it throws an error:
SQL...> alter database open;
alter database open
*
ERROR at line 1:
ORA-01154: database busy. Open, close, mount, and dismount not allowed now

Solution:
1. Open the database in Read-only;

OR

1. Cancel the Recover process of dataguard.
2. Create a recovery point.
3. Open the database.
4. Recover up-to recovery point.
5. Start the recovery process of dataguard.

Related posts

Khắc phục lỗi recovery khi OPEN RESETLOGS lỗi SYSTEM trong Oracle Database?

check the FRA usage and troubleshoot the issue in oracle DB

ORA-16086: Redo data cannot be written to the standby redo log