Pergunta

Por que preciso de dois deles?Quando tenho que usar um ou outro?

Foi útil?

Solução

@DAC

Resumidamente:Sid = o nome único do seu banco de dados, serviceName = o alias usado ao conectar

Não é estritamente verdade..SID = nome exclusivo da INSTÂNCIA (ex. o processo oracle rodando na máquina).A Oracle considera o "Banco de Dados" como os arquivos.

Nome do serviço = alias para uma INSTÂNCIA (ou muitas instâncias).O objetivo principal disso é que se você estiver executando um cluster, o cliente pode dizer "conecte-me a SALES.acme.com", o DBA pode alterar instantaneamente o número de instâncias disponíveis para solicitações SALES.acme.com, ou até mesmo mover SALES.acme.com para um banco de dados completamente diferente sem que o cliente precise alterar nenhuma configuração.

Outras dicas

Por favor, veja: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Qual é a diferença entre os nomes do Oracle SIDS e o Oracle Service.Uma ferramenta de configuração procura o nome do serviço e, em seguida, os próximos procuram SIDS!O que está acontecendo?!

Oracle Sid é o nome exclusivo que identifica exclusivamente sua instância/banco de dados, onde o nome do serviço é o alias do TNS que você dá quando você se conecta remotamente ao seu banco de dados e esse nome de serviço é gravado no arquivo tnsnames.ora em seus clientes e pode ser o O mesmo que Sid e você também pode dar qualquer outro nome que desejar.

Service_name é o novo recurso do Oracle 8i em que o banco de dados pode se registrar no ouvinte.Se o banco de dados estiver registrado no ouvinte dessa maneira, você poderá usar o parâmetro Service_Name em tnsnames.ora - use SID em tnsnames.ora.

Além disso, se você tiver OPS (RAC), terá um serviço diferente para cada instância.

Service_Names Especifica um ou mais nomes para o serviço de banco de dados ao qual esta instância se conecta.Você pode especificar vários nomes de serviços para distinguir entre diferentes usos do mesmo banco de dados.Por exemplo:

Service_Names = sales.acme.com, widgetsales.acme.com

Você também pode usar nomes de serviço para identificar um único serviço disponível em dois bancos de dados diferentes através do uso da replicação.

Em um ambiente de servidor paralelo do Oracle, você deve definir este parâmetro para todas as instâncias.

Resumidamente:SID = o nome exclusivo da sua instância de banco de dados, ServiceName = o alias usado ao conectar

Eu sei que isso é antigo, no entanto, ao lidar com ferramentas, usos, usuários ou sintomas complicados, re:A nomenclatura sid e de serviço pode adicionar um pouco de flexibilidade às suas entradas tnsnames, 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)
  )
)

Eu apenas pensei em deixar isso aqui, pois é levemente relevante para a questão e pode ser útil ao tentar contornar algumas idiossincrasias menos claras da rede Oracle.

o que é um SID e nome de serviço

por favor, consulte a documentação da Oracle em https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

Caso o link acima não esteja acessível no futuro, no momento em que esta resposta foi escrita, o link acima irá direcioná-lo para o tópico "Serviço de banco de dados e identificação de instância de banco de dados" no capítulo Conceitos de conectividade do "Guia do administrador de serviços de rede de banco de dados" .Este guia é publicado pela Oracle como parte da "Oracle Database Online Documentation, 10g Release 2 (10.2)"

Quando tenho que usar um ou outro?Por que preciso de dois deles?

Considere o mapeamento abaixo em um ambiente RAC,

SID      SERVICE_NAME
bob1    bob
bob2    bob
bob3    bob
bob4    bob

se o balanceamento de carga estiver configurado, o ouvinte 'equilibrará' a carga de trabalho em todos os quatro SIDs.Mesmo que o balanceamento de carga esteja configurado, você poderá conectar-se ao bob1 o tempo todo, se desejar, usando o SID em vez de SERVICE_NAME.

Por favor consulte, https://community.oracle.com/thread/4049517

De acordo com o Glossário Oracle:

SID é um nome exclusivo para uma instância de banco de dados Oracle.---> Para alternar entre os bancos de dados Oracle, os usuários devem especificar o SID desejado <---.O SID está incluído nas partes de dados de conexão dos descritores Connect em um arquivo tnsnames.ora e na definição do ouvinte de rede no arquivo ouvinte.ora.Também conhecido como ID do sistema.O nome do serviço Oracle pode ser qualquer coisa descritiva como "MyoracleServiceorcl".No Windows, você pode seu nome de serviço em execução como um serviço nos Serviços do Windows.

Você deve usar o SID em TNSNAMES.ORA como uma abordagem melhor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top