ORA-28001: the password has expired

  • 0
  • 1
  • Question
  • Updated 2 years ago
  • Answered
Hi,

coming back after a couple of weeks to my LandShark VM ws lab I've performed some change to the source db (XE).
Issuing the refresh command from a branch to have the new source data on my vDB Delphix admin gui I have an error:

Cannot connect to database due to: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLException: ORA-28001: the password has expired

Which user password? Why this expires?
Furthermore the dSource has the unlink icon.

Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb

Posted 2 years ago

  • 0
  • 1
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Now, after a failed refresh attempt. my linuxtarget instance, fails with the same error of linuxsource.
When just started the source worked and i was able to add a new record.


Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
look here. A demo env where account expires? 
SQL> select username,account_status from dba_users;
USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SYSTEM                         OPEN
SYS                            OPEN
ANONYMOUS                      OPEN
DELPHIXDB                      EXPIRED
APEX_PUBLIC_USER               LOCKED
APEX_040000                    LOCKED
XS$NULL                        EXPIRED & LOCKED
OUTLN                          EXPIRED & LOCKED
XDB                            EXPIRED & LOCKED
CTXSYS                         EXPIRED & LOCKED
MDSYS                          EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
FLOWS_FILES                    EXPIRED & LOCKED
HR                             EXPIRED & LOCKED
(Edited)
Photo of Adam Bowen

Adam Bowen, Official Rep

  • 17,420 Points 10k badge 2x thumb
Yeah, I know. That was my mistake. I am currently working on the next iteration, and it the new DB will not have a password expiration.
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Solved on production altering some table and fixing delphixdb user.
But I cannot issue SQL command for it reports "Connected to an idle instance". Startup command reports

ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/xe/dbs/initXEXE.ora'

 
Photo of Adam Bowen

Adam Bowen, Official Rep

  • 17,420 Points 10k badge 2x thumb
Giacomo, are you still having this issue?
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Hi Adam,
sorry for late in answer. I was out of office.
I was able to fix the source database using the command suggested by Ohjoo.
I've tried to do it the same on my two targets with no success.
sql plus reports that is connected to an idle instance.
I could delete all my provisioned vdb, I know, but on that timelines I had performed something interesting to demo to customers...
If I could to save my targets it could be better :-)
Photo of Ohjoo

Ohjoo

  • 172 Points 100 badge 2x thumb
After installing DelphixExpress, I executed two commands against Source database.

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER USER delphixdb IDENTIFIED BY delphixdb;
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Yes. I've discovered that limit using google :-) and I was able to do it on source db...not on targets vdb. See the answer to Adam above.
Thanks
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Any news?

I've deleted all my containers and target environments to recreate it from scratch.

But I cannot provision a new copy of vdb for the same password issue.


Cannot connect to database due to: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLException: ORA-28001: the password has expired


Is there a way to change the delphixdb user password. Remember that SQL plus does not work for it reports that is connected to an idle istance!

I would avoid to redeploy from OVA! A lot of things to change in targets!
(Edited)
Photo of Adam Bowen

Adam Bowen, Official Rep

  • 17,420 Points 10k badge 2x thumb
Giacomo,

have you set your ORACE_SID correctly before trying to sqlplus? i.e. ORACLE_SID=devdb

That "connected to idle instance" message usually means you have specified the wrong SID.

Also, after unlocking the the source, did you take a new snapshot of the daource? Any vdbs created or refreshed from that new snapshot would also be unlocked.
Photo of Giacomo Milazzo

Giacomo Milazzo

  • 284 Points 250 badge 2x thumb
Hi Adam,
you last sentence light me! snapshot...that's the word.
As I told you before I've removed the target environment and recrated using landshark_setup.py. My mistake was to provision using the original snapshot taken times ago, before the user password expiration change.
So I've taken another snapshot and I was able on untouched and fresh linuxtarget2. It worked.
BUT...I'm not able to do the same on linuxtarget1.
I've performed on it the same sequence but I've got this:

rm -f $ORACLE_HOME/dbs/spfile${ORACLE_SID}.ora
DELPHIX>$DLPX_SHELL $DB_SCRIPT_DIR/mount-vdb-instance.sh "restrict pfile='/mn
ORA-45301: XE Edition single instance violation error
ERROR : SQL> Disconnected
#####DELPHIX_END_ERROR#####
MOUNT_DATABASE_ERROR

It seems that there's the instance loaded but some way not working...

Anyway, I've restarted from scratch importing the OVA. It's a pity for I've had a lot of things to show to customer in some demo.
(Edited)