Here is a brute force way to test the file. I sort the file with a unique flag, then grep out the stuff that isn't a connect string. I then loop through the connect strings and do a tnsping on each one.
You can also run the sort grep thing by itself and just get a list of connect strings. You can also chop up the file to find the server name and check to see if each server it in your /etc/hosts file or if you can ping each server.
Disclaimer: Advice is provided to the best of my knowledge but no implicit or explicit warranties are provided. Since the advisor explicitly encourages testing any and all suggestions on a test non-production environment advisor should not held liable or responsible for any actions taken based on the given advice.
Also I found these "partial address" lines which I had never seen before in any other installation; obviously they produced error, but I'm not sure if they are required (or used) by some obscure application out there -- any clues?
Glad to help. I suppose someone who is better with regular expressions could have done it with one grep and a giant glob of expression. But writing something with multiple greps made it easier to write in a incremental fashion. I have written a lot of scripts that read a file listing server names, or the oratab file and loops through doing something for each record.
I have public/private authentication setup accross all my database servers. So I wrote a script that will copy one or more files to every database server. So if I change by hot backup script I can copy it to every server with one command.
Adding tools just makes the job easier, and in my humble opinion less boring since there is less mindless work.
LKBrwn_DBA have you thought about using either open LDAP or OID for resolving your database names? We have always just used the tns names file, but will probably start using Open LDAP soon.