none
Errore nella replica SQLServer Merge - Pull RRS feed

  • Domanda

  • Ciao
    ho un problema nel configurare una replica di tipo Merge - Pull tra due database SQLServer 2012.
    La macchina di Publisher è un Windows Server 2008 R2 NON in dominio e la stessa macchina fa anche da Distributor. La macchina di Subscription è un Windows 8 NON in dominio.

    Ho settato la cartella di distribuzione per gli snapshot sulla macchina di Publisher condividendo la cartella con l'utente everyone full controll. La cartella è configurata con \\nomemacchina\repldata

    vedi immagine
    http://www.alessandrosenesi.com/download/distributor.jpg

    Ho creato la pubblicazione, vedi immagine:
    http://www.alessandrosenesi.com/download/Publisher.jpg

    Ho creato la sottoscrizione, vedi immagine:
    http://www.alessandrosenesi.com/download/subscriber.jpg

    Sto provando a cambiare tutte le impostazioni, profilo utente ma non ottengo risultati se non un errore di accesso:
    http://www.alessandrosenesi.com/download/log.jpg


    -----------------------------------------------------------------------------------
    Error messages:
    The schema script 'BOOKING_2.sch' could not be propagated to the subscriber. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001)
    Get help: http://help/MSSQL_REPL-2147201001

    The process could not read file '\\nomemacchina\repldata\unc\nomemacchina$MSSQLSER VER2012_nomereplica\20130930125944\BOOKING_2.sch' due to OS error 5. (Source: MSSQL_REPL, Error number: MSSQL_REPL0)
    Get help: http://help/MSSQL_REPL0

    Accesso negato.
    (Source: MSSQL_REPL, Error number: MSSQL_REPL5)
    Get help: http://help/MSSQL_REPL5
    -----------------------------------------------------------------------------------

    Qualcuno sa dirmi dove sto sbagliando? Non riesco a mettere in piedi questa benedetta replica.

    Grazie in anticipo per ogni suggerimento.

    martedì 1 ottobre 2013 10:04

