ORA-15045: ASM file name ‘+DATA’ is not in reference form

Error Message:

RMAN-06136: ORACLE error from auxiliary database: ORA-00200: control file could not be created
ORA-00202: control file: ‘+DATA’
ORA-15045: ASM file name ‘+DATA’ is not in reference form
ORA-17502: ksfdcre:5 Failed to create file +DATA
ORA-15081: failed to submit an I/O operation to a dis

Cause:

There are permissions problem.

Solution:

The following solution helped me, hope be the same for you.

[oracle@node2  ~] ls -la $ORACLE_HOME/bin/oracle

-r-sr-s–x 1 oracle oinstall  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

[oracle@node2  ~] su –
Password:

[root@node2  ~] chown oracle:asmadmin  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

[root@node2  ~] ls -la  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

-r-xr-x–x 1 oracle asmadmin  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

[root@node2  ~] chmod a+s  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

[root@node2  ~] ls -la  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

-r-sr-s–x 1 oracle asmadmin  /u01/app/oracle/product/11.2.0/db_1/bin/oracle

Note:

[root@node1 ~]# id oracle
uid=501(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),503(asmdba),505(oper)
[root@node1 ~]# id grid
uid=500(grid) gid=500(oinstall) groups=500(oinstall),501(dba),502(asmadmin),503(asmdba),504(asmoper)

Oracle is oracle software owner and Grid user is grid software owner. So I have two different users.

ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

Error description:

SQL> alter database archivelog;
alter database archivelog
*
ERROR at line 1:
ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

Cause:

The database was crashed itself or you issued shutdown abort or startup force commands.

In my case I issued the following command, to take database into mount state.

SQL> startup mount force;

Solution:

SQL> select status from v$instance;

STATUS
————————————
MOUNTED

SQL> alter database open;

Database altered.

SQL> shutdown immediate;

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.

Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 88081064 bytes
Database Buffers 197132288 bytes
Redo Buffers 7139328 bytes
Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

 

 

 

ORA-01017: invalid username/password; logon denied(database link error)

When I was creating database link from Oracle 10g to 11g like that:

SQL> create database link mylink_name connect to myuser_name identified by mypassword using 'MYSID';

Database link created

got ORA-01017 error.

Cause:

This may happen if in 11g database, there is enabled the following parameter:

SQL> show parameter sec_case_sensitive_logon;

NAME                                 TYPE        VALUE
----------------------------------- --------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE

 

Solution:

Recreate database link by the following way:

SQL> drop database link mylink_name;

Database link dropped

SQL> create database link mylink_name connect to "myuser_name" identified by "mypassword" using 'MYSID';

Database link created

To check it:

SQL> select * from dual@mylink_name;

DUMMY
-----
X

ORA-01466 unable to read data – table definition has changed

This is a time-based read consistency error, which may occur during flashbacking object.

For example, I was running the following statement:

SELECT text
FROM dba_views AS OF TIMESTAMP to_timestamp('8-SEP-2011 6:14:35','DD-MON-YYYY HH24:MI:SS')

ORA-01466: unable to read data - table definition has changed

 

Let’s check undo_retention parameter:

SQL>  SELECT value/60/60 as Hours
 2    FROM v$parameter
 3    WHERE name='undo_retention';

    HOURS
---------
3.02777777

So my retention period is 3hours…If I want to flashback object to before more than 3 hours I will get ORA-01466.

ORA-28221: REPLACE not specified

Very interesting situation. This error occurs, when user’s profile has limit password_verify_function, at the same time user doesn’t have ALTER USER privilege and trying to run the following statement:

ALTER USER my_user IDENTIFIED BY my_password;

* If user doesn’t have that limit in profile, he/she can change its password by this way without any problem.

* If she/he has that limit, it should have ALTER USER privilege to change password by this way without any problem.

 

There is also another way, if you are not able to change password by the previous command, but you must know old password:

ALTER USER my_user IDENTIFIED BY my_password REPLACE my_old_password;

Just one more trick in Oracle, that you should know…

sqlplus: error while loading shared libraries

Error Description: sqlplus: error while loading shared libraries: $ORACLE_HOME/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

One of the way to solve this error is to disable SELinux(as some people advice on the forums). But it is related to the security risks.

So I decided to use Linux provided solution, which is safer:

–After I ran the following command:

# sqlplus / as sysdba

There appeard our error and some tip on the screen, indicating the solution of this error, I want to share it with you.

The brief summery is to run the following command:

$ chcon -t textrel_shlib_t '/u0/app/oracle/product/11.2.0/db_1/lib/libcntsh.so.11.1'

Note: My $ORACLE_HOME=/u0/app/oracle/product/11.2.0/db_1

The whole text in the message from Linux is the following , I think it is very interesting:

Summary
SELinux is preventing sqlplus from loading /u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
which requires text relocation.

Detailed Description
The sqlplus application attempted to load /u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1 which requires text relocation.
This is a potential security problem. Most libraries do not need this permission.
Libraries are sometimes coded incorrectly and request this permission.
The SELinux Memory Protection Tests web page explains how to remove this requirement.
You can configure SELinux temporarily to allow /u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
to use relocation as a workaround, until the library is fixed.
Please file a bug report against this package.

Allowing Access
If you trust /u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1 to run correctly,
you can change the file context to textrel_shlib_t.
 "chcon -t textrel_shlib_t '/u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1'"
You must also change the default file context files on the system in order to preserve
them even on a full relabel.
"semanage fcontext -a -t textrel_shlib_t '/u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1'"

The following command will allow this access:
  chcon -t textrel_shlib_t '/u0/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1'

...

Failed to auto-start Oracle Net Listener

Error  : Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr

Cause: This is due to a hard coded path in the dbstart script.

Solution:

In $ORACLE_HOME/bin/dbstart script replace

ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

with

ORACLE_HOME_LISTNER=$ORACLE_HOME
The dbstart script shold now start the listener as expected.

ORA-32589:unable to drop minimal supplemental logging

Error: ORA-32589: unable to drop minimal supplemental logging

Cause: Minimal supplemental logging cannot be dropped until one of the PRIMARY KEY, FOREIGN KEY, UNIQUE or ALL COLUMN supplemental logging is enabled.

For example: You may have enabled the following supplemental logging:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

And now trying to turn off supplemental logging like this:

ALTER DATABASE DROP SUPPLEMENTAL LOG DATA;

Action: Use the following query to determine which supplemental logging is turned on:

select supplemental_log_data_min
       ,supplemental_log_data_all
       ,supplemental_log_data_pk
       ,supplemental_log_data_ui
from v$database

For example: If the output is the following:

SUPPLEMENTAL_LOG_DATA_MIN SUPPLEMENTAL_LOG_DATA_ALL SUPPLEMENTAL_LOG_DATA_PK SUPPLEMENTAL_LOG_DATA_UI
------------------------- ------------------------ ------------------------ ------------------------
IMPLICIT                  NO                       YES                      NO

Do the following:

ALTER DATABASE DROP SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

And then:

ALTER DATABASE DROP SUPPLEMENTAL LOG DATA;