Cómo SID es diferente del nombre del servicio en Oracle tnsnames.ora

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

@DAC

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

No es estrictamente cierto. SID = nombre único de INSTANCE (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 a una INSTANCIA (o muchas instancias). El objective principal de esto es si está ejecutando un clúster, el cliente puede decir “conectarme a SALES.acme.com”, el DBA puede cambiar el número de instancias que están disponibles para las solicitudes de SALES.acme.com, sobre la marcha. o incluso mover SALES.acme.com a una base de datos completamente diferente sin que el cliente tenga que cambiar ninguna configuración.

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

¿Cuál es la diferencia entre Oracle SID y Oracle SERVICE NAMES? Una herramienta de configuración busca SERVICE NAME y luego la siguiente busca SIDs. ¡¿Que esta pasando?!

Oracle SID es el nombre único que identifica de manera única su instancia / base de datos donde el nombre del servicio es el alias TNS que brinda cuando se conecta remotamente a su base de datos y este nombre de servicio se registra en el archivo Tnsnames.ora en sus clientes y puede ser lo mismo que SID y también puede darle cualquier otro nombre que desee.

SERVICE_NAME es la nueva característica de Oracle 8i en adelante en la cual la base de datos puede registrarse con el oyente. Si la base de datos está registrada con 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á diferentes SERVICE_NAME para cada instancia.

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

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

También puede usar nombres de servicios para identificar un solo servicio 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 resumen: SID = el nombre único de su instancia de base de datos, ServiceName = el alias utilizado al conectarse

Sé que esto es antiguo, sin embargo, cuando se trata de herramientas meticulosas, usos, usuarios o síntomas relacionados con el nombre y el servicio, uno puede agregar un poco de flexibilidad a las entradas de sus nombres 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é que dejaría esto aquí, ya que es levemente relevante para la pregunta y puede ser útil cuando trato de entrelazar algunas idiosincrasias poco claras de las redes Oracle.

¿Qué es un SID y el nombre del servicio?

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 de ellos?

Considere el mapeo a continuación 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 se configura el balanceo de carga, 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 alternar entre bases de datos Oracle, los usuarios deben especificar el SID deseado <---. El SID se incluye en las partes CONNECT DATA de los descriptores de conexión en un archivo TNSNAMES.ORA y en la definición del oyente de red en el archivo LISTENER.ORA. También conocido como ID de sistema. Oracle Service Name puede ser algo descriptivo como "MyOracleServiceORCL". En Windows, puede ejecutar su Nombre de servicio como un servicio en Servicios de Windows.

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

    Intereting Posts