Condividi tramite


Creare 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. Il supporto per la replica transazionale e snapshot permette la pubblicazione dei dati a sottoscrittori non-SQL Server. Per informazioni sulle piattaforme sottoscrittori supportate, vedere Sottoscrittori non SQL Server.

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 altre informazioni, vedere Sottoscrittori Oracle e Sottoscrittori IBM DB2.

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

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

    • Nella pagina Agente snapshot, togliere Crea uno snapshot immediatamente.

      Lo snapshot viene creato dopo l'abilitazione della pubblicazione per i Sottoscrittori non SQL Server per garantire che l'agente snapshot generi uno snapshot e script di inizializzazione adatti per sottoscrittori non SQL Server.

  3. Abilitare la pubblicazione per i sottoscrittori non SQL Server tramite la finestra di dialogo Proprietà pubblicazione - <NomePubblicazione> pubblicazione. Per altre informazioni su questo passaggio , vedere Proprietà pubblicazione, Opzioni di sottoscrizione .

  4. Creare una sottoscrizione con la creazione guidata per una nuova sottoscrizione. In questo argomento vengono fornite altre informazioni su questo passaggio.

  5. (Facoltativo) Modificare la proprietà dell'articolo pre_creation_cmd per conservare le tabelle presso il Sottoscrittore. In questo argomento vengono fornite altre informazioni su questo passaggio.

  6. Generare uno snapshot per la pubblicazione. In questo argomento vengono fornite altre informazioni su questo passaggio.

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

Per abilitare una pubblicazione per sottoscrittori non SQL Server

  1. Connettiti al server di pubblicazione in SQL Server Management Studio e poi espandi 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, quindi scegliere Proprietà.

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

    Annotazioni

    Se si seleziona True , il valore della proprietà dell'articolo pre_creation_cmd viene impostato su 'drop'. Questa impostazione specifica che la replica deve eliminare una tabella nel Sottoscrittore se corrisponde al nome della tabella nell'articolo. Se nel Sottoscrittore sono presenti tabelle esistenti da conservare, utilizzare la stored procedure sp_changearticle per ogni articolo; specificare un 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 crearne uno in questo momento, utilizzare i passaggi descritti nella procedura "come fare" successiva in un secondo momento.

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, quindi scegliere Nuove sottoscrizioni.

  3. Nella pagina Percorso agente di distribuzione verificare che sia selezionata l'opzione Esegui tutti gli agenti nel server di distribuzione . I Sottoscrittori non SQL Server non supportano gli agenti in esecuzione nel Sottoscrittore.

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

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

  6. Immettere un valore in Nome origine dati:

    • Per Oracle, si tratta del nome TNS (Transparent Network Substrate) configurato.

    • Per IBM, questo può essere qualsiasi nome. In genere è necessario specificare l'indirizzo di rete del Sottoscrittore.

    Il nome dell'origine dati immesso in questo passaggio e le credenziali specificate nel passaggio 9 non vengono convalidate da questa procedura guidata. Non vengono usate per la replicazione finché l'agente di distribuzione non viene eseguito per la sottoscrizione. Verificare che tutti i valori siano stati testati connettendosi al Sottoscrittore usando uno strumento client, ad esempio sqlplus per Oracle. Per altre informazioni, vedere Sottoscrittori Oracle e Sottoscrittori IBM DB2.

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

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

    • Per IBM DB2, il database viene specificato nella proprietà Initial Catalog della stringa di connessione DB2, che può essere immessa nel campo Opzioni di connessione aggiuntive descritte più avanti in questo processo.

  8. Nella pagina Sicurezza agente di distribuzione fare clic sul pulsante delle 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 l'agente di distribuzione deve eseguire e stabilire connessioni locali al server di distribuzione.

      L'account richiede queste autorizzazioni minime: membro del ruolo predefinito del database db_owner nel database di distribuzione; membro dell'elenco di accesso alla pubblicazione (PAL); permessi di lettura per la condivisione snapshot; e permessi di lettura per la directory di installazione del provider OLE DB. Per ulteriori informazioni sul PAL, vedere Proteggi il Publisher.

    • In Connetti al Sottoscrittore, nei campi Account di accesso, Password e Conferma password immettere l'account di accesso e la password da usare per connettersi al Sottoscrittore. Questo account di accesso deve essere già configurato e deve disporre di autorizzazioni sufficienti per creare oggetti nel database di sottoscrizione.

    • Nel campo Opzioni di connessione aggiuntive specificare le opzioni di connessione per il Sottoscrittore sotto forma di stringa di connessione (Oracle non richiede opzioni aggiuntive). Ogni opzione deve essere separata da un punto e virgola. Di seguito è riportato un esempio di stringa di connessione DB2 (le interruzioni di riga sono destinate alla leggibilità):

      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 del server DB2 che si sta configurando, ma l'opzione Process Binary as Character deve essere sempre impostata su False. Per identificare il database di sottoscrizione, è necessario un valore per l'opzione Catalogo iniziale .

  10. Nella pagina Pianificazione sincronizzazione selezionare una pianificazione per l'agente di distribuzione dal menu Pianificazione agente (la pianificazione è in genere Esegui in modo continuo).

  11. Nella pagina Inizializza sottoscrizioni specificare se la sottoscrizione deve essere inizializzata e, in tal caso, quando deve essere inizializzata:

    • Cancella Inizializza solo se hai creato tutti gli oggetti e aggiunto tutti i dati richiesti nel database di sottoscrizione.

    • Selezionare Immediatamente dall'elenco a discesa nella colonna Inizializza quando per fare in modo che l'agente di distribuzione trasferisca i file di snapshot al Sottoscrittore al termine della procedura guidata. Selezionare Alla prima sincronizzazione per fare in modo che l'agente trasferisca i file alla successiva esecuzione.

  12. Facoltativamente, nella pagina Azioni procedura guidata, creare uno script per la sottoscrizione. Per altre informazioni, vedere Scripting Replication.

