Sebbene le istruzioni SELECT non siano distruttive per natura, né tantomeno possano modificare dati o schema, ci sono diversi casi che possono richiedere che vengano messe sotto osservazione (“auditing”). Le istruzioni SQL eseguite, possono indicare vari problemi potenziali o attuali e questa è la ragione per cui è importante sapere chi ha visto cosa e quando
July 25, 2017Come recuperare i dati di SQL Server da un’operazione accidentale di tipo DELETE, TRUNCATE e DROP
Hai eseguito inavvertitamente (o ti sei trovato in altre situazioni che hanno comportato una perdita di dati) un’istruzione DELETE, TRUNCATE o DROP su un database ed hai perduto delle righe valide.
July 25, 2017Come recuperare una singola tabella da un backup di un database SQL Server
Se si chiede ai DBA quale caratteristica gli piacerebbe principalmente vedere aggiunta alle funzionalità di ripristino di SQL Server, sicuramente essi risponderebbero: “La possibilità di recuperare una tabella singola dal backup di un database”.
Naturalmente, è possibile recuperare i dati di una tabella specifica dal backup di un database, ma non si può fare senza ripristinare l’intero backup.
Perché i DBA vogliono questo? Bene, le ragioni sono molto semplici:
July 25, 2017Quando come e perché ricostruire e riorganizzare gli indici di SQL Server
Lo scopo di un indice di SQL Server è abbastanza simile a quello del suo lontano parente – l’indice di un libro -; ti consente di arrivare rapidamente alle informazioni ma, invece di scorrere un libro, esso indicizza un database di SQL Server.
July 25, 2017Tecniche per import ed export massivi in SQL Server
Talvolta è necessario esportare o importare una grande quantità di dati dentro o fuori un database. Queste operazioni sono chiamate bulk (cioè di massa) import ed export.
July 25, 2017Come pianificare un backup di SQL Server
Avere un buon piano di backup e restore è una parte importante di una strategia di disaster recovery. Questo articolo descrive 3 differenti approcci/soluzioni per creare un backup pianificato in SQL Server.
Come parte di una strategia di backup diversi tipi possono essere usati insieme.
July 25, 2017Come migrare un database di SQL Server ad una versione più recente
I DBA sono ben consapevoli del fatto che retrocedere un database di SQL Server non può essere fatto alla cieca. Anche quando il livello di compatibilità del database che si vuole migrare ad una versione precedente di SQL Server corrisponde con quella versione, non ci si può semplicemente limitare a fare il restore del backup. Quello che però probabilmente non ci si aspetta è che anche il passaggio ad una versione superiore possa essere un problema.
July 25, 2017Come generare script di creazione utenti e ruoli per un database SQL Server
Introduzione
È stata ricevuta dal team di sviluppo una richiesta per la copia di uno dei database di produzione su sviluppo, allo scopo di simulare dei test in tempo reale. Una volta che il backup del database di produzione è stato ripristinato sull’istanza di sviluppo rimpiazzando la vecchia copia, i precedenti user del db di sviluppo sono sostituiti da quelli nuovi di produzione. Però noi abbiamo ancora bisogno dei vecchi login per la connessione al database di sviluppo.
July 25, 2017Tecniche di auditing per database SQL Server
Mettere sotto osservazione (auditing) un database SQL Server non serve soltanto per essere conformi ai requisiti previsti dalle regole di conformità. È una pratica diventata necessaria per l’analisi di azioni sul database, risoluzione di problemi, indagine su attività sospette o fraudolente. Può anche essere utile per prevenire azioni inappropriate da parte degli utenti, come se ci fosse un sistema di TV a circuito chiuso sui propri database.
Ci sono differenti tecniche di auditing per SQL Server:
July 25, 2017Usare le regular expressions (RegEx) in SQL Server per generare dati di test casuali
Una regular expression (abbreviato regex o regexp talvolta chiamata rational expression) è una sequenza di caratteri che forma uno schema di ricerca, principalmente usato per trovare corrispondenze e nelle funzioni di "trova e sostituisci". Si può anche usare come generatore di dati, seguendo il concetto delle regular expressions inverse e produrre dati di test casuali da usare in database di test.
July 25, 2017Sincronizzare 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, 2014Come 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, 2014Recuperare 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, 2014Come recuperare dati SQL Server in seguito ad una UPDATE accidentale senza avere un backup disponibile
Immaginiamo di avere eseguito uno statement di UPDATE su di una tabella omettendo la necessaria clausola di WHERE. L’operazione ha erroneamente sovrascritto e aggiornato potenzialmente tantissime righe. Come facciamo a ritornare alla situazione precedente l’aggiornamento non voluto?
October 1, 2014Come 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, 2014Recuperare dati cancellati da un log delle transazioni su SQL Server
In Recuperare dati da un backup o da un database online su SQL Server, abbiamo mostrato due scenari di recupero, uno da un backup completo di un database ed l’altro direttamente dai file del database online (i file MDF). Oltre a queste vi è una ulteriore possibilità, accedere al log delle transazioni.
October 1, 2014Come 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, 2014Aprire 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, 2014Leggere 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