ORA-28001 the password has expired

     

You install Oracle 11.2 and it runs fine – for a while. Then one day you reboot your server and sadly come to the conclusion that your database is down. When you visit the Enterprise Manager site it says:

The database is down. Please specify the host credentials to access database restart and diagnostics tools.

Then you log in with the OS credentials and then you see something like this:

But of course, you don’t think it has much to do with your problem so you move forward. Then on the main page you’ll get:

Enterprise Manager is not able to connect to the database instance. The state of the components are listed below.

and

ORA-28001 the password has expired

Okay, so now you try the startup option in EM. It actually says that it’s done it and all is fine now. Except it isn’t. The database is still down. Then you try to shutdown and startup via SQL*Plus but the result is the same.

So eventually you figure that it actually does have something to do with the expired passwords. So you disable this fucking stupid password expiration shit via SQL Developer, coz you can still connect:

alter profile DEFAULT limit password_life_time unlimited; 
alter profile MONITORING_PROFILE limit password_life_time unlimited;

Then you unlock the SYSMAN account:

alter user sysman account unlock;

Then log in with this user in SQL*Plus, which lets you in with the expired password (makes a lot of sense, right?) and asks you to reset it. If you wonder what the password is, it’s the same as the SYS password. So enter the same password which clears off the expired state on the account. Now repeat this with all the remaining accounts you see on the EM page. restart the database engine once again, and there you go, you have successfully fixed that pile of vomit called Oracle.