Per conservare 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'. Questa impostazione specifica che la replica deve eliminare una tabella nel Sottoscrittore se corrisponde al nome della tabella nell'articolo. Se nel Sottoscrittore sono presenti tabelle esistenti da conservare, utilizzare la stored procedure sp_changearticle per ogni articolo; specificare un 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 lo stato dell'agente Snapshot.

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

Al termine della generazione dello snapshot, viene visualizzato un messaggio, ad esempio "[100%] È stato generato uno snapshot di 17 articoli".

Uso di Transact-SQL

È possibile creare sottoscrizioni push a subscriber diversi da SQL Server tramite programmazione utilizzando le 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 di script, è necessario proteggere il file per impedire l'accesso non autorizzato.

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 nel server di pubblicazione e nel server di distribuzione. Per i requisiti di replica per un provider OLE DB, vedere Sottoscrittori non SQL Server, Sottoscrittori Oracle, Sottoscrittori IBM DB2.

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

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

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

      Annotazioni

      Prima di passare enabled_for_het_sub a true, è necessario eliminare tutte le sottoscrizioni esistenti alla pubblicazione. Non è possibile impostare enabled_for_het_sub su true quando la pubblicazione supporta anche l'aggiornamento delle sottoscrizioni. La modifica enabled_for_het_sub influirà su altre proprietà della pubblicazione. Per altre informazioni, vedere Sottoscrittori non SQL Server.

  3. Nel database di pubblicazione del server di pubblicazione eseguire sp_addsubscription (Transact-SQL). Specificare @publication, @subscriber, il valore (destinazione predefinita) per @destination_db, il valore push per @subscription_type e il valore 3 per @subscriber_type (specifica un provider OLE DB).

  4. Al Publisher nel database di pubblicazione, eseguire sp_addpushsubscription_agent (Transact-SQL). Specificare quanto segue:

    • Parametri @subscriber e @publication.

    • Valore (destinazione predefinita) per @subscriber_db,

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

    • Le credenziali di Microsoft Windows utilizzate per eseguire l'agente di distribuzione presso il server di distribuzione per @job_login e @job_password.

      Annotazioni

      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 effettua sempre la connessione locale al server di distribuzione usando l'autenticazione integrata di Windows. Per impostazione predefinita, l'agente si connetterà al Sottoscrittore usando l'autenticazione integrata di Windows.

    • Valore 0 per @subscriber_security_mode e le informazioni di accesso del provider OLE DB per @subscriber_login e @subscriber_password.

    • Programmazione per il compito dell'agente di distribuzione per questa sottoscrizione. Per altre informazioni, vedere Specificare le pianificazioni di sincronizzazione.

    Importante

    Quando si crea una sottoscrizione push in un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, inclusi 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

Sottoscrittori IBM DB2
Sottoscrittori Oracle
Altri Sottoscrittori non SQL Server
Concetti sulle procedure memorizzate del sistema di replica
Procedure consigliate per la sicurezza della replica