When using SCAN, is LOAD_BALANCE still necessary?

Short answer, for balancing to the SCAN listeners from a single client, yes it does (a little).

When you look at a connection string with only a single SCAN ‘host’ there, it seems logical that the LOAD_BALANCE option is unnecessary, but  the Oracle client will replace (expand) this with an ADDRESS_LIST, containing the IP addresses it gets from the DNS server. It seems this order can not be trusted to be random. The DNS client can cache this until the TTL expires and/or the DNS server might give them in the order configured and not do this is a round-robin fashion (Round-robin DNS). Nothing will guarantee it will be returned randomly. It might look random when you do a nslookup of the SCAN address, but tracing the Oracle client it shows not to be.

“There is no standard procedure for deciding which address will be used by the requesting application, a few resolvers attempt to re-order the list to give priority to numerically “closer” networks. Some desktop clients do try alternate addresses after a connection timeout of 30–45 seconds.”

Furthermore (in 11.2), the LOAD_BALANCE option is only on by default in the DESCRIPTION_LIST, not the ADDRESS_LIST: Local Naming Parameters (tnsnames.ora).

Continue reading

Port 1521, should be 2483 or 2484 officialy…

Port 1521 is used for ages as the default port for the Oracle listener, but while I was looking at some default port numbers on Wikipedia, I saw port 1521 is not the official listener port. 1521 is the nCube License Manager official port!

Port 2483 and 2484 are the official Oracle ports according to IANA!

ttc                2483        tcp    Oracle TTC
ttc                2483        udp    Oracle TTC
ttc-ssl            2484        tcp    Oracle TTC SSL
ttc-ssl            2484        udp    Oracle TTC SSL

According to Metalink’s document “Listening Port numbers [ID 99721.1]”, in Future releases the 1521 port may change to 2483 TCP and 2484 TCP with SSL, but this is document is written in 2008…

Edit: The metalink note has been removed…

Happy listening!

Temporary stop listener to log with ‘set log_status’

When moving/deleting the listener.log, I used to stop and start the listener and move/delete the listener in between the actions.
This method has a big inconvenience: users can not connect to the database for a few seconds…
What I never knew was that the listener could be told to stop and start logging and take the appropriate action in between. Continue reading