Problem:
sqlplus / as sysdba fails with ORA-01017 while sqlplus sys/<pwd> as sysdba connects successfully to the databaseSolution:
since Oracle 12.1. there is a new process model called "multithreaded Oracle Database model". This new feature is controlled by the initialization parameter THREADED_EXECUTION. If set to TRUE, some Oracle processes do NOT run as operating system processes, but as THREADS within a process.So - if THREADED_EXECUTION = TRUE, operating system authentication (sqlplus / as sysdba) does not work. If set to false (ALTER SYSTEM SET THREADED_EXECUTION=FALSE SCOPE=SPFILE), os authentication works again (after restart of the database). But the database requires slightly more memory because each client spawns its own dedicated server process instead of thread.
The processes, in which those background threads are running, are called ora_u<xxx>_<sid> where <xxx> is some number (like 004) and <sid> is the ORACLE_SID value of the database.
The database view v$process now has a new column named STID which identifies the thread number within the process (SPID). So - if you are running the multithreaded model, you can see your OS process and thread by running something like the following query:
SELECT SPID, STID FROM V$PROCESS P, V$SESSION S
WHERE P.ADDR = S.PADDR
WHERE P.ADDR = S.PADDR
AND S.USERNAME = <your user>
A
ps -ef | grep <SPID>
or
ps -eLf | grep <STID>
will show the background process in which the user's thread is running
No comments:
Post a Comment