Esporta (0) Stampa
Espandi tutto

Procedure consigliate della sincronizzazione dati SQL (anteprima)

Aggiornamento: febbraio 2014

 

 

Introduzione alla Sincronizzazione dati SQL (anteprima). In questo argomento viene illustrato il quinto e ultimo di cinque argomenti che è necessario conoscere prima di progettare e implementare un piano di sincronizzazione dati. I cinque argomenti preparatori sono:

Il plug-in di sincronizzazione dati SQL di Microsoft Azure nel portale Silverlight di Microsoft Azure è stato rimosso. Per il futuro, usare il portale di gestione di Microsoft Azure per la sincronizzazione dati SQL di Azure.

È possibile accedere alla sincronizzazione dati SQL (anteprima) tramite la scheda SINCRONIZZAZIONE in Database SQL nel portale di gestione di Microsoft Azure. La scheda SINCRONIZZAZIONE è disponibile solo se sono presenti uno o più gruppi di sincronizzazione. Vedere l'argomento Procedura: creare un gruppo di sincronizzazione (SDS) per informazioni sulla creazione e modifica di un gruppo di sincronizzazione da questo portale.

Per collegamenti agli argomenti che è consigliabile leggere prima di iniziare e per informazioni aggiuntive sulla creazione e modifica dei gruppi di sincronizzazione, vedere la sezione Navigazione riportata di seguito.

  • Installare l'agente client utilizzando l'account con privilegi minimi con l'accesso al servizio di rete.

  • È preferibile installare l'agente client in un computer diverso dal computer di SQL Server locale.

  • Non registrare un database locale con più agenti.

    • Anche se si esegue la sincronizzazione di tabelle diverse per gruppi di sincronizzazione diversi.

    • La registrazione di un database locale con più di un agente client comporta problemi quando uno dei gruppi di sincronizzazione viene eliminato.

  • Per Configurazione sincronizzazione:
    Crea/Modifica tabella, Modifica database, Crea procedura, Seleziona/Modifica schema, Crea tipo definito dall'utente.

  • Per Sincronizzazione in corso:
    Seleziona/Inserisci/Aggiorna/Elimina sulle tabelle selezionate per la sincronizzazione e sui metadati di sincronizzazione e le tabelle di rilevamento, autorizzazione EXECUTE per le stored procedure create dal servizio, autorizzazione EXECUTE per i tipi di tabella definiti dall'utente.

  • Per il deprovisioning:
    Modifica sulle tabella parte della sincronizzazione, Seleziona/Elimina su tabelle di metadati di sincronizzazione, Controllo delle tabelle di rilevamento della sincronizzazione, delle stored procedure e dei tipi definiti dall'utente (UDT)

Come possono essere utilizzate queste informazioni quando è disponibile una sola credenziale per un database nel gruppo di sincronizzazione?

  • Modificare le credenziali per le diverse fasi (ad esempio cred1 per installazione e cred2 per attività in corso).

  • Modificare l'autorizzazione delle credenziali (ad esempio modificare l'autorizzazione dopo che la sincronizzazione è stata completata)

Scenario da enterprise a cloud:

mantenere il database hub vicino alla maggior concentrazione del traffico del database del gruppo di sincronizzazione per ridurre al minimo la latenza.

Scenario da cloud a cloud:

quando tutti i database in un gruppo di sincronizzazione sono in un data center, l'hub deve essere collocato nello stesso data center. Questo consente di ridurre la latenza e il costo del trasferimento dei dati tra data center.

Quando i database in un gruppo di sincronizzazione sono in più data center, l'hub deve essere collocato nello stesso data center in cui si trova la maggior parte dei database e gran parte del traffico del database.

Scenari misti:

