Share via


Creazione di una sottoscrizione per un Sottoscrittore non SQL Server

Questo argomento descrive come creare una sottoscrizione per un Sottoscrittore non SQL Server in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL. La replica transazionale e snapshot supporta la pubblicazione dei dati nei Sottoscrittori non SQL Server. Per informazioni sulle piattaforme di Sottoscrittori supportate, vedere Non-SQL Server Subscribers.

Contenuto dell'articolo

Uso di SQL Server Management Studio

Per creare una sottoscrizione per un Sottoscrittore non SQL Server:

  1. Installare e configurare il software client appropriato e i provider OLE DB nel server di distribuzione SQL Server. Per ulteriori informazioni, vedere Oracle Subscribers e IBM DB2 Subscribers.

  2. Creare una pubblicazione utilizzando la Creazione guidata nuova pubblicazione. Per informazioni sulla creazione di pubblicazioni, vedere Creare una pubblicazione e Creare una pubblicazione da un database Oracle. Specificare le opzioni seguenti nella Creazione guidata nuova pubblicazione.

    • Nella pagina Tipo di pubblicazione selezionare Pubblicazione snapshot o Pubblicazione transazionale.

    • Nella pagina Agente snapshot , deselezionare Crea snapshot immediatamente.

      È possibile creare lo snapshot dopo che la pubblicazione è abilitata per i Sottoscrittori non SQL Server per assicurarsi che l'agente di snapshot generi uno snapshot e gli script di inizializzazione adatti per i Sottoscrittori non SQL Server.

  3. Abilitare la pubblicazione per sottoscrittori non SQL Server usando la finestra di dialogo Proprietà pubblicazione - <PublicationName>. Per ulteriori informazioni su questo passaggio, vedere Publication Properties, Subscription Options .

  4. Creare una sottoscrizione utilizzando la Creazione guidata nuova sottoscrizione. In questo argomento sono presenti ulteriori informazioni su questo passaggio.

  5. (Facoltativo) Modificare la proprietà di articolo pre_creation_cmd affinché le tabelle vengano mantenute nel Sottoscrittore. In questo argomento sono presenti ulteriori informazioni su questo passaggio.

  6. Generare uno snapshot per la pubblicazione. In questo argomento sono presenti ulteriori informazioni su questo passaggio.

  7. Sincronizzare la sottoscrizione. Per altre informazioni, vedere Sincronizzazione di una sottoscrizione push.

Per abilitare una pubblicazione per Sottoscrittori non SQL Server

  1. Connettersi al server di pubblicazione in SQL Server Management Studio e quindi espandere il nodo server.

  2. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali .

  3. Fare clic con il pulsante destro del mouse sulla pubblicazione e quindi scegliere Proprietà.

  4. Nella pagina Opzioni sottoscrizione , selezionare il valore True per l'opzione Consenti Sottoscrittori non SQL Server. Selezionando questa opzione viene modificata una serie di proprietà in modo che la pubblicazione sia compatibile con sottoscrittori non SQL Server.

    Nota

    Selezionando True , il valore della proprietà dell'articolo pre_creation_cmd viene impostato su 'drop'. In base a tale impostazione, se una tabella nel Sottoscrittore corrisponde al nome della tabella nell'articolo, tale tabella verrà eliminata dalla replica. Se si dispone di tabelle esistenti che si desidera mantenere, utilizzare la stored procedure sp_changearticle per ogni articolo e specificare il valore 'none' per pre_creation_cmd: sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

  5. Fare clic su OK. Verrà richiesto di creare un nuovo snapshot per la pubblicazione. Se non si desidera crearlo in questo momento, utilizzare i passaggi descritti nella "Procedura" seguente in un momento successivo.

