Can’t get your listener to take a static registration, or make a dynamic registration with “alter system register;”?
A “lsnrctl status” shows message:
Listener supports no services
Set LOCAL_LISTENER to explicitly tell the listener what to listen for. This can be necessary for at least a couple of reasons, like a non-default port (anything but 1521) and in my case today – a Client has a VIP address that the listener would not recognize.
alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL = TCP)(HOST = ggvip.localdomain)(PORT = 1521))’ scope=both;
You can actually just put a listener name in for LOCAL_LISTENER too, to do that you must have a local tnsnames.ora file and then you can use that alias:
# an entry in my db servers tnsnames.ora GGTARGET = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = o68-122db.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = GGTARGET) (UR=A) ) )
Now I can just use that tnsnames alias in my LOCAL_LISTENER parameter as follows:
alter system set LOCAL_LISTENER='GGTARGET' scope=both;
If the tnsname alias does not exist you’ll get an error if you try to use that syntax.
By the way, dynamic registration LREG (12c) or PMON (pre-12c) wakes up every minute or so to register everything it can automatically but, if you don’t want to wait and you want to force a DB to be registered then:
sqlplus / as sysdba alter system register;