Preciso integrar alguns scripts que exportam e importam dados de bancos de dados Oracle. Eles são scripts de shell que dependem da configuração do nome TNS (por exemplo, scott/tiger@tns).
Os proprietários do aplicativo provavelmente não irão alterar os scripts para suportar a sintaxe EZConnect, então minha melhor opção agora é automatizar a configuração do nome TNS. O arquivo, para referência, fica aqui:
$ORACLE_HOME/network/admin/tnsnames.ora
Já existe uma prática recomendada/utilitário existente para fazer isso? Ou vou ter que escrever um script de shell para executar a tarefa?
Em vez de usar tnsnames, usei openLDAP para fazer a resolução de nomes. Você pode replicar em dois nós, se desejar. Assim que você alterar a entrada no openLDAP, todos os servidores terão as novas informações. Você pode até obter a resolução de uma porta criptografada por SSL, se desejar.
usando openLDAP a resolução de nomes
Resolvi esse problema inserindo o nome do host/dbname em tempo real de uma variável de ambiente global chamada $connString. Código de amostra:
Quaisquer scripts de shell subsequentes despachados de um ambiente com essas funções configuradas substituirão os argumentos em tempo real.