Pregunta

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

¿Fue útil?

Solución

@DAC

En breve:Sid = el nombre único de su DB, ServiceName = el alias utilizado al conectarse

No es estrictamente cierto...SID = nombre único de la INSTANCIA (por ejemplo, el proceso de 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 muchas instancias).El objetivo principal de esto es que si está ejecutando un clúster, el cliente puede decir "conécteme a SALES.acme.com", el DBA puede cambiar sobre la marcha la cantidad de instancias que están disponibles para las solicitudes de SALES.acme.com. o incluso mover SALES.acme.com a una base de datos completamente diferente sin que el cliente necesite cambiar ninguna configuración.

Otros consejos

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

¿Cuál es la diferencia entre Oracle SIDS y los nombres de servicios de Oracle?¡Una herramienta de configuración busca el nombre del servicio y luego el siguiente busca SMTS!¡¿Qué está sucediendo?!

Oracle Sid es el nombre único que identifica de manera exclusiva su instancia/base de datos donde, como nombre de servicio, el alias TNS que da cuando se conecta de forma remota a su base de datos y este nombre de servicio se registra en el archivo tnsnames.ora en sus clientes y puede ser el Igual que Sid y también puede darle cualquier otro nombre que desee.

Service_Name es la nueva característica de Oracle 8i en el que la base de datos puede registrarse con el oyente.Si la base de datos se registra en el oyente de esta manera, entonces puede usar el parámetro Service_Name en tnsnames.ora de lo contrario - use SID en tnsnames.ora.

Además, si tiene OPS (RAC), tendrá un Service_Name diferente para cada instancia.

Service_Names especifica uno o más nombres para el servicio de la base de datos al que se conecta esta instancia.Puede especificar múltiples nombres de servicios para distinguir entre los diferentes usos de la misma base de datos.Por ejemplo:

Servicio_names = sales.acme.com, widgetsales.acme.com

También puede usar los nombres de servicios para identificar un servicio único que está disponible en dos bases de datos diferentes mediante el uso de la replicación.

En un entorno de Oracle Parallel Server, debe establecer este parámetro para cada instancia.

En breve:SID = el nombre único de su instancia de base de datos, ServiceName = el alias utilizado al conectarse

Sin embargo, sé que esto es antiguo cuando se trata de herramientas, usos, usuarios o síntomas delicados relacionados con:La denominación de sid y servicio puede agregar un poco de flexibilidad a las entradas de 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 levemente relevante para la pregunta y puede ser útil cuando se intenta sortear algunas idiosincrasias poco claras de las redes de Oracle.

¿Qué es un SID y un nombre de servicio?

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

En caso de que no se pueda acceder al enlace anterior en el futuro, al momento de escribir esta respuesta, el enlace anterior lo dirigirá al tema "Identificación del servicio de base de datos y de la instancia de base de datos" en el capítulo Conceptos de conectividad de la "Guía del administrador de servicios de red de base de datos". .Oracle publica esta guía como parte de la "Documentación en línea de la base de datos de Oracle, 10g versión 2 (10.2)".

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

Considere el siguiente mapeo en un entorno RAC,

SID      NOMBRE_SERVICIO
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.

Consulte, https://community.oracle.com/thread/4049517

Según el glosario de Oracle:

SID es un nombre único para una instancia de base de datos Oracle.---> Para cambiar entre las bases de datos de Oracle, los usuarios deben especificar el SID <--- deseado.El SID se incluye en las partes de datos de Connect de los descriptores Connect en un archivo tnsnames.ora, y en la definición del oyente de red en el archivo oyente.ora.También conocido como ID del sistema.El nombre del servicio de Oracle puede ser cualquier cosa descriptiva como "MyoracleServiceorccl".En Windows, puede ejecutar el nombre de su servicio como servicio en Servicios de Windows.

Debería utilizar SID en TNSNAMES.ORA como un mejor enfoque.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top