Wednesday, May 24, 2017

 ORA-25153 error is because attempt was made to use space in a temporary tablespace with no files (no datafiles defined).
To solve the problem, the solution is just by adding files (datafiles) to the TEMP tablespace by using ADD TEMPFILE command, or by using Add Datafiles in Oracle Enterprise Manager.
If you check and found that TEMP tablespace already has data files, check the default temporary tablespace for all users and your database and set the default temporary tablespace to a valid temporarary tablespace.
To check the default temporary tablespace of the database:
SQL> select property_name, property_value from database_properties;
The SQL will return the following results, look for DEFAULT_TEMP_TABLESPACE for the setting:
PROPERTY_NAMEPROPERTY_VALUE
————————————————————
DICT.BASE2
DEFAULT_TEMP_TABLESPACETEMP
DBTIMEZONE+01:00
NLS_NCHAR_CHARACTERSETAL16UTF16
GLOBAL_DB_NAMEARON.GENERALI.CH
EXPORT_VIEWS_VERSION8
NLS_LANGUAGEAMERICAN
NLS_TERRITORYAMERICA
NLS_CURRENCY$
NLS_ISO_CURRENCYAMERICA
NLS_NUMERIC_CHARACTERS.,
NLS_CHARACTERSETWE8ISO8859P1
NLS_CALENDARGREGORIAN
NLS_DATE_FORMATDD-MON-RR
NLS_DATE_LANGUAGEAMERICAN
NLS_SORTBINARY
NLS_TIME_FORMATHH.MI.SSXFF AM
NLS_TIMESTAMP_FORMATDD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMATHH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY$
NLS_COMPBINARY
NLS_LENGTH_SEMANTICSBYTE
NLS_NCHAR_CONV_EXCPFALSE
NLS_RDBMS_VERSION9.2.0.6.0
If default temporary tablespace is wrong the alter it with the following command:
SQL> alter database default temporary tablespace temp;
To check default temporary tablespace for all users of the database:
SQL> select username, temporary_tablespace, account_status from dba_users;
The query will return the following result, check if all users TEMPORARY_TABLESPACE is set to correct settings:
USERNAMETEMPORARY_TABLESPACEACCOUNT_STATUS
——————————————————————————————–
SYSTEMPRYOPEN
SYSTEMTEMPOPEN
OUTLNTEMPOPEN
DBSNMPTEMPOPEN
DBMONITORTEMPOPEN
TESTTEMPOPEN
WMSYSTEMPEXPIRED & LOCKED
If wrong temporary tablespace is found, alter it with the correct tablespace name (for example, sys) with the following SQL:
SQL> alter user sys temporary tablespace temp;
Alternatively, recreate or add a datafile to your temporary tablespace and change the default temporary tablespace for your database;
SQL> drop tablespace temp including contents and datafiles;
SQL> create temporary tablespace temp tempfile '/db/temp01.dbf' size 100m autoextend off extent management local uniform size 1m;


SQL> alter database default temporary tablespace temp;
reference site:-https://techjourney.net/ora-25153-temporary-tablespace-is-empty-error-in-oracle/

Tuesday, May 16, 2017

ORA-04024: self-deadlock detected while trying to mutex pin cursor 0xC1F2B19A8, ORA-01092: ORACLE instance terminated. Disconnection forced


I was performing a clone from a cold backup in a 12c (12.1.0.2) environment and was stuck with the errors (ORA-04024 and ORA-01092). The database restore was completed but while performing the ‘alter database open resetlogs’ it was giving the errors mentioned above. Below are the steps followed and resolution for the same.
Issue:
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-04024: self-deadlock detected while trying to mutex pin cursor 0x3BBEFC1C8
Process ID: 10432
Session ID: 441 Serial number: 38548




