Administrar particiones para una publicación de mezcla mediante filtros con parámetrosManage Partitions for a Merge Publication with Parameterized Filters

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions)

En este tema se describe cómo administrar particiones para una publicación de mezcla con filtros con parámetros en SQL ServerSQL Server mediante SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo Replication Management Objects (RMO).This topic describes how to manage partitions for a merge publication with parameterized filters in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO). Los filtros de fila con parámetros se puede utilizar para generar particiones no superpuestas.Parameterized row filters can be used to generate nonoverlapping partitions. Estas particiones pueden estar restringidas para que solo una suscripción reciba una partición determinada.These partitions can be restricted so that only one subscription receives a given partition. En estos casos, un número grande de suscriptores producirá un número de particiones grande, las cuales a su vez requieren un número igual de instantánea con particiones.In these cases, a large number of subscribers will result in a large number of partitions, which in turn requires an equal number of partitioned snapshots. Para obtener más información, consulte Filtros de fila con parámetros.For more information, see Parameterized Row Filters.

En este temaIn This Topic

Antes de comenzarBefore You Begin

RecomendacionesRecommendations

  • Si genera un script para una topología de replicación (opción recomendada), los scripts de la publicación contienen las llamadas al procedimiento almacenado para crear particiones de datos.If you script a replication topology, which is recommended, publication scripts contain the stored procedure calls to create data partitions. El script proporciona una referencia para las particiones creadas y una forma de volver a crear una o más divisiones en caso necesario.The script provides a reference for the partitions created and a way in which to re-create one or more partitions if necessary. Para más información, consulte Scripting Replication.For more information, see Scripting Replication.

  • Cuando una publicación ha parametrizado filtros que producen suscripciones con particiones no superpuestas, y si una suscripción determinada se pierde y necesita volverse a crear, debe realizar las siguientes acciones: quitar la partición a la que se suscribió, volver a crear la suscripción y, a continuación, volver a crear la partición.When a publication has parameterized filters that yield subscriptions with nonoverlapping partitions, and if a particular subscription is lost and needs to be re-created, you must do the following: remove the partition that was subscribed to, re-create the subscription, and then re-create the partition. Para obtener más información, consulte Filtros de fila con parámetros.For more information, see Parameterized Row Filters. La replicación genera scripts de creación para particiones del suscriptor existentes cuando se genera un script de creación de publicación.Replication generates creation scripts for existing Subscriber partitions when a publication creation script is generated. Para más información, consulte Scripting Replication.For more information, see Scripting Replication.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Administre las particiones en la página Particiones de datos del cuadro de diálogo Propiedades de la publicación: <Publication> .Manage partitions on the Data Partitions page of the Publication Properties - <Publication> dialog box. Para obtener más información sobre el acceso a este cuadro de diálogo, vea View and Modify Publication Properties.For more information about accessing this dialog box, see View and Modify Publication Properties. En esta página puede crear y eliminar particiones, permitir a los suscriptores iniciar la generación y distribución de instantáneas, generar instantáneas para una o más particiones, y limpiar instantáneas.On this page you can: create and delete partitions; allow Subscribers to initiate snapshot generation and delivery; generate snapshots for one or more partitions; and clean up snapshots.

Para crear una particiónTo create a partition

  1. En la página Particiones de datos del cuadro de diálogo Propiedades de la publicación: <Publication> , haga clic en Agregar.On the Data Partitions page of the Publication Properties - <Publication> dialog box, click Add.

  2. En el cuadro de diálogo Agregar partición de datos , escriba valores para HOST_NAME() y/o SUSER_SNAME() asociados con la partición que desea crear.In the Add Data Partition dialog box, enter a value for the HOST_NAME() and/or SUSER_SNAME() value associated with the partition you want to create.

  3. También puede especificar una programación para actualizar las instantáneas:Optionally specify a schedule for refreshing snapshots:

    1. Seleccione Programar el Agente de instantáneas para que esta partición se ejecute a las horas siguientes.Select Schedule the Snapshot Agent for this partition to run at the following time(s)

    2. Acepte la programación predeterminada para actualizar instantáneas o haga clic en Cambiar para especificar una programación diferente.Accept the default schedule for refreshing snapshots, or click Change to specify a different schedule.

  4. Haga clic en OK.Click OK.

