Como o SID é diferente do nome de serviço no Oracle tnsnames.flora
5 answers
@DAC
[[1]} em resumo: SID = o nome único de your DB, ServiceName = the alias used ao ligarNão é bem verdade.. SID = nome único da instância (por exemplo, o processo oracle rodando na máquina). A Oracle considera o" banco de dados " como sendo os arquivos.
Service Name = alias a uma instância (ou muitas instâncias). O principal propósito disto é se você estiver executando um cluster, o cliente pode dizer "conecte-me a SALES.acme.com", o DBA pode na mosca alterar o número de instâncias que estão disponíveis para SALES.acme.com pedidos, ou até mesmo mover SALES.acme.com para um banco de dados completamente diferentes, sem que o cliente precise de alterar quaisquer definições.
Por favor, ver: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
Qual é a diferença entre Oráculo SIDs e nomes de serviços da Oracle. Um a ferramenta de configuração procura o nome do serviço e depois, a próxima procura pela SIDs! O que é o que se passa?! Oracle SID é o nome único que identifica unicamente o seu instância / base de dados em que, como serviço o nome é TNS alias que você dá quando se liga remotamente ao seu banco e este nome de serviço é gravado em Tnsnames.ora file on your clientes e pode ser o mesmo que SID e você também pode dar-lhe qualquer outro o nome que quiser.SERVICE_NAME é a nova funcionalidade de oracle 8i em que Base de dados pode registar-se com o ouvinte. Se a base de dados está registada com o ouvinte desta forma, então você pode usar Parâmetro SERVICE_NAME nos nomes dos CNS.flora caso contrário, use o SID nos nomes do CNS.flora.
Também se tiver OPS (RAC), irá ter nome do serviço diferente para cada instancia.
O nome do Serviço indica um ou mais nomes nomes para o serviço de base de dados para que esta instância liga. Podes. indicar os nomes de vários serviços em a fim de distinguir entre diferentes Utilização da mesma base de dados. Para exemplo:
SERVICE_NAMES = sales.acme.com, widgetsales.acme.com
Também pode usar nomes de serviços para identificar um único serviço que é disponível em duas bases de dados diferentes por o uso da replicação.
Num servidor Oracle paralelo ambiente, você deve definir isso parâmetro para cada instância.
Em resumo: SID = o nome único da sua instância DB, ServiceName = a alcunha utilizada ao ligar
Eu sei que isto é antigo no entanto, ao lidar com ferramentas delicadas, usos, utilizadores ou sintomas re: sid & serviço nomear um pode adicionar um pouco de flexão aos seus itens do CNS como:
mySID, mySID.whereever.com =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mySID.whereever.com)
(SID = mySID)
(SERVER = DEDICATED)
)
)
Pensei em deixar isto aqui porque é ligeiramente relevante para a pergunta e pode ser útil quando se tenta tecer algumas idiossincrasias menos claras de redes oracle.
Por favor, verifique a documentação da oracle em https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htmO que é um SID e nome de Serviço
Quando tenho de usar um ou outro? Para que preciso de dois?
Considere abaixo o mapeamento num ambiente RAC,
SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4 bob.
Se o balanceamento de carga estiver configurado, o ouvinte irá "balancear" a carga de trabalho nos quatro SMD. Mesmo que o balanceamento de carga esteja configurado, você pode ligar-se ao bob1 o tempo todo, se quiser, usando o SID em vez do SERVICE_NAME.
Por favor, veja, https://community.oracle.com/thread/4049517
De acordo com o Glossário do Oráculo:
SID é um nome único para uma instância de banco de Dados Oracle. ---> Alternar entre bases de dados Oracle, os usuários devem especificar o SID desejado
Deve usar o SID nos nomes dos CNS.ORA como uma abordagem melhor.