Attualmente sto aggiornando il nostro data warehouse da SQL 2012 a SQL 2016. Ho il mio vecchio e nuovo DW in esecuzione fianco a fianco in parallelo.
Il mio processo ETL (un framework sviluppato in SSIS da una terza parte) ha funzionato con successo per più di 2 anni nel 2012 ma non riesce nel 2016. Finora i database e il processo ETL sono identici.
Entrambi i server sono macchine virtuali in esecuzione su VMWare. Old Server è Win 2008 con 24Gb di RAM. SQL 2012 Std. Mem massima impostata su 16 GB. Il nuovo server è Win 2012 con 64 GB di RAM. SQL 2016 dev. Mem massima impostata su 50 GB. Il nuovo DW esegue v13.0.1601.5 RTM Developer Edition (64 bit).
Durante l'esecuzione del mio processo ETL, i passaggi di caricamento che utilizzano un'unione SQL in una dimensione o tabella dei fatti falliscono con il seguente errore.
Testo intero:
DESCRIPTION: Asserzione di SQL Server: File:, line = 951 Asserzione non riuscita = 'IS_OFF (BUF_MINLOGGED, m_buf-> bstat) || pageModifyType! = PageModifyType_Contents || GetPagePtr () -> IsTextPage () '. Questo errore potrebbe essere correlato alla temporizzazione. Se l'errore persiste dopo aver rieseguito l'istruzione, utilizzare DBCC CHECKDB per verificare l'integrità strutturale del database o riavviare il server per assicurarsi che le strutture di dati in memoria non siano danneggiate.
Come raccomandato ho eseguito DBCC e non sono stati trovati errori. Ho anche riavviato SQL. Ho quindi riavviato il processo ETL e ho riscontrato lo stesso errore.
Le mie ricerche per questo errore mostrano che era noto un errore in SQL 2008, 2012 e 2014 e corretto in hotfix e aggiornamenti cumulativi successivi. quindi sono un po 'sorpreso di vederlo riapparire nel 2016.
I collegamenti che ho trovato dicono che influiscono su SSIS quando si tenta di eseguire inserimenti se il database è nel modello di recupero con registrazione semplice o in blocco. (Sono in esecuzione nel modello di recupero semplice)
Una soluzione suggerita è quella di cambiare il modello di recupero Db in FULL. Ho provato questo e funziona, ma non è molto una soluzione per un data warehouse.
Qualcun altro ha riscontrato questo nel 2016?
Qualcuno può suggerire soluzioni alternative?
aggiornamenti:
26/7/2016: Ho applicato l' aggiornamento critico KB3164398 (v13.0.1708.0) e il problema persiste.
27/7/2016: Ho applicato l' aggiornamento cumulativo CU1 KB3164674 (v13.0.2149.0).
3/8/2016: Errore durante la notte sul nostro cubo più piccolo. CU1 non ha risolto il problema. Oggi ho segnalato il bug su MS Connect e ho anche registrato una chiamata di supporto con Microsoft.
08/12/2016: MS-Support ha risposto inizialmente, ma le risposte erano "Non abbiamo una soluzione per questo". Il ragazzo del supporto stava per discuterne con i suoi colleghi e tornare da me. 8 giorni dopo non ho più avuto sue notizie.
Anche se non ho una "soluzione", abbiamo trovato una soluzione adatta a noi. Vedi la mia risposta postata.
29/9/2016. Ho applicato CU2 la scorsa settimana. Giovedì abbiamo accidentalmente eseguito una versione precedente dell'unione che non è riuscita nuovamente con lo stesso errore. Quindi .. CU2 non l'ha riparato neanche.
23/1/2017 : Ho applicato SP1 CU1 2016 e credo che questo abbia risolto il problema. In particolare KB3205964