Para eliminar una particiónTo delete a partition

  1. En la página Particiones de datos , seleccione una partición en la cuadrícula.On the Data Partitions page, select a partition in the grid.

  2. Haga clic en Eliminar.Click Delete.

Para permitir a los suscriptores inicializar la generación y distribución de instantáneasTo allow Subscribers to initiate snapshot generation and delivery

  1. En la página Particiones de datos , seleccione Definir automáticamente una partición y generar una instantánea si es necesario cuando un suscriptor nuevo intente sincronizarse.On the Data Partitions page, select Automatically define a partition and generate a snapshot if needed when a new Subscriber tries to synchronize.

  2. Haga clic en OK.Click OK.

Para generar una instantánea para una particiónTo generate a snapshot for a partition

  1. En la página Particiones de datos , seleccione una partición en la cuadrícula.On the Data Partitions page, select a partition in the grid.

  2. Haga clic en Generar instantáneas seleccionadas ahora.Click Generate the selected snapshots now.

Para limpiar una instantánea de una particiónTo clean up a snapshot for a partition

  1. En la página Particiones de datos , seleccione una partición en la cuadrícula.On the Data Partitions page, select a partition in the grid.

  2. Haga clic en Limpiar instantáneas existentes.Click Clean up the existing snapshots.

Usar Transact-SQLUsing Transact-SQL

Para administrar mejor una publicación con filtros parametrizados, puede enumerar mediante programación las particiones existentes utilizando los procedimientos almacenados de replicación.To better manage a publication with parameterized filters, you can programmatically enumerate the existing partitions using replication stored procedures. También puede crear y eliminar particiones existentes.You can also create and delete existing partitions. Se puede obtener la información siguiente sobre las particiones existentes:The following information on existing partitions can be obtained:

Mientras la segunda parte de la instantánea de dos partes se puede generar a petición cuando se inicializa una nueva suscripción, los procedimientos siguientes le permiten controlar cómo se genera esta instantánea y pre-generar dicha instantánea cuando sea más conveniente.While the second part of the two-part snapshot can be generated on-demand when a new subscription is initialized, the procedures below enable you to control how this snapshot is generated and to pre-generate this snapshot when it is most convenient. Para más información, consulte Instantáneas para publicaciones de combinación con filtros con parámetros.For more information, see Snapshots for Merge Publications with Parameterized Filters.

Para ver información sobre particiones existentesTo view information on existing partitions

  1. En el publicador de la base de datos de publicación, ejecute sp_helpmergepartition (Transact-SQL).At the Publisher on the publication database, execute sp_helpmergepartition (Transact-SQL). Especifique el nombre de la publicación para @publication.Specify the name of the publication for @publication. (Opcional) Especifique @suser_sname o @host_name para devolver solo información basada en un criterio de filtrado.(Optional) Specify @suser_sname or @host_name to return only information based on a single filtering criterion.

Para definir una nueva partición y generar una nueva instantánea con particionesTo define a new partition and generate a new partitioned snapshot

  1. En el publicador de la base de datos de publicación, ejecute sp_addmergepartition (Transact-SQL).At the Publisher on the publication database, execute sp_addmergepartition (Transact-SQL). Especifique el nombre de la publicación para @publication y el valor con parámetros que define la partición para uno de los siguientes:Specify the name of the publication for @publication, and the parameterized value that defines the partition for one of the following:

  2. Cree e inicialice la instantánea parametrizada para esta nueva partición.Create and initialize the parameterized snapshot for this new partition. Para más información, consulte Crear una instantánea para una publicación de mezcla con filtros con parámetros.For more information, see Create a Snapshot for a Merge Publication with Parameterized Filters.

Para eliminar una particiónTo delete a partition

  1. En el publicador de la base de datos de publicación, ejecute sp_dropmergepartition (Transact-SQL).At the Publisher on the publication database, execute sp_dropmergepartition (Transact-SQL). Especifique el nombre de la publicación para @publication y el valor con parámetros que define la partición para uno de los siguientes:Specify the name of the publication for @publication and the parameterized value that defines the partition for one of the following:

    Este procedimiento quita también el trabajo de instantáneas y los archivos de instantáneas de la partición.This also removes the snapshot job and any snapshot files for the partition.

