Como SID é diferente do nome do serviço no Oracle tnsnames.ora

Porque preciso de dois deles? Quando tenho de usar um ou outro?

Solução

@DAC

Em resumo: SID = o nome único de o seu BD, ServiceName = o pseudónimo utilizado ao conectar

Não é estritamente verdade... SID = nome único da INSTÂNCIA (por exemplo, o processo de oráculo em execução na máquina). Oracle considera o " Base de dados" como os arquivos.

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

Comentários (4)

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

Qual é a diferença entre Oracle SIDs e Oracle SERVICE NAMES. Um a ferramenta de configuração procura por NOME DO SERVIÇO e depois a próxima procura por SIDs! O que's continuando?!

Oracle SID é o nome único que identifica de forma única o seu instância/base de dados onde como Serviço o nome é o TNS alias que você dá quando você se conecta remotamente ao seu base de dados e este nome de serviço é gravado no arquivo Tnsnames.ora no seu clientes e pode ser o mesmo que SID e você também pode dar-lhe qualquer outro nome que você quer.

SERVICE_NAME é a nova funcionalidade de oracle 8i em diante em que base de dados pode se registrar com o ouvinte. Se a base de dados está registada com o ouvinte desta forma, você pode usar parâmetro SERVICE_NAME em tnsnames.ora caso contrário - usar SID em tnsnames.ora.

também se você tiver OPS (RAC), você irá ter NOME_DE_SERVIÇO diferente para cada exemplo.

SERVICE_NAMES especifica um ou mais nomes para o serviço de banco de dados para que esta instância liga. Você pode especificar vários nomes de serviços em ordem para distinguir entre diferentes usos da mesma base de dados. Para exemplo:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

Você também pode usar nomes de serviços para identifique um único serviço que seja disponível a partir de duas bases de dados diferentes através do uso de replicação.

em um servidor paralelo Oracle ambiente, você deve definir isto parâmetro para cada instância.

Em resumo: SID = o nome único da sua instância DB, ServiceName = o pseudônimo usado ao conectar

Comentários (1)

De acordo com o Glossário Oracle :

SID é um nome único para uma instância de banco de dados Oracle. ---> Para mudar entre bancos de dados Oracle, os usuários devem especificar o SID &lt desejado;---. O SID está incluído nas partes dos descritores CONNECT DATA dos descritores de conexão em um arquivo TNSNAMES.ORA, e na definição do ouvinte da rede no arquivo LISTENER.ORA. Também conhecido como System ID. Nome do Serviço Oracle pode ser qualquer coisa descritiva como "MyOracleServiceORCL". No Windows, Você pode usar o seu Nome de Serviço como um serviço em Windows Services.

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

Comentários (0)