Per creare una sottoscrizione per un Sottoscrittore non SQL Server

  1. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali .

  2. Fare clic con il pulsante destro del mouse sulla pubblicazione appropriata e quindi scegliere Nuove sottoscrizioni.

  3. Verificare che l'opzione Esegui tutti gli agenti nel server di distribuzione nella pagina Posizione in cui eseguire l'agente di distribuzione sia selezionata. I Sottoscrittori non SQL Server non supportano l'esecuzione di agenti nel Sottoscrittore.

  4. Nella pagina Sottoscrittori , fare clic su Aggiungi Sottoscrittore , quindi su Aggiungi Sottoscrittore non SQL Server.

  5. Nella finestra di dialogo Aggiungi Sottoscrittore non SQL Server , selezionare il tipo di Sottoscrittore.

  6. Inserire un valore nella casella Nome origine dati:

    • Per Oracle, si tratta del nome TNS che è stato configurato.

    • Per IBM, può essere qualsiasi nome. In genere viene utilizzato per specificare l'indirizzo di rete del Sottoscrittore.

    Il nome origine dati immesso in questo passaggio e le credenziali specificate nel passaggio 9 non vengono convalidati da questa procedura guidata. Non vengono utilizzati dalla replica fino all'esecuzione dell'agente di distribuzione per la sottoscrizione. Accertarsi che tutti i valori siano stati verificati connettendosi al Sottoscrittore con uno strumento client come sqlplus per Oracle. Per ulteriori informazioni, vedere Oracle Subscribers e IBM DB2 Subscribers.

  7. Fare clic su OK. Nella pagina Sottoscrittori della procedura guidata, il Sottoscrittore è ora visualizzato nella colonna Sottoscrittore con una (destinazione predefinita) di sola lettura nella colonna Database di sottoscrizione :

    • Per Oracle, un server include al massimo un database e pertanto non è necessario specificare il database.

    • Per IBM DB2, il database viene specificato nella proprietà Catalogo iniziale della stringa di connessione DB2, che può essere inserita nel campo Opzioni di connessione aggiuntive descritto più avanti in questo processo.

  8. Nella pagina agente di distribuzione Sicurezza fare clic sul pulsante proprietà (...) accanto al Sottoscrittore per accedere alla finestra di dialogo Sicurezza agente di distribuzione.

  9. Nella finestra di dialogo Sicurezza agente di distribuzione :

    • Nei campi Account processo, Password e Conferma password immettere l'account e la password di Microsoft Windows in cui è necessario eseguire la agente di distribuzione e creare connessioni locali al server di distribuzione.

      L'account richiede le autorizzazioni minime seguenti: membro del ruolo predefinito db_owner del database di distribuzione, membro dell'elenco di accesso alla pubblicazione, autorizzazione di lettura sulla condivisione snapshot e autorizzazione di lettura sulla directory di installazione del provider OLE DB. Per altre informazioni sull'elenco di acceso alla pubblicazione, vedere Proteggere il server di pubblicazione.

    • Nei campi Nome account di accesso, Passworde Conferma passworddi Connessione al Sottoscrittore , inserire il nome account di accesso e la password da utilizzare per la connessione al Sottoscrittore. Questo nome account di accesso dovrebbe essere già configurato ed avere autorizzazioni sufficienti per la creazione di oggetti nel database di sottoscrizione.

    • Nel campo Opzioni di connessione aggiuntive , specificare le eventuali opzioni di connessione per il Sottoscrittore nel formato di stringa di connessione (Oracle non richiede opzioni aggiuntive). Le opzioni devono essere separate dal punto e virgola. L'esempio seguente illustra una stringa di connessione DB2 (le interruzioni di riga sono inserite per agevolare la lettura):

      Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;  
      PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;  
      Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT;  
      Persist Security Info=False;Connection Pooling=True;  
      

      La maggior parte delle opzioni nella stringa è specifica per il server DB2 configurato, ma è necessario che l'opzione Process Binary as Character sia sempre impostata su False. È necessario specificare un valore per l'opzione Initial Catalog per identificare il database di sottoscrizione.

  10. Nella pagina Pianificazione della sincronizzazione , selezionare una pianificazione per l'agente di distribuzione dal menu Pianificazione agente . In genere è Esecuzione continua.

  11. Nella pagina Inizializzazione sottoscrizioni , specificare se la sottoscrizione deve essere inizializzata e quando:

    • Deselezionare Inizializzazione di solo se nel database di sottoscrizione sono stati creati tutti gli oggetti e sono stati aggiunti tutti i dati necessari.

    • Selezionare Immediatamente nell'elenco a discesa della colonna Quando per ottenere il trasferimento dei file di snapshot da parte dell'agente di distribuzione al Sottoscrittore al termine di questa procedura guidata. Selezionare Alla prima sincronizzazione per fare in modo che l'agente trasferisca i file alla successiva esecuzione pianificata dell'agente.

  12. Nella pagina Azioni procedura guidata , se si desidera, creare lo script della sottoscrizione. Per altre informazioni, vedere Scripting Replication.