Uso de Replication Management Objects (RMO)Using Replication Management Objects (RMO)

Para administrar mejor una publicación con filtros parametrizados, puede crear mediante programación nuevas particiones del suscriptor, enumerar las particiones del suscriptor existentes y eliminar las particiones del suscriptor utilizando Replication Management Objects (RMO).To better manage a publication with parameterized filters, you can programmatically create new Subscriber partitions, enumerate the existing Subscriber partitions, and delete Subscriber partitions by using Replication Management Objects (RMO). Para obtener más información acerca de cómo particiones del suscriptor, vea Crear una instantánea para una publicación de mezcla con filtros con parámetros.For information about how to create Subscriber partitions, see Create a Snapshot for a Merge Publication with Parameterized Filters. Se puede obtener la información siguiente sobre las particiones existentes:The following information about existing partitions can be obtained:

  • El valor y la función de filtrado en los que se basa la partición.The value and filtering function upon which the partition is based.

  • El nombre del trabajo que genera una instantánea con parámetros para el suscriptor.The name of the job that generates a parameterized snapshot for the Subscriber.

  • La última vez que se ejecutó un trabajo de instantánea con parámetros.The last time that a parameterized snapshot job ran.

Para ver información sobre particiones existentesTo view information on existing partitions

  1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Cree una instancia de la clase MergePublication.Create an instance of the MergePublication class. Establezca las propiedades Name y DatabaseName para la publicación y la propiedad ConnectionContext en la ServerConnection creada en el paso 1.Set the Name and DatabaseName properties for the publication, and set the ConnectionContext property to the ServerConnection created in step 1.

  3. Llame al método LoadProperties para obtener las propiedades del objeto.Call the LoadProperties method to get the properties of the object. Si este método devuelve false, significa que las propiedades de publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.If this method returns false, either the publication properties in step 2 were defined incorrectly or the publication does not exist.

  4. Llame al método EnumMergePartitions y pase el resultado a una matriz de objetos MergePartition .Call the EnumMergePartitions method, and pass the result to an array of MergePartition objects.

  5. Para cada objeto MergePartition en la matriz, obtenga cualquier propiedad de interés.For each MergePartition object in the array, get any properties of interest.

Para eliminar particiones existentesTo delete existing partitions

  1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Cree una instancia de la clase MergePublication.Create an instance of the MergePublication class. Establezca las propiedades Name y DatabaseName para la publicación y la propiedad ConnectionContext en la ServerConnection creada en el paso 1.Set the Name and DatabaseName properties for the publication, and set the ConnectionContext property to the ServerConnection created in step 1.

  3. Llame al método LoadProperties para obtener las propiedades del objeto.Call the LoadProperties method to get the properties of the object. Si este método devuelve false, significa que las propiedades de publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.If this method returns false, either the publication properties in step 2 were defined incorrectly or the publication does not exist.

  4. Llame al método EnumMergePartitions y pase el resultado a una matriz de objetos MergePartition .Call the EnumMergePartitions method, and pass the result to an array of MergePartition objects.

  5. Para cada objeto MergePartition en la matriz, determine si se debería eliminar la partición.For each MergePartition object in the array, determine whether the partition should be deleted. Esta decisión normalmente está basada en el valor de la propiedad DynamicFilterLogin o la propiedad DynamicFilterHostName .This decision is usually based on the value of the DynamicFilterLogin property or the DynamicFilterHostName property.

  6. Llame al método RemoveMergePartition en el objeto MergePublication del paso 2.Call the RemoveMergePartition method on the MergePublication object from step 2. Pase el objeto MergePartition del paso 5.Pass the MergePartition object from step 5.

  7. Repita el paso 6 para cada partición que se elimina.Repeat step 6 for each partition that is deleted.

Consulte tambiénSee Also

Filtros de fila con parámetros Parameterized Row Filters
Instantáneas para publicaciones de combinación con filtros con parámetrosSnapshots for Merge Publications with Parameterized Filters