KB4492899 - ΕΠΙΔΙΌΡΘΩΣΗ: Ο κατάλογος επιπέδου βάσης δεδομένων FileTable δεν είναι προσβάσιμος μετά την εκκίνηση της βάσης δεδομένων στο SQL Server 2016 και 2017

Ισχύει για
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

Συμπτώματα

Κατά την εκκίνηση του Microsoft SQL Server 2016 και 2017, εάν ένας χρήστης προσπαθήσει να συνδεθεί σε μια βάση δεδομένων πριν ξεκινήσει, η περίοδος λειτουργίας χρήστη μπορεί να προκαλέσει την αυτόματη επανεκκίνηση της βάσης δεδομένων. Όταν συμβεί αυτό, εάν η βάση δεδομένων περιέχει έναν FileTable και έχει ενεργοποιημένο το FILESTREAM non_transacted_access , τότε ο κατάλογος FileTable επιπέδου βάσης δεδομένων δεν είναι προσβάσιμος μετά την εκκίνηση της βάσης δεδομένων. Εάν προσπαθήσετε να αποκτήσετε πρόσβαση στο φάκελο μέσω Εξερεύνηση αρχείων, αυτό μπορεί να σημαίνει ότι ο φάκελος δεν είναι διαθέσιμος. Όταν εκτελείτε μια εντολή "dir" από τη γραμμή εντολών, επιστρέφει "Δεν είναι δυνατή η εύρεση του καθορισμένου αρχείου από το σύστημα".

Επιπλέον, ενδέχεται να δείτε τα ακόλουθα σφάλματα στο αρχείο καταγραφής σφαλμάτων που υποδεικνύουν ότι μια περίοδος λειτουργίας χρήστη ενεργοποίησε την αυτόματη εκκίνηση της βάσης δεδομένων:

Ημερομηνία/Ώρα Σφάλμα σύνδεσης: 18456, σοβαρότητα: 14, κατάσταση: 38.

Ημερομηνία/Ώρα Η σύνδεση απέτυχε για το User 'UserName'. Αιτία: Απέτυχε το άνοιγμα της ρητά καθορισμένης βάσης δεδομένων 'DatabaseName'. [ΠΕΛΆΤΗΣ: IPNumber]

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Επίλυση

Αυτό το πρόβλημα διορθώνεται στις ακόλουθες αθροιστικές ενημερώσεις για SQL Server:

Πληροφορίες σχετικά με τις συγκεντρωτικές ενημερώσεις για SQL Server:

Κάθε νέα αθροιστική ενημερωμένη έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Δείτε τις πιο πρόσφατες αθροιστικές ενημερώσεις για SQL Server:

Λύση

Η λύση για αυτό το πρόβλημα είναι να απενεργοποιήσετε και να ενεργοποιήσετε ξανά το non_transacted_access FILESTREAM της βάσης δεδομένων.

ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [Όνομα_βάσης δεδομένων] SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF )

ALTER DATABASE [Όνομα_βάσης δεδομένων] SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL )

ALTER DATABASE [DatabaseName] SET MULTI_USER WITH ROLLBACK IMMEDIATE

Παραπομπές

Ενημερωθείτε για την ορολογία που χρησιμοποιεί η Microsoft για να περιγράφει τις ενημερώσεις λογισμικού.