How to create listener in oracle 10g

Listener is a process which resides on server and accept client connections and manages the request.

Every time a client requests a network session with a server, a listener receives the actual request. If the client information matches the listener information, then the listener grants a connection to the server.

Listener.ora file which resides under $ORACLE_HOME/network/admin on linux/unix platforms is configured with listener name, SID, IP or hostname & port on which the database is running

My current setup

OS : Oracle Enterprise Linux 4.5 64bit

Database Version: Oracle 10g (10.2.0.1) 64bit

Database : 2 database

Instance name: ora10gdb & 10gdb02

ORACLE_HOME = /u01/app/oracle/product/10.2.0.1/db01

Setup your environment variable

[oracle@db10g ~]$ . oraenv

ORACLE_SID = [oracle] ? ora10gdb01

[oracle@db10g ~]$ echo $ORACLE_SID

ora10gdb01

[oracle@db10g ~]$ echo $ORACLE_HOME

/u01/app/oracle/product/10.2.0.1/db01

You can create listener service using network manager easily

[oracle@db10g ~]$netmgr

Expand local folder from above

Click on Listeners and click on the Add (+) button on the left

Give listener name and click on ok.

From the right hand side drop down menu select Listening Locations and click on Add Address button below

Under protocol select TCP/IP which is the default one, under hostname type in your servername or ip address and here we are running our database on port 1521 default port.

From the drop down select Database Services.

And click on Add Database

Specify the Global Database name if you have a different global database name. Specify the oracle home

And SID

Now click on file menu and click save network configuration

Exit the netmgr configuration wizard.

Now we will test our listener

To check our if our listener is currently running or not use the below command lsnrctl status <Listenername

[oracle@db10g ~]$ lsnrctl status LISTENER

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-MAY-2014 16:35:10

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db10g.localdomain)(PORT=1521)))

TNS-12541: TNS:no listener

TNS-12560: TNS:protocol adapter error

TNS-00511: No listener

Linux Error: 111: Connection refused

So as per the above output our listener is down. So let go ahead and start our listener

[oracle@db10g ~]$ lsnrctl start LISTENER

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-MAY-2014 16:36:14

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting /u01/app/oracle/product/10.2.0.1/db01/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /u01/app/oracle/product/10.2.0.1/db01/network/admin/listener.ora

Log messages written to /u01/app/oracle/product/10.2.0.1/db01/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db10g.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db10g.localdomain)(PORT=1521)))

STATUS of the LISTENER

------

Alias LISTENER

Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date 19-MAY-2014 16:36:14

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/10.2.0.1/db01/network/admin/listener.ora

Listener Log File /u01/app/oracle/product/10.2.0.1/db01/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db10g.localdomain)(PORT=1521)))

Services Summary...

Service "ora10gdb" has 1 instance(s).

Instance "ora10gdb", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

So our listener service is started. Now let’s stop and listener service and add one more database to the same listener.

[oracle@db10g ~]$ lsnrctl stop LISTENER

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-MAY-2014 16:37:14

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db10g.localdomain)(PORT=1521)))

The command completed successfully

Now you have already added one database so open the existing listener as per the screenshot below

Select database services

Click on Add Database

Click on file and save the network configuration and exit the netmgr

So both our database is configured to accept client connection from the server side

[oracle@db10g ~]$ lsnrctl start LISTENER

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-MAY-2014 16:41:52

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting /u01/app/oracle/product/10.2.0.1/db01/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /u01/app/oracle/product/10.2.0.1/db01/network/admin/listener.ora

Log messages written to /u01/app/oracle/product/10.2.0.1/db01/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db10g.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db10g.localdomain)(PORT=1521)))

STATUS of the LISTENER

------

Alias LISTENER

Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date 19-MAY-2014 16:41:52

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/10.2.0.1/db01/network/admin/listener.ora

Listener Log File /u01/app/oracle/product/10.2.0.1/db01/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db10g.localdomain)(PORT=1521)))

Services Summary...

Service "10gdb02" has 1 instance(s).

Instance "10gdb02", status UNKNOWN, has 1 handler(s) for this service...

Service "ora10gdb" has 1 instance(s).

Instance "ora10gdb", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

You can manually create the listener.ora file under $ORACLE_HOME/network/admin directory as per the below format

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(ORACLE_HOME = /u01/app/oracle/product/10.2.0.1/db01)

(SID_NAME = ora10gdb)

)

(SID_DESC =

(ORACLE_HOME = /u01/app/oracle/product/10.2.0.1/db01)

(SID_NAME = 10gdb02)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = db10g.localdomain)(PORT = 1521))

)