Diferencia entre instancia, base de datos y servicio en Oracle

miércoles, 12 de enero de 2011
Hablando con mi compañero de trabajo nos ha entrado la duda de la diferencia real en Oracle entre el nombre de la base de datos, el nombre de la instancia y el nombre del servicio. Nosotros estamos acostumbrados en la empresa a poner siempre el mismo nombre de BD que de instancia ya que solemos trabajar con entornos simples (sin RAC), pero a la hora de utilizar RAC nos entró la duda de la diferencia entre estos tres términos.

A continuación vamos a explicar un poco lo que significa cada término:

Nombre de la base de datos (Database Name):  Es el nombre de la estructura física de la BD. Esta estructura se guarda en los controlfile y con este nombre podemos identificar todas las estructuras que pertenecen a la misma BD. El nombre de la base de datos se puede definir en tiempo de instalación y el valor estático que la define es el database_name (este valor no se puede cambiar una vez definido salvo que reconstruyas los controlfiles)

Nombre de la instancia: es el nombre del conjunto de procesos tanto del SO como las estructuras que se guardan en memoria las cuales se utilizan para abrir o montar una base de datos. En un entorno RAC (cluster) podemos tener varias instancias que abren una sola base de datos y cada una de estas instancias tendrá un nombre. En entornos simples (sin RAC), el nombre de la base de datos y el nombre de la instancia suele ser el mismo ya que no hay ninguna razón para distinguirlos porque nos encontramos con una relación 1 a 1. El nombre de la instancia se define en UNIX con la variable ORACLE_SID.


Nombre de servicio: con el nombre de servicio identificamos el lugar al cual nos vamos a conectar. Este nombre se define con el parametro dinámico service_names, si os fijais está en plural ya que una instancia de oracle puede tener multiples nombres de servicio. El concepto de de servicio se utiliza mas frecuentemente para que los usuarios se conecten a las instancias con distintos nombres, por ejemplo en el caso de que tuviéramos un RAC montando en Barcelona y Madrid, podriamos tener distintos nombres de servicio para conectarnos a uno o a otro.

Como se ha comentado mas arriba, normalmente en entornos simples se suele poner el mismo nombre a estos tres términos, de ahí a que cuando vamos a entornos mas complejos no sabemos diferenciar muy bien parar que vale cada uno.

Un saludo

0 comentarios:

Publicar un comentario en la entrada