UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS CAPITULO 9 Diseño de una Base de Datos Relacional Distribuida 9.1 Operaciones Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos homogéneos o heterogéneos. Estos orígenes de datos pueden estar almacenados en el mismo equipo o en equipos diferentes. Microsoft SQL Server admite consultas distribuidas utilizando OLE DB. Los usuarios de SQL Server pueden utilizar consultas distribuidas para obtener acceso a lo siguiente: Datos distribuidos almacenados en varias instancias de SQL Server. Datos heterogéneos almacenados en varios orígenes de datos relacionales y no relacionales a los que se obtiene acceso mediante un proveedor OLE DB. Los proveedores OLE DB exponen datos en objetos tabulares denominados conjuntos de filas. SQL Server permite hacer referencia a conjuntos de filas desde proveedores OLE DB en instrucciones Transact-SQL como si fuesen tablas de SQL Server. En las instrucciones SELECT, INSERT, UPDATE y DELETE de Transact-SQL, se puede hacer referencia directa a las tablas y vistas de orígenes de datos externos. Siempre que el software propietario de los datos los exponga en un conjunto de filas a través del proveedor OLE DB, los datos se podrán usar en consultas distribuidas. La siguiente imagen muestra las conexiones entre un equipo cliente, una instancia de SQL Server y un proveedor OLE DB. 1 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS Vincular servidores: Una configuración con servidores vinculados permite a SQL Server ejecutar comandos en orígenes de datos OLE DB situados en servidores remotos. Los servidores vinculados ofrecen las siguientes ventajas: Acceso al servidor remoto. Capacidad de ejecutar consultas distribuidas, actualizaciones, comandos y transacciones en orígenes de datos heterogéneos en toda la organización. Capacidad de tratar diferentes orígenes de datos de manera similar. Una definición de servidor vinculado especifica los siguientes objetos: Un proveedor OLE DB Un origen de datos OLE DB Un proveedor OLE DB es una biblioteca DLL que administra un origen de datos específico e interactúa con él. Un origen de datos OLE DB identifica la base datos específica a la que se puede tener acceso mediante OLE DB. Aunque los orígenes de datos en los que se realizan consultas a través de definiciones de servidores vinculados son bases de datos normales, existen proveedores OLE DB para una amplia variedad de archivos y formatos de archivo. Se trata de archivos de texto, datos de hojas de cálculo y los resultados de búsquedas de contenido de texto. El proveedor OLE DB de MS SQL Server Native Client (PROGID: SQLNCLI10) es el proveedor OLE DB oficial para SQL Server. En la siguiente ilustración se muestran los conceptos básicos de una configuración con servidores vinculados. 2 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS Normalmente, los servidores vinculados se utilizan para tratar consultas distribuidas. Cuando una aplicación cliente ejecuta una consulta distribuida mediante un servidor vinculado, SQL Server analiza el comando y envía peticiones a OLE DB. La petición de conjuntos de filas se puede realizar como una consulta al proveedor o abriendo una tabla base del proveedor. Para que un origen de datos devuelva información mediante un servidor vinculado, el proveedor OLE DB (DLL) para ese origen de datos debe encontrarse en el mismo servidor que la instancia de SQL Server. Cuando se utiliza un proveedor OLE DB de otro fabricante, la cuenta con la que se ejecuta el servicio de SQL Server debe tener permisos de lectura y ejecución para el directorio y todos los subdirectorios en los que esté instalado el proveedor. Administrar proveedores: Existe un conjunto de opciones para controlar cómo SQL Server carga y utiliza proveedores OLE DB que se hayan especificado en el registro. Para obtener más información, vea Configurar proveedores OLE DB para consultas distribuidas. Cuando configure un servidor vinculado, registre la información de la conexión y del origen de datos con SQL Server. Una vez realizado el registro, se puede hacer referencia a ese origen de datos con un único nombre lógico. Puede utilizar procedimientos almacenados y vistas de catálogo para administrar definiciones de servidores vinculados: Cree una definición de servidor vinculado ejecutando sp_addlinkedserver. Puede observar información acerca de los servidores vinculados definidos en una instancia específica de SQL Server ejecutando una consulta en las vistas de catálogo del sistema sys.servers. Elimine una definición de servidor vinculado ejecutando sp_dropserver. También puede utilizar este procedimiento almacenado para quitar servidores remotos. También puede definir servidores vinculados mediante SQL Server Management Studio. En el Explorador de objetos, haga clic con el botón secundario en Objetos de servidor, seleccione Nuevo y, a continuación, Servidor vinculado. Para eliminar una definición de servidor vinculado, haga clic con el botón secundario en el 3 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS nombre del servidor vinculado y seleccione Eliminar. Cuando ejecute una consulta distribuida en un servidor vinculado, incluya el nombre de cuatro partes completo de una tabla para cada origen de datos en el que desee realizar la consulta. Este nombre de cuatro partes debe tener el formato linked_server_name.catalog.schema.object_name. Durante una conexión de servidores vinculados (por ejemplo, cuando se procesa una consulta distribuida), el servidor de envío proporciona un nombre de inicio de sesión y una contraseña para conectarse en su nombre al servidor de recepción. Para que esta conexión funcione, debe crear una asignación de inicio de sesión entre los servidores vinculados utilizando procedimientos almacenados del sistema de SQL Server. 9.2 Administración La administración de servidores de MS SQL Server abarca una gran variedad de tareas de administración. En la mayor parte de los casos, no es necesario volver a configurar el servidor. La configuración predeterminada de los componentes del servidor permite ejecutar MS SQL Server inmediatamente después de instalarlo. No obstante, es necesaria la administración de los servidores cuando se desea agregar servidores nuevos, establecer configuraciones especiales de servidores, cambiar las conexiones de red o establecer opciones de configuración de servidores para mejorar el rendimiento de SQL Server. Entre las tareas de administración de MS SQL Server tenemos: Registrar servidores: Contiene información acerca del registro de los servicios de bases de datos de SQL Server. Operaciones administrativas simultáneas: Abarca operaciones adminisrativas que se pueden realizar simultáneamente. Usar una conexión de administrador dedicada: Describe las conexiones de emergencia. 4 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS 9.3 Alta Disponibilidad MS SQL Server ofrece varias opciones para crear una alta disponibilidad para un servidor o una base de datos distribuida. Entre las opciones de alta disponibilidad figuran las siguientes: Agrupación en clústeres de conmutación por error: Una agrupación en clústeres de conmutación proporciona alta disponibilidad a una instancia completa de SQL Server. Un clúster de conmutación por error es una combinación de uno o varios nodos, o servidores, con dos o más discos compartidos. Las aplicaciones se instalan cada una en un grupo de clústeres de Servicios de Cluster Server de Microsoft (MSCS), conocido como grupo de recursos. En todo momento, cada grupo de recursos es propiedad de un único nodo del clúster. El servicio de aplicación tiene un nombre virtual que es independiente de los nombres del nodo y al que nos referimos como nombre de instancia de clúster de conmutación por error. Una aplicación puede conectarse con la instancia de clúster de conmutación por error si hace referencia al nombre de la misma. La aplicación no necesita saber qué nodo aloja a la instancia de clúster de conmutación por error. Creación de reflejo de la base de datos: La creación de reflejo de la base de datos es básicamente una solución de software para aumentar la disponibilidad de la base de datos mediante una conmutación por error casi inmediata. La creación de reflejo de la base de datos puede utilizarse para mantener una sola base de datos en estado de espera, o base de datos reflejada, para una base de datos de producción correspondiente a la que se conoce como base de datos principal. Replicación: La replicación utiliza un modelo de publicación y suscripción. Esto permite que un servidor principal, conocido como publicador, distribuya datos a uno o varios servidores secundarios, o suscriptores. Gracias a la replicación, se puede obtener una disponibilidad y escalabilidad en tiempo real entre tales servidores. MS SQL Server ofrece tres tipos de replicación: replicación de instantáneas, replicación transaccional y replicación de mezcla. La replicación transaccional proporciona la latencia más baja y es la que más se suele utilizar por su alta disponibilidad. Bases de datos compartidas escalables: La característica de base de datos 5 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS compartida y escalable permite escalar una base de datos de sólo lectura construida exclusivamente para informes. La base de datos de informes debe residir en un conjunto de volúmenes dedicados de sólo lectura, cuyo fin principal es hospedar la base de datos. Mediante el uso de hardware estándar para servidores y volúmenes, puede escalar una base de datos de informes para que proporcione la misma vista de los datos de los informes en varios servidores de informes. Esta característica también proporciona una forma de actualización sencilla para la base de datos de informes. 9.4 Supervisión MS SQL Server incluye un completo conjunto de herramientas para supervisar los eventos de SQL Server y para optimizar el diseño de la base de datos física. La elección de la herramienta depende del tipo de supervisión u optimización que se realice y de los eventos particulares que se supervisen. A continuación se describen las principales herramientas de supervisión y optimización de SQL Server: El SQL Server Profiler realiza un seguimiento de los eventos de procesos del motor, como el inicio de un lote o una transacción, que permite supervisar la actividad del servidor y de la base de datos (por ejemplo, interbloqueos, errores irrecuperables o actividad de inicio de sesión). Puede capturar datos del SQL Server Profiler en un archivo o una tabla de SQL Server para su análisis posterior y también reproducir paso a paso los eventos capturados en SQL Server, para ver qué sucedió exactamente. Supervisar el uso de recursos (Monitor de sistema): La función principal del Monitor de sistema es hacer un seguimiento del uso de los recursos, como el número de solicitudes de página del administrador de búfer activas, que permite supervisar el rendimiento y actividad del servidor mediante objetos y contadores predefinidos o contadores definidos por el usuario para supervisar eventos. Monitor de actividad (SQL Server Management Studio): El Monitor de actividad de SQL Server Management Studio muestra información gráfica acerca de: o Los procesos que se ejecutan en una instancia de SQL Server. o Los procesos bloqueados. 6 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS o Bloqueos. o La actividad de los usuarios. Traza de SQL: Procedimientos almacenados de Transact-SQL que crean, filtran y definen trazas. Las marcas de traza muestran información acerca de una actividad específica en el servidor para diagnosticar problemas o causas de bajo rendimiento (por ejemplo, cadenas de interbloqueos). Supervisar los registros de errores: El registro de sucesos de aplicación de Windows proporciona una imagen global de los eventos que ocurren en todos los sistemas operativos Windows Server y Windows, así como de los eventos de SQL Server y la búsqueda de texto. Contiene información acerca de los eventos de SQL Server que no está disponible en ningún otro lugar. Puede utilizar la información del registro de errores para solucionar problemas relacionados con SQL Server. 9.5 Rendimiento Para mejorar el rendimiento, MS SQL Server realiza los siguientes tipos de optimización específicos de las consultas distribuidas: Ejecución de consultas remotas utilizada con proveedores de comandos SQL de OLE DB. Se considera que un proveedor OLE DB es un proveedor de comandos SQL si cumple los siguientes requisitos mínimos: Admite el objeto Command y todas sus interfaces obligatorias. Admite la sintaxis DBPROPVAL SQL SUBMINIMUM o ISO de nivel de entrada o superior, u ODBC de nivel de núcleo o superior. El proveedor debe proporcionar este nivel de lenguaje mediante la propiedad DBPROP_SQLSUPPORT de OLE DB. Acceso indizado utilizado con proveedores de índices de OLE DB. Se considera que un proveedor OLE DB es un proveedor de índices si cumple los siguientes requisitos mínimos: Admite la interfaz IDBSchemaRowset con los conjuntos de filas de esquema TABLES, COLUMNS e INDEXES. 7 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA GUÍA DE ACTIVIDADES TRABAJO FINAL DEL CURSO: 100201 – HERRAMIENTAS TELEMÁTICAS Admite la apertura de un conjunto de filas en un índice con IOpenRowset, especificando el nombre del índice y el nombre de la tabla base correspondiente. En la ejecución de consultas remotas MS SQL Server intenta delegar la mayor parte posible de la evaluación de una consulta distribuida en el proveedor de comandos SQL. De la consulta distribuida original se extrae una consulta SQL que sólo tiene acceso a las tablas remotas almacenadas en el origen de datos del proveedor; esta consulta se ejecuta con el proveedor. Este comportamiento reduce el número de filas devueltas desde el proveedor y permite a éste utilizar sus índices para evaluar la consulta. La parte de la consulta distribuida original que se delega en el proveedor de comandos SQL se ve afectada por: El nivel de lenguaje que admite el proveedor de comandos SQL. La compatibilidad de intercalación. 8