nscontrol update (comando)

Actualizado: 5 de diciembre de 2005

Actualiza las bases de datos de instancia y de aplicación de una instancia existente de SQL Server Notification Services.

Sintaxis

nscontrol update 
    [-nologo]
    [-help]
        -in configFile
    [-verbose] 
    [-force] 
    [-sqlusername sqlUserName -sqlpassword sqlPassword] 
    [-argumentkey key]
    [-timeout seconds]
    [param=value ...]

Argumentos

  • -nologo
    Suprime la instrucción de producto y versión que aparece al ejecutar un comando nscontrol.
  • -help
    Muestra la sintaxis del comando.
  • -inconfigFile
    Indica la ruta de acceso y el nombre del archivo de configuración de instancia (ICF) que define la instancia. Si el archivo está en el directorio actual, no se requiere la ruta de acceso.
  • -verbose
    Muestra toda la información que ha cambiado en el ICF y el archivo de definición de la aplicación (ADF) tal y como se encuentra. Resulta útil para depurar o entender exactamente las acciones que nscontrol update ejecutará.
  • -force
    Fuerza a nscontrol update a continuar sin pedir aprobación después de mostrar las acciones que se producirán.
  • -sqlusernamesqlUserName
    Es el inicio de sesión de SQL Server que se utiliza para conectar con SQL Server.

    ms162829.note(es-es,SQL.90).gifImportante:
    La autenticación de Windows es más segura que la autenticación de SQL Server. Siempre que sea posible, utilice la autenticación de Windows.

    Si utiliza la autenticación de SQL Server para conectar con SQL Server, debe especificar los argumentos -sqlusername y -sqlpassword.

    Si utiliza la autenticación de Windows, no especifique los argumentos -sqlusername y -sqlpassword.

  • -sqlpasswordsqlPassword
    Es la contraseña asociada con el inicio de sesión -sqlusername. Sólo debe especificar una contraseña cuando la conexión se lleva a cabo mediante la autenticación de SQL Server.
  • -argumentkeykey
    Es el mismo valor de clave que se especificó con nscontrol register y nscontrol create. Este argumento es necesario si el valor de EncryptArguments en el ICF es true. El comando nscontrol update descifra los valores de argumento para comprobar que la clave es la misma que la especificada con nscontrol create. Si el valor de clave es el mismo, la actualización sigue adelante. No puede cambiar la clave después de crear la instancia.
  • -timeout seconds
    Es el tiempo de espera, en segundos, para completar cada acción de actualización, como crear o quitar un índice. El valor predeterminado de este tiempo de espera es de 30 segundos. Si es probable que una de las acciones requiera más de 30 segundos, establezca un valor de tiempo de espera mayor.
  • param=value
    Es un par nombre/valor utilizado para pasar valores de parámetros al archivo de configuración desde el símbolo del sistema.

    Si el archivo de configuración contiene parámetros reemplazables (como %DBSystem%), especifique el nombre y el valor del parámetro en el símbolo del sistema. Por ejemplo, si el archivo de configuración contiene el código XML siguiente:

    <SqlServerSystem>%DBSystem%</SqlServerSystem>
    

    especifique el nombre y el valor utilizando nscontrol update del siguiente modo:

    nscontrol create -in config.xml DBSystem=MySQLServer
    

    Los valores de parámetro que proporcione en el símbolo del sistema se aplican a parámetros del ICF, pero no directamente a los parámetros de los ADF. Para pasar valores de parámetros a un ADF, agregue una subsección Parameters a la sección Application del archivo de configuración. Puede usar parámetros reemplazables como valores en ese nodo. Puede proporcionar valores para esos parámetros en el símbolo del sistema.

    Además de especificar parámetros en el símbolo del sistema, puede utilizar variables de entorno, como %COMPUTERNAME%, en el ICF. Si utiliza una variable de entorno en el ICF, tenga en cuenta que un par de valor/nombre del símbolo del sistema del mismo nombre prevalece sobre la variable de entorno.

Notas

El comando nscontrol update compara el XML en el ICF y los ADF con las bases de datos. Para cada cambio válido, nscontrol update actualiza la base de datos como se especifica en el archivo XML.

No todos los elementos del ICF y de los ADF se pueden actualizar. Algunos elementos de estos archivos especifican opciones que no pueden cambiarse sin eliminar la instancia y crearla de nuevo. Para obtener más información, revise las secciones Instance Configuration File Reference y Application Definition File Reference. Cada tema contiene una fila Actualizaciones que indica si el campo se puede actualizar.

ms162829.note(es-es,SQL.90).gifImportante:
Es muy recomendable realizar una copia de seguridad de las bases de datos de la instancia y de la aplicación antes de actualizar la instancia. La operación de actualización puede sufrir errores antes de completarse. En tal caso, las bases de datos de la aplicación y de instancia pueden quedar en un estado incoherente, lo que significa que es posible que las instancias y las aplicaciones no puedan utilizarse y que se pierdan datos.