Per mantenere le tabelle nel Sottoscrittore

  • Per impostazione predefinita, l'abilitazione di una pubblicazione per sottoscrittori non SQL Server imposta il valore della proprietà dell'articolo pre_creation_cmd su 'drop'. In base a tale impostazione, se una tabella nel Sottoscrittore corrisponde al nome della tabella nell'articolo, tale tabella verrà eliminata dalla replica. Se si dispone di tabelle esistenti nel Sottoscrittore che si desidera mantenere, utilizzare la stored procedure sp_changearticle per ogni articolo e specificare il valore 'none' per pre_creation_cmd. sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

Per generare uno snapshot per la pubblicazione.

  1. Espandere la cartella Replica e quindi la cartella Pubblicazioni locali .

  2. Fare clic con il pulsante destro del mouse sulla pubblicazione e quindi scegliere Visualizza stato agente snapshot.

  3. Nella finestra di dialogo Visualizza agente di snapshot stato - <Pubblicazione> fare clic su Avvia.

Al termine della generazione dello snapshot da parte dell'agente, viene visualizzato un messaggio come ""[100%] Generato uno snapshot di 17 articoli."

Uso di Transact-SQL

È possibile creare sottoscrizioni push ai Sottoscrittori non SQL Server a livello di codice usando stored procedure di replica.

Importante

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

Per creare una sottoscrizione push per una pubblicazione transazionale o snapshot in un Sottoscrittore non SQL Server

  1. Installare il provider OLE DB più recente per il Sottoscrittore non SQL Server sia nel server di pubblicazione che nel server di distribuzione. Per i requisiti di replica relativi a un provider OLE DB, vedere Non-SQL Server Subscribers, Oracle Subscribers, IBM DB2 Subscribers.

  2. Nel database di pubblicazione del server di pubblicazione verificare che la pubblicazione supporti sottoscrittori non SQL Server eseguendo sp_helppublication (Transact-SQL).

    • Se il valore di enabled_for_het_sub è 1, i Sottoscrittori non SQL Server sono supportati.

    • Se il valore è enabled_for_het_sub 0, eseguire sp_changepublication (Transact-SQL), specificando enabled_for_het_sub per @property e true per @value.

      Nota

      Prima di impostare enabled_for_het_sub su true, è necessario eliminare eventuali sottoscrizioni esistenti nella pubblicazione. Non è possibile impostare enabled_for_het_sub su true se la pubblicazione supporta anche sottoscrizioni aggiornabili. La modifica dell'impostazione enabled_for_het_sub influirà su altre proprietà della pubblicazione. Per altre informazioni, vedere Non-SQL Server Subscribers.

  3. Nel database di pubblicazione del server di pubblicazione eseguire sp_addsubscription (Transact-SQL). Specificare @publication, @subscriber, il valore (default destination) per @destination_db, il valore push per @subscription_typee il valore 3 per @subscriber_type (per indicare un provider OLE DB).

  4. Nel database di pubblicazione del server di pubblicazione eseguire sp_addpushsubscription_agent (Transact-SQL). Specificare le opzioni seguenti:

    • I parametri @subscribere @publication .

    • Il valore (default destination) per @subscriber_db,

    • Proprietà dell'origine dati non SQL Server per @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string e @subscriber_catalog.

    • Credenziali di Microsoft Windows in cui viene eseguito il agente di distribuzione nel server di distribuzione per @job_login e @job_password.

      Nota

      Le connessioni effettuate con l'autenticazione integrata di Windows usano sempre le credenziali di Windows specificate da @job_login e @job_password. L'agente di distribuzione esegue sempre la connessione locale al server di distribuzione utilizzando l'autenticazione integrata di Windows. Per impostazione predefinita, l'agente si connette al Sottoscrittore utilizzando l'autenticazione integrata di Windows.

    • Il valore 0 per @subscriber_security_mode e le informazioni sull'account di accesso del provider OLE DB per @subscriber_login e @subscriber_password.

    • Specificare una pianificazione per il processo dell'agente di distribuzione da eseguire per la sottoscrizione. Per altre informazioni, vedere Specify Synchronization Schedules.

    Importante

    Quando si crea una sottoscrizione push in un server di pubblicazione per un server di distribuzione remoto, i valori specificati per tutti i parametri, compresi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per altre informazioni, vedere Abilitare le connessioni crittografate al motore di database (Gestione configurazione SQL Server).

Vedere anche

IBM DB2 Subscribers
Sottoscrittori Oracle
Altri Sottoscrittori non SQL Server
Replication System Stored Procedures Concepts
Procedure consigliate per la sicurezza della replica