Recently I had an older OVM system that the admin was unable to log into. He tried to restart the OVM a few times, but still was unable to log in. As a background, the client uses the embedded XE database.
After a quick phone call, and another chat about upgrading from 3.0.3 to 3.2.8 and the database to MySQL. After that nag, I rolled up the sleeves and took a look.
First, you need to look at the log;
cd /u01/app/oracle/ovm-manager-3/machine1/base_adf_domain/servers/AdminServer/logs
tail AdminServer-diagnostic.log[2014-06-09T13:49:27.526-04:00] [AdminServer] [ERROR] [] [com.oracle.ovm.mgr.faces.backing.Login] [tid: [ACTIVE].ExecuteThread: ‘1’ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: <anonymous>] [ecid: 11d1def534ea1be0:1328b505:14681b2b695:-8000-000000000000005b,0] [APP: ovm_console] Unexpected error during login (com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_6000E Internal Error: Connection refused Connection refused[[
In the log, you can see that this is a login error. After talking with the admin, it appears that they changed the admin user password last year, after a staff change. From experience, I want to take a look at the database user.
so, a quick su to the oracle user and into the database we go;
[root@brokenbox init.d]# su – oracle
[oracle@brokenbox ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.2.0 Production on Mon Jun 9 15:21:11 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
Now I want to look for expired database users;
SQL> select username from dba_users where account_status like ‘%EXPIRED%’;
USERNAME
——————————
OVS
XDB
HR
OUTLN
CTXSYS
MDSYS
XS$NULL
FLOWS_FILES8 rows selected.
I can see that the OVS user is expired, this is not great, since OVM uses this user to access the database. The challange is to unexpire the database, you have to change the password. Now this would be OK, but the client did not want the pasword changed.
There is a trick…
We can pull the current encrypted password, and use that when we unlock the user.
First we need to pull the password;
SQL> SELECT ‘ALTER USER ‘|| name ||’ IDENTIFIED BY VALUES ”’|| spare4 ||’;’|| password ||”’;’ FROM sys.user$ WHERE name=’OVS’;
‘ALTERUSER’||NAME||’IDENTIFIEDBYVALUES”’||SPARE4||’;’||PASSWORD||”’;’
——————————————————————————–
ALTER USER OVS IDENTIFIED BY VALUES ‘S:A1D89319CEF3EED4E5270C89EBC246B715489504A
C0B117F0C28C69C573F;SEEDE91B1EFDD8M57‘;
No that we have that, I can alter the user, unlocking the account
SQL> alter user OVS identified by values ‘S:A1D89319CEF3EED4E5270C89EBC246B715489504AC0B117F0C28C69C573F;SEEDE91B1EFDD8M57‘;
Alter that, I checked the user;
SQL> select username, account_status from dba_users where username=’OVS’;
USERNAME ACCOUNT_STATUS
—————————— ——————————–
OVS OPEN
Now, exit sqlplus, and go back to root. Then simply restart ovmm.
[root@brokenbox init.d]# ./ovmm stop
Stopping Oracle VM Manager [ OK ]
[root@brokenbox init.d]# ./ovmm start
Starting Oracle VM Manager [ OK ]
Now he could login, and continue the long overdue discussion about that upgrade.