[!NOTA] Compruebe todos los ADF y el ICF antes de ejecutar nscontrol update para reducir el riesgo de errores. Si se produce un error, repare el archivo y, a continuación, ejecute de nuevo nscontrol update.

Si está utilizando Notification Services Standard Edition y especifica opciones de los ADF que no son compatibles con Standard Edition, nscontrol update detiene la actualización de la instancia.

Si cambia los metadatos de clase de suscripción en el ADF, nscontrol update cambia el nombre de la tabla de clases de suscripción existente, NS<*subscription_class>*Subscriptions, por NS<*subscription_class>*SubscriptionsOld para guardar los datos de suscripción. Si, más adelante, actualiza la misma clase de suscripción, cuando nscontrol update intente cambiar el nombre de la tabla, este cambio de nombre producirá errores si todavía existe NS<*subscription_class>*SubscriptionsOld. Para obtener más información, vea Actualizar una aplicación.

Si una clase de evento o una clase de notificación cambia en el ADF, nscontrol update elimina las tablas existentes para esas clases.

El comando nscontrol update normalmente muestra todos los cambios realizados en el ICF y los ADF mientras realiza la actualización. No obstante, si la instancia utiliza el cifrado de argumentos, nscontrol update no muestra los argumentos cifrados.

Antes de actualizar una instancia, asegúrese de que cualquier código que cree una tabla, una vista, un índice u otro objeto de SQL Server compruebe si hay algún objeto con el mismo nombre y, en tal caso, lo elimine o cambie su nombre. Esto es muy importante porque nscontrol update no elimina automáticamente ni cambia el nombre de ningún objeto de SQL Server existente definido por el usuario con el mismo nombre. Al eliminar de forma explícita el objeto de SQL Server o cambiar su nombre, se evita un error de objeto duplicado. Para obtener más información, vea Definir tablas de crónica de eventos.

Permisos

La cuenta que se utiliza para ejecutar nscontrol update, o el inicio de sesión de SQL Server que especificó en el argumento -sqlusername, deben ser miembros de la función de base de datos db_owner en todas las bases de datos de aplicación y de instancia que están afectadas por el comando nscontrol update, o bien deben ser miembros de la función fija de servidor sysadmin.

La cuenta también debe tener permiso para ejecutar los archivos binarios de Notification Services; este permiso se concede a miembros de los grupos de Windows Administradores y SQLServerNotificationServicesUser.

Ejemplos

Los siguientes ejemplos muestran cómo actualizar una instancia.

A. Actualizar una instancia viendo todas las diferencias

Este ejemplo muestra cómo actualizar una instancia utilizando un ICF con el nombre InstanceConfig.xml. El comando nscontrol update muestra todas las diferencias encontradas en el archivo de configuración actualizado y los ADF. Se le pedirá que responda si o no antes de que continúe la actualización.

El comando nscontrol utiliza la autenticación de Windows para conectar con SQL Server.

nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" 
    -verbose

B. Actualizar una instancia cuando el ICF contiene parámetros

Este ejemplo muestra cómo proporcionar valores para los parámetros BaseDirectoryPath, NSHost y SqlServer al actualizar una instancia. El comando nscontrol utiliza la autenticación de Windows para conectar con SQL Server.

nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" 
    BaseDirectoryPath=C:\NS\Samples\Stock NSHost=nsuetest 
    SqlServer=nsuetest

C. Actualizar una instancia cuando se utiliza el cifrado de argumentos

Este ejemplo muestra cómo actualizar una instancia cuando se usa el cifrado de argumentos. El comando nscontrol utiliza la autenticación de Windows para conectar con SQL Server.

nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" 
    -argumentkey "MyArgumentKey"

D. Forzar una actualización sin consultar con el usuario

Este ejemplo muestra cómo actualizar una instancia sin que se pida al usuario que apruebe la actualización. El comando nscontrol utiliza la autenticación de Windows para conectar con SQL Server.

nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" -force

E. Actualizar una instancia mediante la autenticación de SQL Server

ms162829.note(es-es,SQL.90).gifImportante:
Siempre que sea posible, utilice la autenticación de Windows.

En este ejemplo se muestra cómo actualizar una instancia utilizando la autenticación de SQL Server para conectar con SQL Server. El comando nscontrol update muestra todas las diferencias encontradas en el archivo de configuración actualizado y los ADF. Se le pedirá que responda o no antes de que continúe la actualización.

nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" 
    -sqlusername SqlUser -sqlpassword sQl-P@sWd

Vea también

Referencia

nscontrol (utilidad)

Otros recursos

Actualizar instancias y aplicaciones
EncryptArguments Element (ICF)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido nuevo:
  • Se agregó información acerca del grupo de Windows SQLServerNotificationServicesUser.