Domanda

Ho appena incontrato qualcosa di inquietante, stavo cercando di implementare la replica transazionale da un database il cui design non è sotto il nostro controllo. Questa replica è stato al fine di eseguire report senza tassare il sistema troppo. Al momento di provare la replica solo alcune delle tabelle è andato tutto.

Il tabelle di indagine non sono stati selezionati per essere replicato, perché non hanno una chiave primaria, ho pensato che questo non può essere che è addirittura presentato come chiave primaria se uso ODBC e l'accesso ms, ma non in studio gestione. Anche le query non sono incredibilmente lento.

Ho cercato di inserire un record duplicato ed è venuto a mancare dicendo circa un indice univoco (non una chiave primaria). Sembra essere il tabelle sono state implementate utilizzando un indice univoco come opporsi a una chiave primaria. Perchè io non so che potrei urlare.

Esiste un modo per eseguire la replica transazionale o in alternativa, ha bisogno di essere vivo (all'ultimo minuto o due). Il server db principale è attualmente SQL 2000 SP3a e la segnalazione Server 2005.

L'unica cosa che ho pensato di provare attualmente è l'impostazione di replica come se si tratta di un altro tipo di database. Credo replica dire oracolo è possibile sarebbe questa forza l'uso di un driver ODBC dire come assumo accesso utilizza quindi mostrando una chiave primaria. Non so se questo è accurata pesce fuor d'acqua su questo.

È stato utile?

Soluzione

stati , non è possibile creare un transazionale replica su tavoli senza chiavi primarie. Si potrebbe utilizzare Merge replica (solo andata), che non richiede una chiave primaria, e crea automaticamente una colonna rowguid se non esiste:

  

replica merge utilizza un globalmente   identificatore univoco della colonna (GUID) per   identificare ogni riga durante la fusione   processo di replica. Se una pubblicazione   tabella non dispone di un uniqueidentifier   colonna con la proprietà ROWGUIDCOL   e un indice univoco, la replica aggiunge   uno. Garantire che qualsiasi selezionare e inserire   dichiarazioni che di riferimento pubblicato   tabelle utilizzano gli elenchi delle colonne. Se una tabella è   non è più pubblicata e la replica   aggiunta la colonna, la colonna è   rimosso; se la colonna già   esistito, non viene rimosso.

Purtroppo, si avrà una riduzione delle prestazioni se si utilizza la replica di unione.

Se avete bisogno di utilizzare la replica per il rapporto solo, e non è necessario che i dati siano esattamente come nel server di pubblicazione, allora si potrebbe prendere in considerazione anche la replica snapshot

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top