Esecuele Sin Fronteras

SQL Server, Reporting Services y Biztalk Server
  • Esecuele Sin Fronteras

    Error en la solicitud de inicio del servicio 'SQLBrowser' Durante la Instalación de SQL Server 2008

    • 10 Comments

    El pasado día me encontré con un problema bastante curioso durante la instalación de SQL Server 2008 y creo que merece la pena compartir aquí lo que descubrí. En este caso mi cliente estaba llevando a cabo una instalación de SQL Server 2008 en un ordendador con Windows XP SP3 para dar soporte a un paquete de ERP instalado localmente.

    El proceso de instalación de SQL Server 2008 parecía funcionar bien inicialmente pero fallaba en un determinado punto con el siguiente mensaje de error:

    Error en la solicitud de inicio del servicio ‘SQLBrowser’. Haga clic en Reintentar para reintentar la accion o haga clic en Cancelar para cancelar el proceso de instalación.

    Pulsando en el botón Reintentar llevaba a cabo un nuevo intento de arrancar el servicio, pero fallaba de nuevo con el mismo error de modo que no había otra opción que no fuese cancelar el proceso de instalación.

    El Visor de Eventos de Windows no mostraba ninguna pista acerca del origen del error de manera que decidí comprobar el fichero de registro de instalación de SQL Server 2008 que se encuentra en la carpeta C:\Archivos de Programa\Microsoft SQL Server\100\Setup Bootstrap\Log. Existen diferentes archivos de registro en esta carpeta y cada uno de ellos proporciona información específica para un componente de SQL Server (SSIS, AS, Motor de Base de Datos, Herramientas Cliente, etc.). El fichero Detail.txt incluye información detallada de proceso global de instalación y es normalmente el primer fichero que abro a la hora de investigar un problema de instalación; esto fue lo que encontramos en nuestro caso:

    2009-05-14 17:25:13 SQLBrowser: The last attempted operation: Iniciando el servicio SQL Server Browser 'SQLBrowser' y esperando hasta '900' segundos para que se complete el proceso. .
    2009-05-14 17:25:13 Slp: Prompting user if they want to retry this action due to the following failure:
    2009-05-14 10:25:13 Slp: ----------------------------------------
    2009-05-14 17:25:13 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
    2009-05-14 17:25:13 Slp: Inner exceptions are being indented
    2009-05-14 17:25:13 Slp:
    2009-05-14 17:25:13 Slp: Exception type: Microsoft.SqlServer.Configuration.Sco.ScoException
    2009-05-14 17:25:13 Slp: Message:
    2009-05-14 17:25:13 Slp: Error en la solicitud de inicio del servicio 'SQLBrowser'.
    2009-05-14 17
    :25:13 Slp: Data:
    2009-05-14 17:25:13 Slp: Feature = SQL_Browser_Redist_SqlBrowser_Cpu32

    Aquí podíamos ver que efectivamente el servidio SQLBrowser había sido creado pero no podía ser arrancado por alguna razón. A continuación pasé al archivo de registro de instalación Summary.txt que proporciona un resumen de los eventos llevados a cabo durante el proceso; este fichero puede encontrarse también bajo la carpeta \LOG e incluye un lista de qué componentes han sido instalados con éxito y cuáles no. Lo interesante en este caso es que el error en este fichero no apuntaba al servicio de SQL Browser sino al componente MSXML 6.0 (el motor XML de Microsoft):

    Detailed results:
      Feature:                       Servicios de Motor de base de datos
      Status:                        Error: consulte los registros para obtener detalles
      MSI status:                    Error: vea los detalles a continuación
      MSI error code:                0x5EBE5729
      MSI log file location:         C:\Archivos de programa\Microsoft SQL Server\100\Setup Bootstrap\Log\20090514_170659\Msxml6_Cpu32_1.log

    Buscando dentro del fichero indicado se podía ver los siguiente (Msxml6_Cpu32_1.log):

    MSI (s) (30:58) [17:22:37:661]: Note: 1: 1708
    MSI (s) (30:58) [17:22:37:661]: Producto: MSXML 6.0 Parser (KB933579) -- Error en la instalación.

    MSI (s) (30:58) [17:22:37:661]: Windows Installer instaló el producto. Nombre del producto: MSXML 6.0 Parser (KB933579). Versión del producto: 6.10.1200.0. Idioma del producto: 3082. Resultado de la instalación: 1603.

    MSI (s) (30:58) [17:22:37:661]: Cleaning up uninstalled install packages, if any exist
    MSI (s) (30:58) [17:22:37:661]: MainEngineThread is returning 1603

    Estaba claro por tanto que el servicio SQL Browser no era el único componente que fallaba durante el proceso de instalación, el motor de Microsoft para XML 6.0 estaba también fallando. Observando los tiempos de los ficheros Detail.txt y Msxml6_Cpu32_1.log se podía comprobar además que este último mostraba el error antes; en otras palabras, el error de instalación de MSXML estaba teniendo lugar antes del error de instalación de SQL Browser. Volví de nuevo al fichero Detail.txt para confirmar este punto:

    2009-05-14 17:22:36 Slp: ----------------------------------------------------------------------
    2009-05-14 17:22:36 Slp: Running Action: Install_Msxml6_Cpu32_Action
    2009-05-14 17:22:36 Slp: Target package: "D:\x86\setup\x86\msxml6.msi"
    2009-05-14 17:22:37 Slp: InstallPackage: MsiInstallProduct returned the result code 1603.
    2009-05-14 17:22:38 Slp: Sco: Attempting to write hklm registry key SOFTWARE\Microsoft\Microsoft SQL Server to file C:\Archivos de programa\Microsoft SQL Server\100\Setup Bootstrap\Log\20090514_170659\Registry_SOFTWARE_Microsoft_Microsoft SQL Server.reg_
    2009-05-14 17:22:38 Slp: Sco: Attempting to write hklm registry key SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall to file C:\Archivos de programa\Microsoft SQL Server\100\Setup Bootstrap\Log\20090514_170659\Registry_SOFTWARE_Microsoft_Windows_CurrentVersion_Uninstall.reg_
    2009-05-14 17:22:38 Slp: Sco: Attempting to write hklm registry key SOFTWARE\Microsoft\MSSQLServer to file C:\Archivos de programa\Microsoft SQL Server\100\Setup Bootstrap\Log\20090514_170659\Registry_SOFTWARE_Microsoft_MSSQLServer.reg_
    2009-05-14 17:22:43 Slp:
    2009-05-14 17:22:43 Slp: Watson bucket for Msi based failure has been created
    2009-05-14 17:22:43 Slp: No retry-able MSI return code detected.
    2009-05-14 17:22:43 Slp: Checkpoint: INSTALL_MSXML6_CPU32_ACTION
    2009-05-14 17:22:43 Slp: Completed Action: Install_Msxml6_Cpu32_Action, returned False
    2009-05-14 17:22:43 Slp: Error: Action "Install_Msxml6_Cpu32_Action" failed during execution.

    Al revisar la información de "Agregar o Quitar Programas" en el Panel de Control de Widnows podía ver que el componente MSXML 6.0 se encontraba de hecho instalado. Este es un componente compartido instalado por SQL Server 2008 pero en mi caso el cliente no estaba seguro de si este estaba ya allí antes de la instalación de SQL Server. Decidí desinstalar este componente usando el propio "Agreagar o Quitar Progamas" y lanzar la instalación de SQL Server 2008 de nuevo. Esta vez la instalación se completó sin errores.

    En este caso el error inicial de SQL Server Browser era confuso al ser el primer error que se mostraba en la interfaz gráfica. Solo mirando en los ficheros de registro de instalación de SQL Server pudimos comprobar que existía un problema anterior en la instalación de los componentes MSXML 6.0.

    Otra posible forma de descubrir este error es mediante el fichero de registro del Bucket de Watson que se genera al producirse un error durante el proceso de instalación y que se encuentra en el mismo directorio de Log:

    28052008

    En nuestro caso el contenido de este fichero era:

    Watson bucket data:
      Bucket param 1: 10.0.1600.22
      Bucket param 2: 6.10.1200.0
      Bucket param 3: msxml6.msi
      Bucket param 4: 0x2D2816FE
      Bucket param 5: 0x5EBE5729
      Bucket param 6: Install_Msxml6_Cpu32_Action
      Bucket param 7:
      Bucket param 8:
      Bucket param 9:
      Bucket param 10:

    He revisado las notas referentes al SP1 para SQL Server 2008 y este problema parece estar resuelto en este Paquete de Servicio de forma que otra opción para evitar este problema sería la de instalar una versión de SQL Server 2008 con el Service Pack ya integrado (esto es lo que se conoce en Inglés como Slipstreaming). Esta funcionalidad es nueva en SQL Server 2008 y permite a los administradores de bases de datos integrar Paquetes de Servicio en los medios de intalación reduciendo los tiempos de despliegue y evitando problemas conocidos.

    - Jorge Pérez, Microsoft Customer Support Services

  • Esecuele Sin Fronteras

    Error: "Unable to load client print control" en Reporting Services

    • 10 Comments

     

    ¿Te has encontrado con el siguiente error últimamente al intentar imprimir un informe en Reporting Services?

     

    No se puede cargar el controlador de impresión

     (En Ingles: Unable to load client print control)

     

    Es muy seguro que este error haya sido producido por la instalación del siguiente aviso de seguridad: 956391, que actualiza killbits, una versión antigua del control RSClientPrint por una vulnerabilidad encontrada.

     

    Aviso de seguridad de Microsoft: Actualización de seguridad acumulativa para ActiveX

    http://support.microsoft.com/?id=956391

     

    Para solucionarlo, podéis instalar el último Cumulative Update 10 de SQL Server, que lo podéis conseguir del siguiente enlace:

     

    Cumulative update package 10 for SQL Server 2005 Service Pack 2

    http://support.microsoft.com/kb/956854/en-us

     

    Si utilizaseis el Report Viewer desde una aplicación web, CRM o SharePoint, os aconsejaría los siguientes pasos:

     

    1.     Primero verificar la versión del Report Server. Debería de ser 9.00.3073 or 9.00.3282.

    Si no, actualizar el Report Server:

    Security Update for SQL Server 2005 Service Pack 2 (KB954607)

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5148b887-f323-4adb-9721-61e1c0cfd213

     

     

    2.     Ahora comprobar la versión del control ReportViewer (en caso de utilizarlo)

    Para ello, abrir el informe en la máquina cliente, hacer clic derecho en el informe y seleccionar “View Source”.

    Encontrar la siguiente línea:

     

    <script src="http://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=X.Y.ZZZZ

     

    3.     Ahora, Si el control es de tipo “Reserved.ReportViewerWebPart.axd” entonces tiene que ver con SharePoint.

    Hay un fix para esto en el siguiente enlace:

    Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies

    http://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en

     

                   Si el control es de tipo “Reserved.ReportViewerWebControl.axd” vamos bien.

    Tenemos 2 versiones mayores diferentes: 8.00.50727 y 9.00.XXXX.

    Si ves la versión 8.00.50727 esto significa que está viendo informes desde CRM o utilizando el control ReportViewer desde una aplicación web.

    Si ves la versión 8.00.50727 y la versión es anterior a 8.00.50727.1843 entonces se debería de instalar el siguiente fix en el servidor ReportServer o en el servidor de CRM:

     

    Microsoft Report Viewer Redistributable 2005 Service Pack 1

    http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D&displaylang=en

     

    Si ves la versión  es 9.00.XXXX o 9.0.XXXX esto significa que está viendo informes desde Report Manager, Report Server o una aplicación web desde un Visual Studio VS 2008.

    En ese caso se tundra que instalar el siguiente fix en la máquina del report server:

     

    Microsoft Report Viewer 2008 SP1 Redistributable

    http://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en

     

    Esto actualizará a la versión 9.0.30729.1 del control Report Viewer.

     

     

    Para Reporting Services 2000

     

    Hara falta instalar la siguiente actualización de seguridad en el servidor de Reporting Services

    Security Update for SQL Server Reporting Services 2000 Service Pack 2

    http://www.microsoft.com/downloads/details.aspx?familyid=5F9E7F78-7439-414B-A9DC-A779B89427DB&displaylang=en

     

    Y la siguiente version del Report Viewer redistributable en la máquina donde está la aplicación web (ó la máquina de CRM):

     

    Microsoft Report Viewer Redistributable 2005 Service Pack 1

    http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D

     

    La siguiente actualización de seguridad debería de estar instalada en todas las máquinas cliente:

    Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits

    http://support.microsoft.com/kb/956391   

     

    He seguido los pasos arriba indicados y todavía me da el error al imprimir

     

    Si aun así os seguís encontrando el error al imprimir el informe desde vuestra aplicación. Pudiera ser que la versión del control rsClientPrint en las máquinas cliente no fuera igual a la versión del servidor.

    Una buena prueba sería que borraseis la el control que tenéis en la máquina cliente y permitáis que se descargue de nuevo desde el servidor. Esto se hace automáticamente al imprimir el informe, la primera vez que el control se va a utilizar o cuando la versión en el servidor cambia. Nótese que los usuarios necesitan tener permisos para descargar controles Active X.

    Los pasos a seguir en la máquina cliente serían:

    1.       Desregistrar RSClientPrint.dll en c:\windows\system32 folder

    2.       Borrar todos los ficheros RSClientPrint.dll y RSClientPrint*.rll del directorio

    c:\windows\system32 .

    3.       Ir a Windows\Downloaded Program Files y borrar la clase RSClientPrint 2005

    4.       Configurar la intranet de IE para que pida credenciales para descargar controles ActiveX

    5.       Ejecutar el informe y hacer clic en el botón de impresión.

    6.       Instalar el plugging ActiveX cuando lo pida

    7.       Confirmar que la clase RSClient 2005 se ha descargado  en Windows\Downloaded Program Files

    8.       Si os muestra un mensaje que empieze por “An error occurred during printing (0x80070006)”, habrá que reiniciar la maquina y repetir los pasos

     

    Una manera de comprobar la versión del control rsClientPrint en la máquina cliente sería (tiene que ser la misma versión que la del servidor)

    ·                      Abrir la ventana de comandos

    ·                      navegar a c:\windows\downloaded program files

    ·                      Copiar rsclientprint.dll a un directorio temporal, por ejemplo c:\temp

    ·                      Abrir el Explorador de Windows

    ·                      Navegar al directorio c:\temp

    ·                      En el menu contestual comprobar la versión

    ·                      Borrar RSClientPrint.dll del directorio temp

     

    Maria Esteban

    Ingeniero de Soporte de Reporting Services

  • Esecuele Sin Fronteras

    Recomendaciones para evitar problemas de conectividad con SQL y TCP Chimney

    • 3 Comments

    Hoy vamos a comentar una situación que hemos observado frecuentemente: Distintos problemas de conectividad al tener activada la opción TCP Chimney.

    TCP Chimney es una característica que incluida en Windows 2003 SP2, en el  Scalable Networking Pack (SNP)  de Windows 2003, y, por defecto, en Windows 2008. Lo que permite es que parte del procesamiento se realice en el adaptador de red, por lo que reduce el consumo de CPU del procesador. Para que este traspaso de carga sea posible, el adaptador de red tiene que ser compatible con esta opción.

    Sin embargo, hemos observado que activar esta característica con SQL Server en Windows 2003, puede provocar distintos errores relacionados con conectividad. El mensaje puede ser variado y normalmente muy genérico, del tipo: “General Network Error” o “Transport-level error”. Si nuestro SQL está conectándose a otros sistemas (por ejemplo, un servidor vinculado Oracle) el mensaje de error puede estar encapsulado en un mensaje del proveedor utilizado.

    Por lo tanto, si estáis teniendo errores aleatorios de conectividad, y tenéis activado la opción TCP Chimney, os recomendamos deshabilitarlo en las dos máquinas involucradas (origen y destino de la conexión).

    En los siguientes links tenemos la información de cómo deshabilitarlo:

    - http://support.microsoft.com/kb/948496

    - http://support.microsoft.com/kb/942861

    Un saludo,

    Raquel Vicente de la Rosa

    Ingeniero de Soporte de SQL Server

  • Esecuele Sin Fronteras

    Mitos y verdades de la reducción de archivos en SQL (“shrink files/database”)

    • 2 Comments

    Últimamente he tenido varias cuestiones relacionas con la reducción de archivos, por lo que escribo este post para arrojar algo de luz en este aspecto.

    Los archivos de SQL (tanto el de datos como el log de transacciones) tienen espacio marcado como “libre”, es decir, espacio asignado al archivo, pero que en este momento no contiene información, bien porque aún no se ha escrito, bien porque los datos que contenía se han borrado. SQL, por sí mismo, no libera este espacio, sino que lo mantiene en el archivo, marcándolo como libre, para ser utilizado cuando se necesite.

    La primera pregunta que debemos hacernos antes de realizar una reducción (shrink) es: ¿realmente quiero hacerlo? Hay una razón por la que SQL no libera ese espacio: normalmente es espacio que se va a necesitar durante las operaciones diarias. Tener espacio libre en los archivos es una buena práctica, porque así evitamos operaciones de crecimiento (muy pesadas).

    Mi recomendación personal es que nunca se hagan “shrinks” como parte de la tarea de mantenimiento, y que tampoco se configure de forma automática (autoshrink). Cualquiera de estas opciones probablemente desemboque en el siguiente escenario: Durante la tarea de mantenimiento, se libera espacio. Al empezar las operaciones diarias, se necesita espacio, por lo que hay una acción de autocrecimiento. Las consecuencias: Operaciones pesadas y fragmentación de los datos, ambas penalizan gravemente el rendimiento.

    Mi recomendación, por lo tanto, es realizar shrinks sólo cuando haya habido un borrado masivo de datos o cuando haya graves problemas de espacio en disco.

    Una vez que hemos decidido que queremos reducir el espacio, una situación muy frecuente es, utilizando la consola gráfica, elegir tareas en la base de datos, elegir reducir archivos, y utilizar la opción “Liberar espacio no utilizado” (release unused space). La tarea termina muy rápidamente, y en contra de lo esperado, no se libera espacio, o mucho menos del esperado.

    Cuando se especifica esta opción, se libera el espacio no utilizado que se encuentra “al final” del archivo: sólo se libera espacio si el último “extent” (conjunto de 8 páginas) se encuentra completamente libre, en cuyo caso se libera, y se comprueba el anterior, deteniéndose cuando uno de los extents no está completamente libre. Por eso, si el espacio marcado como libre se encuentra repartido entre diferentes extents que no son el último asignado a la base de datos, no se liberará el espacio que se había estimado.

    Si este es el caso, podemos liberar espacio eligiendo la opción: Reorganizar archivos antes de liberar espacio no utilizado (Reorganize files before releasing unused space). De esta manera, se “mueve” el espacio marcado como libre al final del archivo, y por lo tanto se puede liberar, reduciéndose el espacio ocupado en disco.

    Espero que sea de utilidad.

    Un saludo.  

     

    Raquel Vicente

    Ingeniero de Soporte de SQL Server

  • Esecuele Sin Fronteras

    Error Number: 1635 (Unable to install Windows Installer MSP file)

    • 2 Comments

     

    Cuando un componente de SQL Server 2005 se actualiza, se crean unos archivos “Windows installer patch” en cache, ocultos en la carpeta C:\Windows\Installer. Cuando un parche posterior se instala, el instalador busca el registro para encontrar el nivel de versión actual y a continuación busca los archivos creados (.msp). Cuando estos archivos no se encuentran o están corruptos, el instalador no puede instalar ninguna versión posterior. Además, no se puede desinstalar la versión actual. Volver a ejecutar el instalador de la versión actual no recrea los archivos.

     

    Por ejemplo, cuando se produce este problema durante la instalación de los Database Services, el error en el Summary.txt  será reflejado de la siguiente manera:

    Product                   : SQL Server Database Services 2005 (MSSQLSERVER)

    Product Version (Previous): 3200

    Product Version (Final)   :

    Status                    : Failure

    Log File                  : D:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB949095_sqlrun_sql.msp.log

    Error Number              : 1635

    Error Description         : Unable to install Windows Installer MSP file

     

     

    Workaround:

     

    Abre el hotfix log del instalador de los Database Services (SQL9_Hotfix_KB949095_sqlrun_sql.msp.log):

    MSI (s) (C8:5C) [15:32:29:468]: Couldn't find local patch 'D:\WINDOWS\Installer\42f480ea.msp'. Looking for it at its source.

    MSI (s) (C8:5C) [15:32:29:468]: Resolving Patch source.

    MSI (s) (C8:5C) [15:32:29:468]: User policy value 'SearchOrder' is 'nmu'

    MSI (s) (C8:5C) [15:32:29:468]: User policy value 'DisableMedia' is 0

    MSI (s) (C8:5C) [15:32:29:468]: Machine policy value 'AllowLockdownMedia' is 0

    MSI (s) (C8:5C) [15:32:29:468]: SOURCEMGMT: Media enabled only if package is safe.

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Looking for sourcelist for product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Adding {4A35EF4A-D868-4B15-A84D-3E8925AA9558}; to potential sourcelist list (pcode;disk;relpath).

    MSI (s) (C8:5C) [15:32:29:484]: SOURCEMGMT: Now checking product {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

     

    El código del hotfix del archivo 42f480ea.msp que falta es: {4A35EF4A-D868-4B15-A84D-3E8925AA9558}

    Este código esta codificado, y  no se puede utilizar directamente para localizar el archivo .msp en el registro.

     

    Para determinar el código real, abre el registro (regedit) y ve a:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches]
    Selecciona todas las subclaves contenidas en la clave Patches, y verifica qué clave contiene un valor que se llama LocalPackage y tiene una referencia al archivo .msp que buscamos ('D:\WINDOWS\Installer\42f480ea.msp').

    La ruta y el valor aparecen como:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A4FE53A4868D51B48AD4E39852AA5985]

    Class Name:        <NO CLASS>

    Last Write Time:   11/6/2008 - 2:29 PM

    Value 0

      Name:          LocalPackage

      Type:            REG_SZ

      Data:            D:\WINDOWS\Installer\42f480ea.msp

     

    Ahora, conocemos el código real del archivo: A4FE53A4868D51B48AD4E39852AA5985

    Luego, necesitamos determinar que hotfix contiene el archivo .msp que falta.

     

    Abre la clave: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products]

     

    Abre todos los códigos de la clave Products y todas las subclaves Patches hasta encontrar la clave que contiene el código real del hotfix (A4FE53A4868D51B48AD4E39852AA5985).

     

    En nuestro ejemplo, el código del hotfix se encuentra en:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\B29A3732C1C117E44B49C59AF769AA91\Patches\A4FE53A4868D51B48AD4E39852AA5985]

     

    Cuando se selecciona este código del hotfix en la sección izquierda del registro, se podrá ver el DisplayName en la sección derecha. El  DisplayName indicara que SQL Service Pack o Hotfix contiene el archive Windows Installer Patch que falta.

    En nuestro ejemplo:

      Name:            DisplayName

      Type:            REG_SZ

      Data:            Service Pack 2 for SQL Server Database Services 2005 ENU (KB921896)

     

    Por lo tanto necesitamos bajar el “Service Pack 2 para SQL Server Database Services 2005 ENU (KB921896)” de nuevo y extraerlo a nuestro servidor. El comando para extraer el paquete de instalación Service Pack 2 a una carpeta llamada  'ExtractSQL2005SP2' es:

    >SQLServer2005SP2-KB921896-x86-ENU.exe /x:c:\ExtractSQL2005SP2

     

    Y por ultimo necesitamos localizar el archivo .msp en el paquete de instalación extraído que necesitamos copiar a 

    D:\WINDOWS\Installer.

     

    Cada componente SQL tendrá un archivo .msp distinto. En nuestro ejemplo, tenemos un error 1635 para el SQL Server Database Services. Por lo tanto necesitamos copiar sqlrun_sql.msp.

     

    Consulte la siguiente lista de nombres de archivos restantes y los correspondientes componentes SQL:

    sqlrun_sql.msp -> Database Services

    sqlrun_as.msp -> Analyses Services

    sqlrun_dts.msp -> Data Transformation Services

    sqlrun_ns.msp -> Notification Services

    sqlrun_rs.msp -> Reporting Services

    sqlrun_tools.msp -> Tools and Workstation Components

     

    Entonces solo falta renombrar sqlrun_sql.msp a 42f480ea.msp (ver SQL9_Hotfix_KB949095_sqlrun_sql.msp.log) y copiar el archivo a D:\WINDOWS\Installer. Ahora podemos empezar de nuevo la instalación del hotfix.

     

     

    - Paul Gruner.

  • Esecuele Sin Fronteras

    Hekaton en SQL Server vNext

    • 2 Comments

    Primero, que significa hekaton, hekaton es una palabra griega (ἑκατόμ) que significa cien.

    Para Microsoft Hekaton es el codename de una nueva característica que se introducirá en la siguiente versión de SQL Server, Hekaton es un motor relacional en memoria (http://en.wikipedia.org/wiki/In-memory_database) siguiendo la filosofía de SAP HANA (http://en.wikipedia.org/wiki/SAP_HANA)  o Oracle TimesTen (http://en.wikipedia.org/wiki/TimesTen) pero con una gran diferencia, mientras que HANA o TimesTen son productos separados de la base de datos relacional Hekaton se va a integrar dentro de SQL Server.

    Hekaton empieza como un proyecto de colaboración entre Microsoft Research y el grupo de SQL Server  en 2009, la principal causa de este proyecto es que en los modelos tradicionales la base es que los datos están en disco y son almacenadas como paginas en disco, esto crea un overhead grande a la hora de acceder a registros, si los registros están siempre en memoria el acceso a los datos se simplifica lo que hace que tengamos estructuras de datos mas simples optimizadas para memoria.

    Siendo optimistas.

    El primer paso fue moverse de una aproximación particionada (que lo que hace es asimilar a un sistema multiprocesador a un sistema distribuido) hacia un diseño sin bloqueos lo que incrementa la escalabilidad.

    Los bloqueos son sistemas de sincronización para evitar corrupción en sistemas concurrentes, desgraciadamente esto crea cuellos de botella en sistema multiprocesador y limita el uso de cpu.

    Hekaton utiliza un sistema sin bloqueos (optimista), nunca se bloquea datos de las estructuras, el reto de este sistema es proporcionar el beneficio de un sistema sin bloqueos y evitar corrupción, es donde entra el control de visiones (MVCC – multiversion concurrency control).

    MVCC, ha demostrado en las pruebas que es ideal para un sistema con alta carga y alta contención, en un sistema de concurrencia de una sola versión los datos son sobrescritos en cada cambio, MVCC maneja los cambios marcando los datos antiguos como obsoletos y añadiendo una nueva versión, en cualquier momento hay diferentes versiones de los datos, pero solo una es la última. El gran beneficio es que las actualizaciones añaden nuevas versiones sin interferir en las lecturas concurrentes.

    Hekaton implementa una nueva forma de motor transaccional MVCC, en el siguiente enlace se puede ver mas información sobre este motor (High-Performance Concurrency Control Mechanisms for Main-Memory Databases)

    Un nuevo árbol binario (B-Tree)

    Además del control concurrente de versiones hay otros cambios, como un nuevo árbol binario para almacenar los datos, este nuevo árbol binario se llama Bw-Tree, aprovechando la filosofía optimista sin bloqueos de Hekaton se ha optimizado la estructura para ofrecer un mejor rendimiento a nivel de cache del procesador. Podeis leer mas sobre este nuevo árbol binario aquí: http://research.microsoft.com/apps/pubs/default.aspx?id=178758

    Tradicionalmente cuando se implementa un mecanismo sin bloqueos la primera opción es una “skiplist” (http://en.wikipedia.org/wiki/Skiplist)  ya que se percibe más ligero que un árbol binario(B-Tree) el Bw-Tree demuestra que esto es falso y se puede tener una implementación de un árbol binario de mayor rendimiento que una skiplist.

    bwin – Una apuesta segura

    Una de las mayores empresas de apuestas online (BWIN) colabora a la hora de probar Hekaton en entornos reales, BWIN tenia un problema de rendimiento en su web (15.000 peticiones/segundo) y no escalaba más, después de implementar Hekaton en parte del sistema el problema se solucionó llegando las pruebas de carga hasta 250.000 peticiones/segundo. Podéis comprobar la experiencia en el siguiente video:

    bwin y Hekaton

     

    Colaboración

    El proyecto de Hekaton nace gracias a la colaboración entre Microsoft Research y el grupo de SQL Server, según sepamos mas de esta tecnología os iremos actualizando.

    Hekaton aumentando el rendimiento cien veces.

    Mas información:

    http://research.microsoft.com/en-us/news/features/hekaton-122012.aspx

    http://blogs.technet.com/b/dataplatforminsider/archive/2012/12/11/how-fast-is-project-codenamed-hekaton-it-s-wicked-fast.aspx

     

    Pablo Gavela López – Ingeniero de Soporte de SQL Server

  • Esecuele Sin Fronteras

    Error "Failed to find a cluster group that owned shared disk: E:" cuando E: es un disco local

    • 1 Comments

    En un entorno cluster de 2 nodos, tenemos una instancia cluster de SQL Server 2005 X64 en versión RTM, y una instancia de Analysis Services 2005 cluster.

    Queremos actualizar la instancia de SQL Server 2005 al Service Pack 2. Sin embargo, la instalación falla con el error siguiente: "Product: Microsoft SQL Server 2005 (64-bit) -- Configuration failed."

     Los logs de instalación del Service Pack para SQL Server 2005 se encuentran por defecto en: C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix.

    En este caso, el fichero hotfix.log muestra::

    MSP Error: 29527  The setup has encountered an unexpected error in datastore. The action is SetInstanceProperty. The error is :  Source File Name: datastore\cachedpropertycollection.cpp
    Compiler Timestamp: Sat Oct  7 09:43:48 2006
         Function Name: CachedPropertyCollection::findProperty
    Source Line Number: 130
    ----------------------------------------------------------
    Failed to find property "ComputerList" {"SqlComputers", "", ""} in cache
                      Source File Name: datastore\clusterinfocollector.cpp
                    Compiler Timestamp: Sat Oct  7 09:43:48 2006
                         Function Name: ClusterInfoCollector::collectClusterVSInfo
                    Source Line Number: 888
                    ----------------------------------------------------------
                    Failed to detect VS info due to datastore exception.
                                     Source File Name: datastore\clustergroupsproperties.cpp
                                   Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                        Function Name: ClusterGroupScope.SharedDisks
                                   Source Line Number: 56
                                   ----------------------------------------------------------
                                   Failed to find a cluster g

    El error no se muestra completo. Sin embargo, al ir al log de aplicación del nodo en el que ejecutamos el setup podemos ver registrado el error completo:

    Event Type:                    Error
    Event Source:               MsiInstaller
    Event Category:           None
    Event ID:   10005
    Date:
    Time:
    User:
    Computer:
    Description:
    Product: Microsoft SQL Server 2005 (64-bit) -- Error 29527. The setup has encountered an unexpected error in datastore. The action is RestoreSetupParams. The error is :  Source File Name: datastore\cachedpropertycollection.cpp
    Compiler Timestamp: Sat Oct  7 09:43:48 2006
         Function Name: CachedPropertyCollection::findProperty
    Source Line Number: 130
    ----------------------------------------------------------
    Failed to find property "OwningGroup" {"VirtualServerInfo", "", "SQLVSPRD03"} in cache
                              Source File Name: datastore\clusterinfocollector.cpp
                            Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                 Function Name: ClusterInfoCollector::collectClusterVSInfo
                            Source Line Number: 888
                            ----------------------------------------------------------
                            Failed to detect VS info due to datastore exception.
                                                     Source File Name: datastore\clustergroupsproperties.cpp
                                                   Compiler Timestamp: Sat Oct  7 09:43:48 2006
                                                        Function Name: ClusterGroupScope.SharedDisks
                                                   Source Line Number: 56
                                                   ----------------------------------------------------------
                                                   Failed to find a cluster group that owned shared disk: E:

    El Setup del Service Pack 2 falla porque dice que no puede encontrar el disco compartido E:.

    Pero E: en cada uno de los nodos es un disco local, y no compartido.

     

    El problema esdebido a que en el registro, la instancia cluster de Analysis Services apunta al disco E:\, lo que evidentemente es erróneo porque el grupo de SSAS en el cluster no puede contener un disco local:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\Setup
        Version    REG_SZ    9.00.1399.06
        ASGroup    REG_SZ    S-1-5-21-1963925522-1830819238-1060643463-27841
        Language    REG_DWORD    0x409
        ProductCode    REG_SZ    {2D8F2A31-E409-43B5-91AF-2FAF678A0052}
        SqlCluster    REG_DWORD    0x1
        FeatureList    REG_SZ    Analysis_Server=3 AnalysisDataFiles=3 AnalysisSharedTools=3
        SQLBinRoot    REG_SZ    E:\NODO2\MSSQL.2\OLAP\Bin
        PatchLevel    REG_SZ    9.00.1399.06
        SQLPath    REG_SZ    E:\NODO2\MSSQL.2\OLAP    DataDir    REG_SZ    E:\NODO2(…)

    Actualizando las entradas de registro para que apunten al disco compartido que contiene las bases de datos de la instancia de Analysis Services, la instalación del Service Pack 2 para la instancia de SQL Server 2005 finaliza correctamente.

     

    Marcos Celada

    Ingeniero de Soporte de SQL Server

     

  • Esecuele Sin Fronteras

    Webcast de instalación del Service Pack 3 de SQL Server 2005

    • 1 Comments

    Hola a todos,

     

    Mañana 22/04/09 a las 4PM (hora de España) presento un webcast de instalación del Service Pack 3 de SQL Server 2005. Si tenéis algunas dudas o preguntas, podéis registraros en el enlace siguiente:

    http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032408159&EventCategory=4&culture=es-ES&CountryCode=ES

    En el caso de no poder contestar a todas las preguntas en el webcast, os invito a mandárnoslas por el medio de este blog (con un comentario a este post) y contestaremos lo antes posible.

     

    Un saludo,

    Marcos Celada

    Ingeniero de soporte de SQL Server

  • Esecuele Sin Fronteras

    SQL Jobs pare el buen funcionamiento de BizTalk Server

    • 1 Comments

    Esta semana seguimos con el mantenimiento de base datos de BizTalk. En en post anterior hemos cubiero la configuracion que debe tener nuestro servidor de SQL y ahora trataremos por encima los SQL Jobs creados por el producto.

    Una vez instalado el producto encontrareis que se han creado números jobs.  BizTalk necesita que estos jobs se ejecuten y se ejecuten bien ya que todos ellos se encargan de mantener limpias las base de datos de BizTalk. 

    De todos los jobs creados veremos  que el job MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb se lanza una vez y no termina nunca. No os alarméis, es normal. Este Job llama al procedimiento almacenado “bts_ManageMessageRefCountLog” que implementa un bucle infinito.  Esto es así porque el planificador de SQL no permite planificar jobs que se ejecuten con una periodicidad menor que 1 segundo.  Este job controla que mensajes de la msgbox se pueden eliminar porque ya han sido procesados con éxito.  Aunque nunca termine, el Job esta planificado para que se ejecute cada segundo para asegurarnos que en caso de que este pare por algún motivo se ejecute otra vez lo antes posible.

    De todos los jobs creados , los que más nos interesan son “Backup BizTalk Server” para realizar los back-up de todas las bases de datos de BizTalk. Este job lo podremos y debemos modificar para configurar donde queremos que se guarden los ficheros  de backup. 

    Y el otro Job a tener en cuenta es “DTA Purge and Archive” este Job elimina de la base de datos BizTalkDTADB la información de tracking que ya no utilizamos  y nos da la opción de poder hacer una copia en disco  de los datos que vamos a eliminar.  Con esta tarea mantendremos la base de datos de tracking en unos tamaños aceptables, manteniendo de esta forma el rendimiento de la solución de BizTalk.

    Del resto de Jobs os recomendamos que se dejen tal cual se han creado, ya que con la configuración por defecto nos aseguramos un buen comportamiento de las base de datos de BizTalk

    Información más detallada de los Jobs creados por BizTalk Server lo podéis encontrar en http://msdn.microsoft.com/en-us/library/aa561960.aspx

     Salu2

    Enrique Palomino| BizTalk Escalation Engineer

  • Esecuele Sin Fronteras

    De Oracle a SQL Server, introducción

    • 1 Comments

    Voy a ser sincero. Las primeras bases de datos con las que trabaje fueron de Oracle. Desde la versión 8i en adelante.

    Comencé a trabajar con SQL Server hace ya unos años, y lo primero que eche en falta eran las vistas dinámicas, no porque no existieran, sino porque no encontré una referencia rápida que me dijera, por ejemplo, que equivalente tenemos de la v$session.

    Intentare, durante las próximas entregas, mostrar las diferencias entre estos dos grandes motores, y poder aportar toda la información necesaria para tener una “piedra rosetta”, y que el cambio de tecnología de un DBA desde Oracle a SQL Server sea lo menos traumático posible, que cosas podemos mantener, y que no podemos. Que existe, y que no.

    En este caso, me basare en Oracle 10g R2 y SQL Server 2008 R2.

    Sin más, comenzamos:

    En esta ocasión, vamos a hablar de algunas de las vistas dinámicas que suelen usarse más de Oracle, y la opción mas parecida en SQL Server

     

    Oracle Views

    SQL Server equivalent

    v$session

    sys.sysprocesses

       

    v$process

    sys.dm_exec_connections

     

    sys.dm_exec_sessions

     

    sys.dm_exec_requests

       

    v$session_wait

    sys.dm_os_waiting_tasks

       

    v$sql

    Para estas vistas, tendremos que realizar alguna de las siguientes consultas:

    v$sqltext

    select * from sys.dm_exec_query_stats cross apply sys.dm_exec_sql_text(plan_handle)

    v$sqlarea

    Select * from sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_query_plan(plan_handle);

     

    select * from sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_query_plan(plan_handle) cross apply sys.dm_exec_sql_text(plan_handle)

       

    v$lock

    sys.dm_os_waiting_tasks

    Algunos enlaces útiles:

    Oracle Views

    Link de Oracle

    v$session

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2088.htm#sthref2731

    v$process

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2022.htm#sthref2643

    v$session_wait

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2094.htm#sthref2738

    v$sql

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2113.htm#sthref2757

    v$sqltext

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2132.htm#sthref2776

    v$sqlarea

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2129.htm#sthref2773

    v$lock

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_1147.htm#sthref2582

       

    SQL Server view

    Link de Microsoft

    sys.sysprocesses

    http://msdn.microsoft.com/es-es/library/ms179881.aspx

    sys.dm_exec_connections

    http://msdn.microsoft.com/es-es/library/ms181509.aspx

    sys.dm_exec_sessions

    http://msdn.microsoft.com/es-es/library/ms176013.aspx

    sys.dm_exec_requests

    http://msdn.microsoft.com/es-es/library/ms177648.aspx

    sys.dm_os_waiting_tasks

    http://msdn.microsoft.com/es-es/library/ms188743.aspx

    sys.dm_exec_query_stats

    http://msdn.microsoft.com/en-us/library/ms189741.aspx

    sys.dm_exec_sql_text

    http://msdn.microsoft.com/en-us/library/ms181929.aspx

    sys.dm_exec_query_plan

    http://msdn.microsoft.com/en-us/library/ms189747.aspx

    sys.dm_exec_cached_plans

    http://msdn.microsoft.com/en-us/library/ms187404.aspx

    Moisés Romero Senosiain – Microsoft Customer Support Services

Page 1 of 9 (81 items) 12345»