Cause:
It is a bug in 12.1.0.2 version of DB
Resolution:
1. Shutdown the database (from mount state)
2. Recreated the controlfile
SQL> @recreate_control_file.trc
Control file created.
3. Recovered the database using the redolog
RECOVER DATABASE USING BACKUP CONTROLFILE until cancel ;
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE until cancel ;
ORA-00279: change 10493059653949 generated at 10/25/2016 22:38:24 needed for
thread 1
ORA-00289: suggestion : +DATA_SIT
ORA-15173: entry ‘ARCHIVELOG’ does not exist in directory ‘SIT’
ORA-00280: change 10493059653949 for thread 1 is in sequence #1
Applied the redolog to do the recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
+DATA_SIT/sit/onlinelog/group_8.264.903647441
ORA-00308: cannot open archived log
‘+DATA_SIT/SIT/onlinelog/group_8.264.903647441’
ORA-17503: ksfdopn:2 Failed to open file
+DATA_SIT/SIT/onlinelog/group_8.264.903647441
ORA-15012: ASM file ‘+DATA_SIT/SIT/onlinelog/group_8.264.903647441’ does not
exist
Media recovery was completed
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
+DATA_SIT/SIT/ONLINELOG/group_1.460.926203011
Log applied.
Media recovery complete.
4. Tried to open the database using ‘resetlogs’, but stuck with the same issue
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-04024: self-deadlock detected while trying to mutex pin cursor 0xC1F2B19A8
Process ID: 25670
Session ID: 1895 Serial number: 9147
5. So, after investigating in Oracle site, performed the below fix and it went fine,
SQL> shut immediate
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 5.1540E+10 bytes
Fixed Size 3725224 bytes
Variable Size 6845106264 bytes
Database Buffers 4.4426E+10 bytes
Redo Buffers 264708096 bytes
Database mounted.




So finally we can fix control it. and solve the issue.
 SQL> alter system set “_fix_control”=’9550277:ON’;

System altered.
SQL> alter database open;
Database altered.

Wednesday, May 3, 2017

Listener Fails To Start With IPC Permission Errors (TNS-12546 TNS-12555 TNS-00516 TNS-00525 Solaris Error: 13: Permission denied)

Ran into this issue where multiple Oracle Homes resides with listeners running from under different OS users or we are/have been running the same listener under different OS user(s).
Trying  to start the listener it is failing with permissions errors:
LSNRCTL> startStarting /app/oracle/product/102/bin/tnslsnr: please wait...
TNSLSNR for Solaris: Version 10.2.0.3.0 - ProductionSystem parameter file is /app/oracle/product/102/network/admin/listener.oraLog messages written to /app/oracle/product/102/network/log/listener.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=meta4)))Error listening on: (DESCRIPTION=(address=(protocol=ipc)(key=meta3)))
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error 
TNS-00516: Permission denied  
Solaris Error: 13: Permission denied
— OR —
$ lsnrctl start LISTENERLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-JUN-2007 11:05:52Copyright (c) 1991, 2005, Oracle.  All rights reserved.Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraError listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error 
TNS-00525: Insufficient privilege for operation  
Linux Error: 1: Operation not permittedListener failed to start. See the error message(s) above...
Some of the changes associated with such errors are:
  • Some IPC keys have been reused from older listener(s)
  • Same listener has previously been started under different OS users
  • Listeners running under different OS users are using the same IPC keys
  • Permissions in /var/tmp have been previously reset.
Cause
Older IPC socket file(s) were left in /var/tmp/.oracle and they cannot be deleted by the listener upon startup.

Solution
Please be aware that this step should ONLY be taken as a last resort and ONLY when there are no  Net connections to the database(s).  This procedure could cause active sessions to be terminated.  It is NOT recommended to take this action in a RAC environment. 
·         Stop all listeners
·         Remove the /var/tmp/.oracle directory, e.g. run the following from the root account:

rm -rf /var/tmp/.oracle

Clearing the /var/tmp/.oracle directory will force the listeners to recreate the socket files from fresh, each with its own correct ownership.