Wednesday, May 30, 2012

Modifying SCAN Listener Port

It’s been awhile since I’ve published a post on my blog. I have so many things to share but not able to find time to share. Hopefully, very soon I will get back to blogging. Here’s a quick post on modifying SCAN listener port.

We have been having archive log corruption issues since we setup Data Guard (sometime last week) on Oracle 11gR2 (11.2.0.2). The physical standby database is receiving the archive log files but unfortunately not able to perform media recovery as the archive logs are in malformed state.

The customer is using CISCO switches between primary and DR. These switches have SQL*Net packet deep packet scanning/inspection enabled by default on 1521 port and this seems to be resulting in failed or corrupt-packets.

Below is an excerpt from the physical standby database alert log:
CORRUPTION DETECTED: In redo blocks starting at block 387073count 2048 for thread 2 sequence 8776
Deleted Oracle managed file +FRA/qtprdb/archivelog/2012_05_30/thread_2_seq_8776.366.784682159

So, this was the motivation behind changing the SCAN listener port and here’s how you do it:

1) Log in as the “grid” user (if you have installed Grid & database under single user “oracle” then use “oracle” user)

2) Make a note of current SCAN listener configuration:

[grid@rac-prod01 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
[grid@rac-prod01 ~]$

3) Modify SCAN listener port to "1528"

srvctl modify scan_listener -p 1528
4) Restart SCAN listener to make the new port effective
srvctl stop scan_listener
srvctl start scan_listener
5) Finally confirm the change
 [grid@rac-prod01 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1528
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1528
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1528
[grid@rac-prod01 ~]$