Tutte le risposte

  • due macchine in workgroup non risultano reciprocamente trustate perciò dai un'occhiata a questo articolo Technet

    http://support.microsoft.com/kb/321822


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    martedì 1 ottobre 2013 13:07
    Moderatore
  • Ciao Edoardo
    grazie della segnalazione, dovrei avere risolto il mio problema anche se non sono sicuro di essere stato molto preciso nella scelta dei permessi agli utenti, per passare in produzione ho però deciso di usare la replica merge/web.

    Questa replica soddisfa le mie esigenze per quanto riguarda la frequenza degli aggiornamenti dei dati e mi da maggiore sicurezza avendo le due macchine in  workgroup e non nel dominio aziendale.

    giovedì 3 ottobre 2013 08:50
  • grazie del feedback, ciao.

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    giovedì 3 ottobre 2013 08:58
    Moderatore
  • Ciao Edoardo

    purtroppo non sono riuscito a risolvere nessuno dei mie problemi. Ho seguito le indicazioni dei vari post ma il risultato è sempre lo stesso: A security error occurred.
    Sto cercando di creare una replica merge pull tra due database in internet.
    I due server SQL 2008R2 (in produzione avrò questa versione) comunicheranno tra di loro attraverso un server web IIS.
    L'architettura è la seguente:
    Macchina Winodws Server 2008: SQLserver 2008R2 che farà da Publischer e da Distributor. Sulla stessa macchina è installato IIS7.
    Macchina Windows7 con installato SQLServer 2008R2 che farà da subscriber e consumerà il servizio di IIS.

    In questo momento per semplificare le cose le due macchine si trovano sulla stessa rete.
    Io ho creato un utente di macchina uguale e con la stessa password su entrambe le macchine, l'utente si chiama: repl_sql_server 

    Ho configurato IIS per ricevere le richieste durante la replica e la richiesta a https://Server/SQLReplication/replisapi.dll?diag mi restituisce una pagina con le informazioni di diagnostica tutte con stato success.

    Ho quindi creato la Pubblicazione sul server, e qua ho un primo dubbio, ma se le macchine saranno su reti diverse, il server di distribuzione sarà raggiungibile solo dal Pulisher (avendo io installato tutto sulla stessa macchina) e tramite IIS si scambierà le informazioni con il suo Subscriber? E' quindi inutile una cartella condivisa in rete per gli agenti di snapshot dal Distributore?

    Preso un po' dallo sconforto ho dato i permessi massimi a questo utente repl_sql_server sia come police di Windows sia di SQL.

    Praticamente ovunque ho inserito questo utente, per gli agenti di snapshot, owner db, in questa fase non so se è necessario elencarli tutti.

    Il risultato finale è sempre lo stesso: A security error occurred

    Immagine del Monitor di replica: www.alessandrosenesi.com/download/log2.jpg

    10/07/2013 11:56:29,WEB3-FSC_FLIPBOARD-test-K-DEV-FSC_FLIPBOARD- 0,Error,,K-DEV,WEB3-FSC_FLIPBOARD-test-K-DEV-FSC_FLIPBOARD- 0,,,Processo non riuscito.
    Il processo è stato richiamato da Utente sa. 
    L'ultimo passaggio eseguito è il passaggio 1 (Esecuzione dell'agente.).,00:00:00,0,0,,,,0

    10/07/2013 11:56:29,WEB3-FSC_FLIPBOARD-test-K-DEV-FSC_FLIPBOARD- 0,Error,1,K-DEV,WEB3-FSC_FLIPBOARD-test-K-DEV-FSC_FLIPBOARD- 0,Esecuzione dell'agente.,,Eseguito come utente: k-dev\repl_sql_server.
    L'agente di replica ha rilevato un errore. 
    Per ulteriori informazioni<c/> vedere il messaggio di cronologia del passaggio di processo precedente oppure Monitoraggio replica.  
    Passaggio non riuscito.,00:00:00,0,0,,,,0

    Hai qualche idea al riguardo?

    lunedì 7 ottobre 2013 10:12
  • I due server SQL 2008R2 (in produzione avrò questa versione) comunicheranno tra di loro attraverso un server web IIS.

    dove hai trovato le indicazioni per far replicare due sql server attraverso IIS ?

    puoi fornirmi qualche link ?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 7 ottobre 2013 15:38
    Moderatore
  • Ecco io sono partito da questo:

    http://technet.microsoft.com/it-it/library/ms151763.aspx


    http://technet.microsoft.com/it-it/library/ms151255.aspx 

    e ho configurato IIS qua: http://technet.microsoft.com/it-it/library/ff714039.aspx (mi funziona questo)

    Una cosa però non capisco, se le due macchine sono su due reti diverse come faccio a creare una sottoscrizione? Il ManagementStudio mi fa cercare solo servizi sql sulla stessa rete...

    Inoltre la cartella del distributore in questo caso è necessaria? Perché se le macchine sono su reti diverse mi è parso di capire che comunichino tramite IIS e file XML; tra le voci ho visto che è possibile utilizzare una cartella ftp per gli snapshot però non mi dice essere obbligatoria per la sincronizzazione web...

    In questo momento se provo a sincronizzare via WEB ho un errore di accesso sebbene stia utilizzando lo stesso utente con cui testo la dll e che ho configurato ovunque.

    https://macchinaserver/SQLReplication/replisapi.dll?diag

    Firewall abilitato.

    lunedì 7 ottobre 2013 16:28
  • non ho capito perchè ti sei andato a impelagare in questa strada invece di seguire l'esempio 1 del link che ti ho postato io.

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    mercoledì 9 ottobre 2013 08:25
    Moderatore
  • Ciao Edoardo

    non mi sono impelagato per il gusto di impelagarmi e che non ho alternative visto lo scenario che dovrò affrontare.

    Ho una macchina che si trova a Roma e uno che si trova a Padova e dovranno condividere la stessa base dati attraverso internet. Considerata la frequenza degli aggiornamenti la replica Merge Pull è quella adatta ma per poter fare comunicare le due macchine ho due soluzioni: VPN oppure replica web (non prendo in considerazione di esporre direttamente SQLServer in internet).

    Data che la soluzione VPN nono sono certo per motivi tecnici di poterla creare sto cercando da giorni di preparare la replica web.

    Se lascio replica Merge senza sincronia WEB funziona tutto regolarmente, se configuro la replica web invece ho problemi di accesso. I test li sto facendo con due macchine non trusted quindi immagino che il problema sia proprio quando configuro la parte web. Interrogando però IIS da internet explorer: https://web3/SQLReplication/replisapi.dll?diag ho tutte le voci a "SUCCESS" (quindi escluderei firewall o impostazioni internet già controllate seguendo le indicazioni msdn).

    Non so che giro faccia SQLServer connettersi perché mi da sempre lo stesso errore:

    Errore di sicurezza:

    Connessione a Sottoscrittore 'K-DEV' in corso<nl/>2013-10-10 10:49:14.348 Connessione a Sottoscrittore 'K-DEV' in corso<nl/>2013-10-10 10:49:14.367 ╚ in corso la generazione del messaggio di caricamento da inviare al server di pubblicazione 'WEB3'<nl/>2013-10-10 10:49:14.370 Per questa sessione di sincronizzazione viene utilizzato l'attributo ExchangeID '6F3FDB54-151B-4083-A42A-790E2662377C'.<nl/>2013-10-10 10:49:16.992 Errore di sicurezza<nl/><nl/>2013-10-10 10:49:16.994 Category:NULL<nl/>Source:  Processo di merge<nl/>Number:  -2147209329<nl/>

    Message: Errore di sicurezza<nl/><nl/>2013-10-10 10:49:16.996 Category:NULL<nl/>Source:  Processo di merge(Client sincronizzazione Web)<nl/>Number:  -2147024896<nl/>Message: Impossibile stabilire la connessione all'URL 'https://web3.professionalshow.com/SQLReplication/replisapi.dll' durante la sincronizzazione tramite il Web. Verificare che l'URL<c/> le credenziali di accesso a Internet e le impostazioni del server proxy siano corrette e che il server Web sia raggiungibile.,00:00:03,0,0,,,,0

    Conosci qualcuno che ha già affrontato un problema simile? Ho l'impressioni che ci sia un dettaglio che non mi permette di ottenere un risultato positivo.

    ciao e grazie intanto

    giovedì 10 ottobre 2013 10:54
  • immaginiamo che tu abbia seguito alla perfezione questo documento

    pertanto che tu abbia creato i tuoi account ad-hoc esattamente come descritto.

    cosa può far fallire l'autenticazione ?

    ad esempio che al passo

    Per richiedere la sicurezza SSL per un sito Web

    1. Gestione Internet Information Services (IIS) espandere il nodo del server locale, quindi fare clic su Sito Web predefinito o sul sito di sincronizzazione Web se è diverso dal sito Web predefinito.

    2. Impostazioni SSL.

    3. Richiedi SSL.</sentencetext> Certificati client verificare che il pulsante Ignora sia selezionato.

    sia stato creato un certificato che non è compliance con i criteri di validità ossia

    1) intervallo di validità

    2) catena di certificcazione

    3) common name del certificato uguale al nome di dominio di terzo livello a cui risponde il server.

    controlla questa ipotesi


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    venerdì 11 ottobre 2013 11:21
    Moderatore