Oracles documentation states:
ORA-01041: internal error. hostdef extension doesn't exist
Cause: Pointer to hstdef extension in hstdef is null.
Action: Report as a bug
So, if you have support from them, I'd suggest that you contact them. Digging into errors in Oracle can really drive you mad sometimes.
But from what I have understood the error have to do with the connection between the databases (or the database and the client), so there are a few things you can check.
First of all, it could be that simple that the files just doesn't exists.
So verify that these files exists (and can be read by the database):
/home/u01/app/oracle/oradata/orcl/system01.dbf
/home/u01/app/oracle/oradata/orcl/sysaux01.dbf
Also verify that the ORACLE_HOME is set correctly, and that the tnsnames.ora contains the definition to both of the databases (it should since you are connected to both of them, but better verify it), and also check if you're using a different tnsnames than the database.
The listener could be a problem as well, perhaps the stdby never gets registered there, you can try to add it manually in the listener file instead of letting it register itself.
I have also had problems if the hostname used doesn't exist in the /etc/hosts file, even if using a dns, so that is something you could try as well.
If it still doesn't help. have a look in the alert log and trace files, perhaps they provide more information of the problem.
That's all the ideas I've got, hope it helps you a bit at least.
Update:
hmm, after checking a bit more, it looks to me that one issue could be that you actually don't specify the location of the db-files.
Try to add:
set db_file_name_convert='/home/u01/app/oracle/oradata/orcl/',
'/home/u01/app/oracle/oradata/stdby/'
after the spfile statement
You might also want to add parameter_value_convert 'orcl','stdby'
not sure if it is neccessary, but it looks like it could be a good idea.
The problem is in the error and is common in all programming languages.
Your variable is too small for the value you are putting in it. This is a common pl/sql exception. The easy way to keep this from happening is to anchor your pl/sql variables to columns. Do NOT do this
variableName variableType(Variable length)
If you change a column, to make it longer you need to change code to make the variable wider. Do this:
variableName column.table%TYPE
So if you want to base a variable off of the employees table and the customer name field do this
vCustomerName employees.customerName%type;
This has been available in pl/sql for 15-20 years.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Best Answer
The expiration of passwords in Oracle is controlled by the profile that is assigned to the user. You can see which profile is assigned to each user by querying the DBA_USERS table
You appear to be hitting the
PASSWORD_LIFE_TIME
limit. Prior to 11g, the DEFAULT profile had this set to UNLIMITED. To improve security, 11.1 started forcing periodic password changes. You can revert to the old behavior either by creating a new profile and assigning that new profile to your existing users or by updating the existing profile that is already assigned to your users. Since it sounds like you want to change this behavior for everyone, it's probably easier to just modify the DEFAULT profile.Of course, if the first query indicates that your users are assigned a profile other than DEFAULT, you'd want to alter that profile instead.
If you're interested in what other behaviors a profile controls, the CREATE PROFILE documentation is quite useful.