Sincronizzare database SQL Server in differenti postazioni remote

Scenario

Immaginiamo un’applicazione utilizzata dai rappresentanti o dai distaccamenti (usata ad esempio dai corrieri, dai medici e via discorrendo) progettata per collezionare dati direttamente sui posti e per inviarli ad una ipotetica sede centrale. Essa non solo invierà dati, ma riceverà le informazioni il più aggiornate possibile direttamente dalla sede centrale.

Ad esempio, quando un rappresentante vende un prodotto, inserisce tramite software l’ordine di acquisto, tipicamente usando dispositivi mobili. L’entry poi viene inviata al gestionale centralizzato, in modo da consolidare l’ordine. Ma per avere la giacenza di magazzino, le informazioni del dispositivo dovranno essere aggiornate il più possibile per non dare falsi riscontri durante la fase di acquisto.

Lo scenario di cui sopra evidenzia la necessità di una sincronizzazione costante fra i dispositivi remoti e le “sedi centrali”.

October 1, 2014

Come recuperare dati in caso di operazioni di DELETE e UPDATE accidentali

di Uno dei peggiori incubi di un DBA è il perdere dati a causa di un errore da egli commesso. A volte capita eseguire erroneamente comandi di UPDATE e DELETE dimenticandosi della essenziale clausola WHERE. In quel caso, potenzialmente, vengono toccati milioni di record e, di conseguenza, compromessi i dati ad essi relativi.

October 1, 2014

Recuperare i dati di una tabella eliminata senza avere un backup

Nel caso in cui sia stato accidentalmente eseguito uno statement di DROP su di una tabella, se abbiamo un full database backup effettuato dopo la DROP senza che nessun cambiamento si sia verificato, possiamo semplicemente ripristinare i dati sovrascrivendo il database originario con il backup. Nel caso in cui questo non fosse possibile, sia perché gli oggetti sul database hanno subito cambiamenti, sia perché non abbiamo un backup valido, c’è ancora una possibilità di riavere i dati persi.

October 1, 2014

Come rinominare una colonna senza intaccare le logiche dei nostri database

L’operazione di rinomina di una colonna appartenente ad una tabella o ad una vista non è qualcosa di cui uno sviluppatore su SQL Server necessità tutti i giorni. Tuttavia, quando serve, com’è possibile fare in modo che l’operazione sia indolore e priva di difficoltà?

Rinominare una colonna può sembrare molto semplice. Ad esempio, per cambiare il nome della colonna TerritoryID della tabella Sales.SalesTerritory in TerrID, è sufficiente eseguire il seguente statement:

October 1, 2014

Come trovare rapidamente oggetti e dati su un database SQL Server

Una delle funzionalità più usate dagli sviluppatori e dai DBA è quella di ricercare dati ed oggetti all’interno di database. Non esiste nativamente una combinazione di tasti che ci consenta una rapida ricerca, come potrebbe essere il Ctrl+F, né su SQL Server Management Studio, né su Visual Studio. Tuttavia esistono varie opzioni:

September 26, 2014

Aprire file LDF e visualizzarne il contenuto

Ogni database SQL Server è mappato ad un insieme di file. Questi file portano con sé dati e informazioni sulle transazioni effettuate. I file sono utilizzati solo da un database e i dati non sono mai mixati con le informazioni di transazione. Mentre i dati sono salvati su file con estensione MDF (per il primario) ed NDF (per i secondari), le transazioni risiedono nel file di log, con estensione LDF. Concettualmente il file di log è una stringa di record di log. Fisicamente i record di log sono salvati in un file LDF (o più) che implementa, appunto, il log delle transazioni.

September 26, 2014

Leggere il log delle transazioni di un database di SQL Server

Il log delle transazioni su SQL Server contiene le informazioni relative ai cambiamenti avvenuti sui nostri database. Esso possiede le informazioni tali da recuperare un database in un preciso istante, per rilanciare o annullare un cambiamento. Come visualizzare il suo contenuto, come cercare una singola transazione, come capire cosa è successo per annullare i cambiamenti?

September 26, 2014