none
Sottoscrizione PUSH su MSSQL 2000 RRS feed

  • Domanda

  • Salve a tutti,

    spero possiate essermi d'aiuto a risolvere questo problema.

    Sto cercando di effettuare una sottoscrizione PUSH da un SQL Server Express 2005 su un server di distribuzione/pubblicazione SQL Server 2000. Su quest'ultimo la pubblicazione è funzionante ed avviata (entrambi gli agenti sono stati associati ad un utente SO con autorizzazioni ADMIN, momentaneamente), lo snapshot sembra regolarmente creato ma il PUSH non riesce. La sottoscrizione è stata fatta dalla macchina SQL Express con il wizard automatico, selezionando l'opzione di eseguire gli agenti nel server di distribuzione, ma all'atto della sincronizzazione, l'agente sul SQL Server 2000 riporta il seguente errore: "Impossibile eseguire l'accesso per l'utente ''. L'utente non è associato a una connessione SQL Server trusted."

    Inoltre,  capisco perché l'agente di distribuzione tenti una connessione senza username (l'utente '')... Grazie.

    PS: aggiungo che entrambi i server hanno l'autenticazione server settata su Autenticazione di SQL server e di Windows.
    lunedì 2 luglio 2012 14:27

Risposte

  • Ciao Sergio,

    intanto ti ringrazio ancora per la disponibilità. Inoltre ti dico che ho risolto :D

    Dunque, prima di continuare la strada che avevo intrapreso (cercare di RIconfigurare l'agent di distribuzione sul SQL Server 2000 per usare forzatamente credenziali definite sul sottoscrittore - SQL Server Express 2005), ho provato ad effettuare la sottoscrizione direttamente dall'Enterprise Manager come mi hai suggerito ma, non so se per mancanza di qualche componente sull'Express oppure per altro, non è possibile amministrare il SQL Server 2005 Express con l'Enterprise Manager, ma occorre esplicitamente il Server Management Studio Express. Ho quindi provato COMUNQUE ad avviare una sottoscrizione PUSH dall'Enterprise Manager, ma nel wizard non viene fatta alcuna richiesta di credenziali. Ho dunque abbandonato questa strada.

    Infine, ho trovato la possibilità di cambiare i parametri di connessione relativi all'AGENT di distribuzione del SQL Server 2000 per un determinato sottoscrittore: nell'Enterprise Manager, cliccando con il tasto destro sul Server SQL -> Proprietà -> Replica.Server di Sottoscrizione -> Tasto di configurazione relativo al server di sottoscrizione da personalizzare, ecco che è possibile specificare l'uso dell'autenticazione SQL Server anziché quella TRUSTED definita di default. In questo modo l'agent si collega opportunamente all'Express 2005 utilizzando un utente ivi definito, associato al gruppo dbo (requisito essenziale per effettuare il popolamento).

    Purtroppo, credo che restino problemi di compatibilità con alcuni oggetti in particolare (ricevo il numero errore 208 - Gli oggetti o colonne a cui si fa riferimento in una vista o funzione non sono disponibili nel server di sottoscrizione. Impossibile replicare la vista o funzione). Indagherò nello specifico.

    giovedì 26 luglio 2012 15:33

Tutte le risposte

  • Ciao Fabio,

    durante la configurazione della sottoscrizione, quando selezioni l'opzione di eseguire gli agenti nel server di distribuzione (/pubblicazione) dovresti poter specificare anche l'utente da utilizzare per l'accesso... che dovrà essere un account valido nel server che ospita l'istanza SQL Server 2000.

    Ti consiglio di guardare questi due Webcast, in cui viene spiegato come configurare gli accessi nelle sottoscrizioni PUSH e PULL:

    Ciao!


    Sergio Govoni
    SQL Server MVP
    MVP Profile: http://mvp.microsoft.com/profiles/Sergio.Govoni
    Blog: http://community.ugiss.org/blogs/sgovoni


    venerdì 6 luglio 2012 23:24
    Moderatore
  • Ciao Sergio,

    intanto scusami per il ritardo, ma altre incombenze lavorative hanno avuto il sopravvento. Ho osservato con attenzione i due Webcast che mi hai indicato (grazie per la segnalazione), ma purtroppo l'esempio tecnico implementato tratta della replica MERGE usando SOLO SQL Server 2005. Il mio scenario è leggermente differente, in quanto ho la necessità di utilizzare un vecchio SQL Server 2000 Enterprise con ruolo di pubblicatore/distributore (non sono molti dati e non ci sono molte transizioni nelle tabelle coinvolte) ed un SQL Server 2005 EXPRESS come sottoscrittore. La modalità richiesta è la PUSH.

    L'indicazione che tu riporti ("[...]dovresti poter specificare anche l'utente da utilizzare per l'accesso...[...]") non è presente nel wizard per la sottoscrizione in SQL Server 2005 EXPRESS per PUSH (considera che uso il Microsoft SQL Server Management Studio Express). Con ciò il problema è presente quando l'agent di distribuzione (NomeServerSQL2000-NomeServerExpress\SQLEXPRESS-10) tenta di connettersi al server sottoscrittore (credo proprio per fare il PUSH, dal momento che la creazione dello snapshoot va a buon fine) riportandomi il seguente messaggio "Impossibile connettersi a Subscriber 'NomeServerExpress\SQLEXPRESS'." Nel dettaglio il messaggio che ho riportato prima. Stesso messaggio, ovviamente, lo ricevo sul SQL SERVER Express 2005 come tentativo di connessione fallito.

    Purtroppo, non so se esista (forse io non riesco a trovare la sezione giusta) il modo per configurare l'agente di distribuzione di una specifica sottoscrizione PUSH per utilizzare specifiche credenziali per connettersi al sottoscrittore (ho cercato tra le proprietà dell'agente distributore, cercando anche nelle stringhe dei comandi sui PASSAGGI, ma nulla). E' possibile che i due sistemi non siano compatibili in questo modo? Ovvero, che in SQL Server Express 2005 è cambiata la modalità di connessione per le replica... o qualcosa di simile?

    Grazie ancora per il supporto.

    mercoledì 25 luglio 2012 13:56
  • Ciao Fabio,

    in una sottoscrizione di tipo PUSH il pubblicatore/distributore si incarica di propagare le modifiche ai sottoscrittori senza che questi ultimi ne abbiamo fatto richiesta. L'agente di distribuzione gira quindi nel pubblicatore/distributore, nello scenario che descrivi dovrebbe quindi essere l'istanza SQL Server 2000 a connettersi all'istanza SQL Server 2005 Express per fare il PUSH delle modifiche.

    SQL Server 2005 Express può essere interessato in una sottoscrizione, qui trovi i dettagli:

    http://msdn.microsoft.com/en-us/library/ms143761(v=sql.90).aspx

    ...l'unico dubbio (problema) di compatibilità è relativo alla connessione dall'istanza 2000 all'istanza 2005.

    Quando configuri la pubblicazione con il wizard, se non ricordo male dovresti trovare anche una finestra in cui ti viene chiesto di specificare il tipo di sottoscrittori ammessi... temo che non troverai SQL Server 2005...

    http://www.codeproject.com/Articles/9086/SQL-Server-2000-Merge-Replication-Step-by-Step-Pro

    Prova a creare la sottoscrizione per l'istanza SQL Server 2005 Express direttamente da Enterprise Manager sull'istanza SQL Server 2000...

    Spero di riuscire a recuperare un'istanza SQL 2000 :) per fare una prova ASAP.

    Ciao!


    Sergio Govoni
    SQL Server MVP
    MVP Profile: http://mvp.microsoft.com/profiles/Sergio.Govoni
    Blog: http://community.ugiss.org/blogs/sgovoni




    giovedì 26 luglio 2012 06:08
    Moderatore
  • Ciao Sergio,

    intanto ti ringrazio ancora per la disponibilità. Inoltre ti dico che ho risolto :D

    Dunque, prima di continuare la strada che avevo intrapreso (cercare di RIconfigurare l'agent di distribuzione sul SQL Server 2000 per usare forzatamente credenziali definite sul sottoscrittore - SQL Server Express 2005), ho provato ad effettuare la sottoscrizione direttamente dall'Enterprise Manager come mi hai suggerito ma, non so se per mancanza di qualche componente sull'Express oppure per altro, non è possibile amministrare il SQL Server 2005 Express con l'Enterprise Manager, ma occorre esplicitamente il Server Management Studio Express. Ho quindi provato COMUNQUE ad avviare una sottoscrizione PUSH dall'Enterprise Manager, ma nel wizard non viene fatta alcuna richiesta di credenziali. Ho dunque abbandonato questa strada.

    Infine, ho trovato la possibilità di cambiare i parametri di connessione relativi all'AGENT di distribuzione del SQL Server 2000 per un determinato sottoscrittore: nell'Enterprise Manager, cliccando con il tasto destro sul Server SQL -> Proprietà -> Replica.Server di Sottoscrizione -> Tasto di configurazione relativo al server di sottoscrizione da personalizzare, ecco che è possibile specificare l'uso dell'autenticazione SQL Server anziché quella TRUSTED definita di default. In questo modo l'agent si collega opportunamente all'Express 2005 utilizzando un utente ivi definito, associato al gruppo dbo (requisito essenziale per effettuare il popolamento).

    Purtroppo, credo che restino problemi di compatibilità con alcuni oggetti in particolare (ricevo il numero errore 208 - Gli oggetti o colonne a cui si fa riferimento in una vista o funzione non sono disponibili nel server di sottoscrizione. Impossibile replicare la vista o funzione). Indagherò nello specifico.

    giovedì 26 luglio 2012 15:33
  • Ottimo :)

    Grazie a te per il feedback.


    Sergio Govoni
    SQL Server MVP
    MVP Profile: http://mvp.microsoft.com/profiles/Sergio.Govoni
    Blog: http://community.ugiss.org/blogs/sgovoni 

    sabato 28 luglio 2012 23:12
    Moderatore