Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Oracle foreground processes accessing datafiles in Linux

mssesJan 28 2010 — edited Jan 29 2010
So far as I know, user processes in an Oracle database run application code, while database processes run the Oracle database server code ( server processes parse and run SQL statements issued through the application, read data blocks from datafiles, and return results to the application. Background processes archive logs, update the headers of all datafiles to record the details of the checkpoint, writes the contents of buffers to datafiles, performs recovery if necessary, etc)

However, I could see oracle user processes accessing datafiles in my Oracle Database System. When I look for the proccesses accessing the datafiles belonging to the tablespace "recprov", I get the following:

[root@ymir ~]# lsof | grep recprov
oracle 465 oracle 11u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 465 oracle 13u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 465 oracle 15u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 964 oracle 11u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 964 oracle 13u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 964 oracle 14u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 13364 oracle 14u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 13364 oracle 76u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 16445 oracle 17u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 16445 oracle 18u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 20522 oracle 82uW REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 20522 oracle 122uW REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 20532 oracle 44u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 20532 oracle 75u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf
oracle 20534 oracle 17u REG 8,18 4823457792 48496659 /ora2/oradata/essepr3/recprov_tb_02.dbf
oracle 20534 oracle 79u REG 8,18 6291464192 48496658 /ora2/oradata/essepr3/recprov_tb_01.dbf

As you can see, there are 7 oracle processes accessing to the datafiles: 4 user processes and 3 background processes:

[root@ymir ~]# ps -ef
...
oracle 465 1 0 Jan27 ? 00:00:23 oracleessepr3 (LOCAL=NO)
oracle 964 1 0 Jan27 ? 00:00:25 oracleessepr3 (LOCAL=NO)
oracle 13364 1 0 Jan13 ? 02:45:02 oracleessepr3 (LOCAL=NO)
oracle 16445 1 0 Jan21 ? 00:00:05 oracleessepr3 (LOCAL=NO)
oracle 20522 1 0 2009 ? 00:09:59 ora_dbw0_essepr3
oracle 20532 1 0 2009 ? 00:04:24 ora_ckpt_essepr3
oracle 20534 1 0 2009 ? 00:04:10 ora_smon_essepr3
...

And I get confirmed this information from the database repository:

SQL> select p.SPID, ses.TYPE, ses.USERNAME, ses.MACHINE, ses.PROGRAM
from v$session ses, v$process p
where p.SPID in ( 465, 964, 13364, 16445, 20522, 20532, 20534 ) and ses.PADDR = p.ADDR;

SPID TYPE USERNAME MACHINE PROGRAM
----- ----------- --------------- --------------- ---------------------------------------------------------
20522 BACKGROUND dbserver oracle@dbserver (DBW0)
20532 BACKGROUND dbserver oracle@dbserver (CKPT)
20534 BACKGROUND dbserver oracle@dbserver (SMON)
13364 USER DBSNMP dbserver emagent@dbserver (TNS V1-V3)
964 USER RECPROV appserver JDBC Thin Client
16445 USER SYSTEM userPC PlSqlDev.exe
465 USER RECPROV appserver JDBC Thin Client

* RECPROV is the name of the database user of the application.

My question is, why are there user processes accessing datafiles? I think it does not match the process architecture defined by Oracle. And most important, does it not mean a security leak in the database?

DB Version: 10.2.0.3, dedicated
Linux Version: Linux 2.6.18-53.el5xen #1 SMP Sat Nov 10 19:46:12 EST 2007 x86_64 x86_64 x86_64 GNU/Linux

Thank you in advance
This post has been answered by mbobak on Jan 29 2010
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 26 2010
Added on Jan 28 2010
10 comments
2,847 views