En qué se diferencia SID del nombre del servicio en Oracle tnsnames.ora


¿Por qué necesito dos? Cuando tengo que usar uno u otro?

Author: Oli, 2008-09-04

5 answers

@DAC

En resumen: SID = el nombre único de su base de datos, ServiceName = el alias utilizado al conectar

No es estrictamente cierto.. SID = nombre único de la INSTANCIA (por ejemplo, el proceso oracle que se ejecuta en la máquina). Oracle considera que la "Base de datos" son los archivos.

Nombre del servicio = alias de una INSTANCIA (o varias instancias). El propósito principal de esto es que si está ejecutando un clúster, el cliente puede decir "connect me to SALES.acme.com", el DBA puede cambiar sobre la marcha el número de instancias que están disponibles para SALES.acme.com solicitudes, o incluso mover SALES.acme.com a una base de datos completamente diferente sin que el cliente necesite cambiar ninguna configuración.

 129
Author: Matthew Watson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-26 08:19:31

Véase: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

¿Cuál es la diferencia entre Oracle NOMBRES DE SERVICIOS SIDs y Oracle. Una la herramienta de configuración busca el NOMBRE del SERVICIO y entonces el siguiente busca SIDs! ¿Qué es ¿está pasando?!

Oracle SID es el nombre único que identifica tu instancia / base de datos donde como Servicio nombre es el alias TNS que le das cuando se conecta de forma remota a su base de datos y el nombre de este servicio es grabado en Tnsnames.archivo ora en su clientes y puede ser lo mismo que SID y también puedes darle cualquier otro el nombre que quieras.

SERVICE_NAME es la nueva característica de oracle 8i en adelante en el que la base de datos puede registrarse con oyente. Si la base de datos está registrada con listener de esta manera entonces usted puede utilizar Parámetro SERVICE_NAME en tnsnames.ora de lo contrario-use SID en tnsnames.ora.

También si usted tiene OPS (RAC) usted tener nombre DE SERVICIO diferente para cada uno instancia.

SERVICE_NAMES especifica uno o más nombres para el servicio de base de datos a que esta instancia conecta. Puedes especifique varios nombres de servicios en para distinguir entre diferentes usos de la misma base de datos. Para ejemplo:

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

También puede usar nombres de servicio para identificar un solo servicio que es disponible en dos bases de datos diferentes mediante el uso de la replicación.

En un Servidor Paralelo de Oracle ambiente, debe establecer esto parámetro para cada instancia.

En resumen: SID = el nombre único de la instancia de base de datos, ServiceName = el alias utilizado al conectar

 22
Author: DAC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-16 04:02:20

Sé que esto es antiguo, sin embargo, cuando se trata de herramientas meticulosas, usos, usuarios o síntomas re: sid & service naming uno puede agregar un poco de flexibilidad a sus 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)
  )
)

Simplemente pensé en dejar esto aquí, ya que es ligeramente relevante para la pregunta y puede ser útil al intentar tejer alrededor de algunas idiosincrasias menos que claras de oracle networking.

 13
Author: seorphates,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-19 13:36:09

Qué es un SID y el nombre del Servicio

Por favor, consulte la documentación de oracle en https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

Cuando tengo que usar uno u otro? ¿Por qué necesito dos?

Considere a continuación el mapeo en un entorno RAC,

SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4    bob

Si se configura el equilibrio de carga, el oyente 'equilibrará' la carga de trabajo en los cuatro SID. Incluso si el equilibrio de carga está configurado, puede conectarse a bob1 todo el tiempo si lo desea utilizando el SID en lugar de SERVICE_NAME.

Por favor refiérase, https://community.oracle.com/thread/4049517

 3
Author: swaroop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-09 12:31:22

Según el Glosario de Oracle:

SID es un nombre único para una instancia de Oracle database. ---> Cambiar entre las bases de datos Oracle, los usuarios deben especificar el SID deseado

Deberías usar SID en TNSNAMES.ORA como un mejor enfoque.

 0
Author: Ashish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-18 05:27:09