Share via


Procedura: Reinizializzazione di una sottoscrizione (programmazione Transact-SQL della replica)

È possibile contrassegnare singole sottoscrizioni per la reinizializzazione in modo che nel corso della successiva sincronizzazione venga applicato un nuovo snapshot. È possibile reinizializzare le sottoscrizioni a livello di programmazione tramite le stored procedure di replica. La stored procedure utilizzata dipende dal tipo di sottoscrizione, ovvero push o pull, nonché dal tipo di pubblicazione a cui appartiene la sottoscrizione.

Per reinizializzare una sottoscrizione pull in una pubblicazione transazionale

  1. Nel database di sottoscrizione del Sottoscrittore eseguire sp_reinitpullsubscription (Transact-SQL). Specificare i parametri @publisher, @publisher_db e @publication La sottoscrizione verrà contrassegnata per la reinizializzazione alla successiva esecuzione dell'agente di distribuzione.

  2. (Facoltativo) Avviare l'agente di distribuzione nel Sottoscrittore per sincronizzare la sottoscrizione. Per ulteriori informazioni, vedere Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica).

Per reinizializzare una sottoscrizione push in una pubblicazione transazionale

  1. Nel server di pubblicazione eseguire sp_reinitsubscription (Transact-SQL). Specificare i parametri @publication, @subscriber e @destination_db. La sottoscrizione verrà contrassegnata per la reinizializzazione alla successiva esecuzione dell'agente di distribuzione.

  2. (Facoltativo) Avviare l'agente di distribuzione nel server di distribuzione per sincronizzare la sottoscrizione. Per ulteriori informazioni, vedere Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

Per reinizializzare una sottoscrizione pull in una pubblicazione di tipo merge

  1. Nel database di sottoscrizione del Sottoscrittore eseguire sp_reinitmergepullsubscription (Transact-SQL). Specificare i parametri @publisher, @publisher_db e @publication Per caricare le modifiche dal Sottoscrittore prima della reinizializzazione, specificare il valore true per @upload_first. La sottoscrizione verrà contrassegnata per la reinizializzazione alla successiva esecuzione dell'agente di merge.

    Nota importanteImportante

    In caso di aggiunta, eliminazione o modifica di un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non potranno essere caricate nel server di pubblicazione durante la reinizializzazione. Se si desidera caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

  2. (Facoltativo) Avviare l'agente di merge nel Sottoscrittore per sincronizzare la sottoscrizione. Per ulteriori informazioni, vedere Procedura: Sincronizzazione di una sottoscrizione pull (programmazione della replica).

Per reinizializzare una sottoscrizione push in una pubblicazione di tipo merge

  1. Nel server di pubblicazione eseguire sp_reinitmergesubscription (Transact-SQL). Specificare i parametri @publication, @subscriber e @subscriber_db. Per caricare le modifiche dal Sottoscrittore prima della reinizializzazione, specificare il valore true per @upload_first. La sottoscrizione verrà contrassegnata per la reinizializzazione alla successiva esecuzione dell'agente di distribuzione.

    Nota importanteImportante

    In caso di aggiunta, eliminazione o modifica di un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non potranno essere caricate nel server di pubblicazione durante la reinizializzazione. Se si desidera caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

  2. (Facoltativo) Avviare l'agente di merge nel server di distribuzione per sincronizzare la sottoscrizione. Per ulteriori informazioni, vedere Procedura: Sincronizzazione di una sottoscrizione push (programmazione della replica).

Per impostare i criteri di reinizializzazione durante la creazione di una nuova pubblicazione di tipo merge

  • Nel database di pubblicazione del server di pubblicazione eseguire sp_addmergepublication, specificando uno dei valori seguenti per @automatic_reinitialization_policy:

    • 1: le modifiche vengono caricate dal Sottoscrittore prima della reinizializzazione automatica di una sottoscrizione in seguito a una modifica della pubblicazione.

    • 0: le modifiche nel Sottoscrittore vengono eliminate quando una sottoscrizione viene reinizializzata automaticamente in seguito a una modifica della pubblicazione.

    Nota importanteImportante

    In caso di aggiunta, eliminazione o modifica di un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non potranno essere caricate nel server di pubblicazione durante la reinizializzazione. Se si desidera caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

    Per ulteriori informazioni, vedere Procedura: Creazione di una pubblicazione (programmazione Transact-SQL della replica).

Per modificare i criteri di reinizializzazione per una pubblicazione di tipo merge esistente

  • Nel database di pubblicazione del server di pubblicazione eseguire sp_changemergepublication, specificando automatic_reinitialization_policy per @property e uno dei valori seguenti per @value:

    • 1: le modifiche vengono caricate dal Sottoscrittore prima della reinizializzazione automatica di una sottoscrizione in seguito a una modifica della pubblicazione.

    • 0: le modifiche nel Sottoscrittore vengono eliminate quando una sottoscrizione viene reinizializzata automaticamente in seguito a una modifica della pubblicazione.

    Nota importanteImportante

    In caso di aggiunta, eliminazione o modifica di un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non potranno essere caricate nel server di pubblicazione durante la reinizializzazione. Se si desidera caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

    Per ulteriori informazioni, vedere Procedura: Visualizzazione e modifica delle proprietà delle pubblicazioni (programmazione Transact-SQL della replica).