applicare i principi precedenti a configurazioni di gruppi di sincronizzazione più complesse.

  • Dimensioni dell'Istanza del database SQL

    Quando si crea una nuova Istanza del database SQL (https://manage.windowsazure.com), se si seleziona Creazione personalizzata, impostare le dimensioni massime in modo che siano sempre più grandi del database da distribuire. Se non si impostano dimensioni massime, maggiori rispetto al database distribuito, la sincronizzazione non viene completata correttamente. Sebbene non sia disponibile un aumento automatico delle dimensioni, quelle di un database possono però essere aumentate dopo la creazione mediante l'istruzione ALTER DATABASE. Naturalmente è necessario rimanere entro i limiti di dimensioni dell'Istanza del database SQL.


    ImportantImportante
    Con la Sincronizzazione dati SQL (anteprima) i metadati aggiuntivi vengono archiviati con il database. Nel calcolo dello spazio necessario, assicurarsi di tenere conto di questo punto.
    La quantità di overhead aggiunto è regolata dalla larghezza delle tabelle (tabelle strette richiedono maggiore overhead) e dalla quantità di traffico.

  • Limiti supportati per le dimensioni del database

     

    Dimensione Limite

    Nomi di database, tabelle, schemi e colonne

    50 caratteri per nome

    Tabelle in un gruppo di sincronizzazione

    100

    Colonne in una tabella in un gruppo di sincronizzazione

    1000

  • Selezione di tabelle

    Non è necessario che tutte le tabelle in un database siano in un gruppo di sincronizzazione. La selezione delle tabelle da includere in un gruppo di sincronizzazione e di quelle da escludere (o includere in un altro gruppo di sincronizzazione) può influire su efficienza e costi. Includere in un gruppo di sincronizzazione solo le tabelle necessarie per le esigenze aziendali e le tabelle da cui queste sono dipendenti.

  • Chiavi primarie

    In ogni tabella di un gruppo di sincronizzazione deve essere presente una chiave primaria. Con il servizio Sincronizzazione dati SQL (anteprima) non è possibile sincronizzare tabelle prive di chiave primaria.

Prima di passare alla produzione, provare le prestazioni di sincronizzazione iniziali e in corso dello scenario.

Sincronizzazione dati SQL (anteprima) Anteprima offre il provisioning automatico del database di base.

In questa sezione vengono discussi i limiti del provisioning di Sincronizzazione dati SQL (anteprima).

Di seguito vengono descritti i limiti del provisioning automatico di Sincronizzazione dati SQL (anteprima).

  • Solo le colonne selezionate vengono create nella tabella di destinazione.
    Di conseguenza, se alcune colonne non appartengono al gruppo di sincronizzazione, di tali colonne non viene effettuato il provisioning nelle tabelle di destinazione.

  • Gli indici vengono creati solo per le colonne selezionate.
    Se nell'indice di tabella di origine sono presenti colonne che non appartengono al gruppo di sincronizzazione, di tali indici non viene effettuato il provisioning nelle tabelle di destinazione.

  • Il provisioning di indici su colonne di tipo XML non viene effettuato.

  • Il provisioning di vincoli CHECK non viene effettuato.

  • Il provisioning di trigger esistenti sulle tabelle di origine non viene effettuato.

  • Viste e stored procedure non vengono create nel database di destinazione.

  • Utilizzare la funzionalità di provisioning automatico solo quando si prova il servizio.

  • Per la produzione, è necessario eseguire il provisioning dello schema del database.

In questa sezione vengono illustrate la sincronizzazione iniziale di un gruppo di sincronizzazione e le operazioni che consentono di evitare una sincronizzazione iniziale più lenta e più dispendiosa del necessario.

Quando si crea un gruppo di sincronizzazione, iniziare con dati di un solo database. Se si dispone di dati di più database, ciascuna riga viene considerata dalla Sincronizzazione dati SQL (anteprima) come conflitto e pertanto necessita di una risoluzione. In questo modo la sincronizzazione iniziale diventa molto lenta, impiegando diversi giorno o mesi, a seconda delle dimensioni del database.

Inoltre, se i database si trovano in data center diversi, il costo della sincronizzazione iniziale sarà superiore rispetto al necessario poiché ogni riga deve essere spostata tra i diversi data center.

Laddove possibile, iniziare con i dati di un unico database del gruppo di sincronizzazione.

  • Costi

    Sebbene al momento il servizio di Sincronizzazione dati SQL (anteprima) sia disponibile gratuitamente, vengono applicati gli addebiti del Database SQL ai dati spostati in entrata e in uscita dai data center del Database SQL. Pertanto, è necessario sincronizzare le tabelle che sono stabili o in cui sono contenuti dati che non devono essere aggiornati frequentemente con una pianificazione giornaliera o settimanale. Per le tabelle che contengono dati o dati sensibili per cui il tempo è un fattore importante o più volatili è più opportuna una sincronizzazione con una pianificazione più frequente. Analizzare le esigenze aziendali e creare il gruppo di sincronizzazione e le pianificazioni nel modo appropriato.

    Il passaggio dei dati all'interno e all'esterno di un data center può comportare anche costi di entrata e uscita.

  • Frequenza

    Se si tenta di sincronizzare un gruppo di sincronizzazione per cui non è stata completata questa operazione, il tentativo non verrà neanche avviato. Non vi è alcuna indicazione visibile relativa al mancato completamento della sincronizzazione. Pertanto, è consigliabile pianificare le sincronizzazioni in modo che vi sia tempo sufficiente per il completamento di ogni sincronizzazione prima di tentarne un'altra.

    Ad esempio:

    Se si pianifica la sincronizzazione del gruppo di sincronizzazione ogni cinque minuti, T0, T0+5 T0+10 e così via, ma il completamento della sincronizzazione del gruppo richiede sei minuti, le sincronizzazioni verranno effettuate in corrispondenza di T0, T0+10, T0+20 e così via. T0+5 e T0+15 avranno esito negativo perché le sincronizzazioni T0 e T0+10 non sono state completate in tempo.

Un ciclo di sincronizzazione si verifica quando in un gruppo di sincronizzazione sono presenti riferimenti circolari tali che ogni modifica in un database viene replicata nei database del gruppo in modo circolare e all'infinito. I cicli di sincronizzazione devono essere evitati perché possono avere effetti negativi sulle prestazioni e provocare un significativo aumento dei costi.

Per informazioni dettagliate sui cicli di sincronizzazione con esempi di progettazione che li provocano e che consentono di evitarli, vedere l'argomento Comprendere ed evitare i cicli di sincronizzazione.

Un gruppo di sincronizzazione o un database al suo interno può diventare non aggiornato. Quando lo stato di un gruppo di sincronizzazione è non aggiornato, il funzionamento del gruppo si arresta, mentre se lo stato di un database è non aggiornato, i dati possono andare perduti. È consigliabile evitare queste situazioni anziché eseguirne il recupero.

Lo stato di un database viene impostato su non aggiornato se il database si trova in modalità offline per almeno 45 giorni. Per evitare lo stato non aggiornato di un database, verificare che nessun database si trovi in modalità offline per 45 giorni o più. Per informazioni sulle modalità di recupero di un database con stato non aggiornato, vedere l'argomento Il database si trova nello stato non aggiornato.

Lo stato di un gruppo di sincronizzazione viene impostato su non aggiornato quando le modifiche apportate all'interno del gruppo non vengono propagate al resto del gruppo per 45 giorni o più. Per evitare lo stato non aggiornato di un gruppo di sincronizzazione, esaminare regolarmente il log della cronologia e verificare che tutti i conflitti vengano risolti e che tutte le modifiche vengano propagate in modo corretto in tutti i database del gruppo.

Di seguito vengono indicati i motivi per cui una modifica apportata a un gruppo di sincronizzazione potrebbe non essere applicata:

Per evitare lo stato non aggiornato dei gruppi di sincronizzazione, effettuare le operazioni seguenti:

Per informazioni sulle modalità di recupero di un gruppo di sincronizzazione con stato non aggiornato, vedere l'argomento Un gruppo di sincronizzazione si trova nello stato non aggiornato.

In alcune circostanze l'annullamento della registrazione di un database con un agente client può provocare l'esecuzione non corretta delle sincronizzazioni.

Scenario:

  1. Il gruppo di sincronizzazione A è stato creato con un'Istanza del database SQL e un database locale di SQL Server associato all'agente locale 1.

  2. Lo stesso database locale è stato registrato con l'agente locale 2 non associato ad alcun gruppo di sincronizzazione.

  3. L'annullamento della registrazione del database locale dall'agente locale 2 determina la rimozione delle tabelle di rilevamento e di metadati del gruppo A per il database locale.

  4. In questa situazione le operazioni del gruppo di sincronizzazione A non verranno eseguite e verrà restituito un errore analogo al seguente:
    "Impossibile completare l'operazione corrente perché il provisioning del database non è stato eseguito per la sincronizzazione o l'utente non dispone delle autorizzazioni sulle tabelle per configurare la sincronizzazione".

Soluzione

  • Non registrare mai un database con uno o più agenti per evitare che si verifichi una situazione di questo tipo.

  • Per recuperare questa situazione

    1. Rimuovere il database da ogni gruppo di sincronizzazione cui appartiene.

    2. Aggiungere nuovamente il database a ogni gruppo di sincronizzazione da cui è stato rimosso.

    3. Distribuire ogni gruppo di sincronizzazione interessato (che ha effettuato il provisioning del database).

La mancata propagazione delle modifiche è imputabile a diversi motivi. Alcune cause sono:

  • Incompatibilità dello schema/del tipo di dati.

  • Tentativo di inserimento di valori Null in colonne che non ammettono i valori Null.

  • Violazione dei vincoli di chiave esterna.

  • Il gruppo di sincronizzazione mostra lo stato di avviso.

  • I dettagli sono disponibili nel visualizzatore log dell'interfaccia utente del portale.

  • Se il problema non viene risolto per 45 giorni, il database non potrà essere considerato aggiornato.


    noteNota
    Tali modifiche non verranno mai propagate. Il solo metodo per risolvere il problema è ricreate il gruppo di sincronizzazione.

Monitorare regolarmente l'integrità del gruppo di sincronizzazione e del database attraverso l'interfaccia utente del portale e del log.

Non tentare di rimuovere un database da un gruppo di sincronizzazione per poi modificare il gruppo di sincronizzazione senza prima distribuire una delle modifiche.

Innanzitutto, rimuovere un database da un gruppo di sincronizzazione. Quindi, distribuire la modifica e attendere il completamento del deprovisioning. Al termine dell'operazione, è possibile modificare il gruppo di sincronizzazione e distribuire le modifiche.

Se si tenta di rimuovere un database e di modificare un gruppo di sincronizzazione senza prima distribuire una delle modifiche, una delle due operazioni non verrà eseguita e lo stato dell'interfaccia utente potrebbe essere incoerente. Tuttavia, qualora questo si verificasse, è possibile aggiornare l'interfaccia utente e ripristinarne lo stato corretto.

Per ulteriori procedure consigliate correlate, vedere Procedure consigliate per gli aggiornamenti del gruppo di sincronizzazione.

La Sincronizzazione dati SQL (anteprima) è una funzionalità del Database SQL. Dal portale di gestione di Windows Azure è possibile eseguire tutte le attività necessarie per creare, distribuire e modificare un gruppo di sincronizzazione.

 

Creazione di un gruppo di sincronizzazione

Sono previsti sei passaggi per creare un gruppo di sincronizzazione dal portale di gestione di Windows Azure. Nelle pagine visualizzate tramite i seguenti collegamenti sono fornite le informazioni dettagliate su ogni passaggio.

  1. Accedere al portale di gestione di database SQL di Windows Azure
    Sincronizzazione dati SQL (anteprima) è disponibile come scheda di Database SQL solo dopo avere creato un gruppo di sincronizzazione.

  2. Installare un agente client di sincronizzazione dati SQL (anteprima)

  3. Registrare un database SQL Server con un agente client

  4. Creare il gruppo di sincronizzazione (SDS)

  5. Definire i dati di sincronizzazione (SDS)

  6. Configurare il gruppo di sincronizzazione (SDS)

Modifica di un gruppo di sincronizzazione

È possibile modificare lo schema di un gruppo di sincronizzazione tramite l'aggiunta o la rimozione di tabelle o colonne del gruppo di sincronizzazione o la modifica della larghezza o del tipo di dati di una colonna. Nelle pagine visualizzate tramite i seguenti collegamenti sono fornite le informazioni dettagliate.

Vedere anche

Mostra:
© 2014 Microsoft