Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτό το άρθρο καλύπτει την αυτόματη επανασπορά για τον κατοπτρισμό μιας βάσης δεδομένων στη διαχειριζόμενη παρουσία SQL Azure.
Υπό ορισμένες συνθήκες, εάν υπάρχει καθυστέρηση στον κατοπτρισμό στο Fabric, μπορεί να προκύψει αυξημένη χρήση του αρχείου καταγραφής συναλλαγών. Το αρχείο καταγραφής συναλλαγών δεν μπορεί να περικοπεί παρά μόνο μετά την αναπαραγωγή των δεσμευμένων αλλαγών στη βάση δεδομένων κατοπτρισμού. Μόλις το μέγεθος του αρχείου καταγραφής συναλλαγών φτάσει το μέγιστο καθορισμένο όριο, οι εγγραφές στη βάση δεδομένων αποτυγχάνουν.
Για την προστασία των λειτουργικών βάσεων δεδομένων από αποτυχίες εγγραφής για κρίσιμες συναλλαγές OLTP, ο κατοπτρισμός στη βάση δεδομένων SQL Azure και στη διαχειριζόμενη παρουσία Azure SQL χρησιμοποιεί τη δυνατότητα αυτόματης επανασποράς που επιτρέπει την περικοπή του αρχείου καταγραφής συναλλαγών και προετοιμάζει εκ νέου τον κατοπτρισμό της βάσης δεδομένων στο Fabric.
Ένα reseed διακόπτει τη ροή των συναλλαγών στο Microsoft Fabric από τη βάση δεδομένων ειδώλου και προετοιμάζει εκ νέου το είδωλο στην παρούσα κατάσταση. Μια επανασπορά περιλαμβάνει τη δημιουργία ενός νέου αρχικού στιγμιότυπου των πινάκων που έχουν ρυθμιστεί για κατοπτρισμό και την αναπαραγωγή του στο Microsoft Fabric. Μετά το στιγμιότυπο, αναπαράγονται επαυξητικές αλλαγές.
Στη βάση δεδομένων SQL Azure και στη διαχειριζόμενη παρουσία SQL Azure, η επανασπορά μπορεί να πραγματοποιηθεί σε επίπεδο βάσης δεδομένων ή σε επίπεδο πίνακα.
Επανασπορά σε επίπεδο βάσης δεδομένων: Ο συνεχής κατοπτρισμός δεδομένων διακόπτεται για όλους τους πίνακες της βάσης δεδομένων που έχουν ενεργοποιηθεί για κατοπτρισμό, το αρχείο καταγραφής συναλλαγών περικόπτεται και ο κατοπτρισμός αρχικοποιείται εκ νέου για τη βάση δεδομένων με την αναδημοσίευση του αρχικού στιγμιότυπου όλων των πινάκων που έχουν ενεργοποιηθεί για κατοπτρισμό. Στη συνέχεια, οι σταδιακές αλλαγές συνεχίζουν να αναπαράγονται συνεχώς.
Επανασπορά σε επίπεδο τραπεζιού: Ο συνεχής κατοπτρισμός δεδομένων διακόπτεται μόνο για πίνακες που απαιτούν επανασπορά. Ο κατοπτρισμός αρχικοποιείται εκ νέου για αυτούς τους πίνακες που επηρεάζονται, αναδημοσιεύοντας το αρχικό στιγμιότυπο. Στη συνέχεια, οι σταδιακές αλλαγές συνεχίζουν να αναπαράγονται συνεχώς.
Αιτίες αυτόματης επανασποράς σε επίπεδο βάσης δεδομένων
Μια επανασπορά σε επίπεδο βάσης δεδομένων προστατεύει τη διαθεσιμότητα εγγραφής της βάσης δεδομένων διασφαλίζοντας ότι το αρχείο καταγραφής συναλλαγών δεν αυξάνεται στο μέγιστο μέγεθος. Το μέγιστο μέγεθος αρχείου καταγραφής συναλλαγών βασίζεται στον στόχο επιπέδου υπηρεσίας βάσης δεδομένων της βάσης δεδομένων SQL Azure ή της διαχειριζόμενης παρουσίας SQL Azure. Η χρήση του αρχείου καταγραφής συναλλαγών για μια βάση δεδομένων που έχει ενεργοποιηθεί για κατοπτρισμό Fabric μπορεί να συνεχίσει να αυξάνεται και να καθυστερεί την περικοπή του αρχείου καταγραφής. Μόλις το μέγεθος του αρχείου καταγραφής συναλλαγών φτάσει στο μέγιστο καθορισμένο όριο, οι εγγραφές στη βάση δεδομένων αποτυγχάνουν.
Η αποτροπή περικοπής αρχείων καταγραφής λόγω κατοπτρισμού μπορεί να συμβεί για πολλούς λόγους:
- Ο λανθάνων χρόνος στον κατοπτρισμό δεδομένων από την προέλευση στη βάση δεδομένων κατοπτρισμού εμποδίζει την περικοπή συναλλαγών που εκκρεμούν αναπαραγωγή από το αρχείο καταγραφής συναλλαγών.
- Οι μακροχρόνιες αναπαραγόμενες συναλλαγές που εκκρεμούν δεν μπορούν να περικοπούν, διατηρώντας τον χώρο καταγραφής συναλλαγών.
- Τα επίμονα σφάλματα εγγραφής στη ζώνη προσγείωσης στο OneLake μπορούν να αποτρέψουν την αναπαραγωγή.
Αυτό το σενάριο μπορεί να προκληθεί από ανεπαρκή δικαιώματα. Ο κατοπτρισμός στο Fabric χρησιμοποιεί διαχειριζόμενη ταυτότητα με εκχώρηση συστήματος (SAMI) ή διαχειριζόμενη ταυτότητα που έχει εκχωρηθεί από τον χρήστη (UAMI) για εγγραφή στη ζώνη προσγείωσης στο One Lake. Εάν αυτό δεν ρυθμιστεί σωστά, η αναπαραγωγή των συναλλαγών μπορεί να αποτύχει επανειλημμένα.
Σημείωμα
Η υποστήριξη για τη διαχειριζόμενη ταυτότητα που έχει εκχωρηθεί από τον χρήστη (UAMI) βρίσκεται αυτήν τη στιγμή σε προεπισκόπηση.
Εάν οι εκχωρημένοι πόροι Fabric τεθούν σε παύση και συνεχιστούν, η κατάσταση της βάσης δεδομένων κατοπτρισμού παραμένει Σε παύση. Ως αποτέλεσμα, οι αλλαγές που γίνονται στην προέλευση δεν αναπαράγονται στο OneLake. Για να συνεχίσετε τον κατοπτρισμό, μεταβείτε στη βάση δεδομένων ειδώλου στην πύλη Fabric, επιλέξτε Συνέχιση αναπαραγωγής. Ο κατοπτρισμός συνεχίζεται από το σημείο όπου είχε διακοπεί.
Εάν οι εκχωρημένοι πόροι Fabric παραμείνουν σε παύση για μεγάλο χρονικό διάστημα, ο κατοπτρισμός ενδέχεται να μην συνεχιστεί από το σημείο διακοπής και θα επαναφέρει τα δεδομένα από την αρχή. Αυτό συμβαίνει επειδή η παύση του κατοπτρισμού για μεγάλο χρονικό διάστημα μπορεί να προκαλέσει την αύξηση της χρήσης του αρχείου καταγραφής συναλλαγών της βάσης δεδομένων προέλευσης και την καθυστέρηση της περικοπής του αρχείου καταγραφής. Όταν συνεχιστεί ο κατοπτρισμός, εάν ο χώρος του αρχείου καταγραφής συναλλαγών που χρησιμοποιείται είναι σχεδόν πλήρης, θα ξεκινήσει μια επανασπορά της βάσης δεδομένων για να αποδεσμευτεί ο δεσμευμένος χώρος καταγραφής.
Αιτίες αυτόματης επανασποράς σε επίπεδο πίνακα
Όταν πραγματοποιούνται αλλαγές σχήματος στους πίνακες προέλευσης που έχουν ενεργοποιηθεί για κατοπτρισμό, το σχήμα για αυτούς τους πίνακες κατοπτρισμού στο Fabric δεν συμφωνεί πλέον με την προέλευση. Αυτό μπορεί να συμβεί λόγω των ακόλουθων ALTER TABLE δηλώσεων T-SQL (DDL) της γλώσσας ορισμού δεδομένων στην πηγή:
- Προσθήκη/απόθεση/αλλαγή/μετονομασία στήλης
- Περικοπή/μετονομασία πίνακα
- Προσθήκη μη ομαδοποιημένου πρωτεύοντος κλειδιού
Η επανασπορά ενεργοποιείται μόνο για τους επηρεαζόμενους πίνακες.
Κάμνω διάγνωση
Για να προσδιορίσετε εάν ο κατοπτρισμός Fabric εμποδίζει την περικοπή αρχείων καταγραφής για μια βάση δεδομένων ειδώλου, ελέγξτε τη log_reuse_wait_desc στήλη στην sys.databases προβολή καταλόγου συστήματος για να δείτε αν ο λόγος είναι REPLICATION. Για περισσότερες πληροφορίες σχετικά με τους τύπους αναμονής επαναχρησιμοποίησης του αρχείου καταγραφής, ανατρέξτε στο θέμα Παράγοντες που καθυστερούν την περικοπή του αρχείου καταγραφής συναλλαγών. Για παράδειγμα:
SELECT [name], log_reuse_wait_desc
FROM sys.databases
WHERE is_data_lake_replication_enabled = 1;
Εάν το ερώτημα εμφανίζει REPLICATION τον τύπο αναμονής επαναχρησιμοποίησης του αρχείου καταγραφής, τότε λόγω του κατοπτρισμού του Fabric το αρχείο καταγραφής συναλλαγών δεν μπορεί να αδειάσει τις δεσμευμένες συναλλαγές και θα συνεχίσει να γεμίζει. Για πρόσθετη αντιμετώπιση προβλημάτων σχετικά με τη χρήση του αρχείου καταγραφής στη βάση δεδομένων SQL Azure, ανατρέξτε στην ενότητα Αντιμετώπιση σφαλμάτων αρχείου καταγραφής συναλλαγών με τη βάση δεδομένων SQL Azure.
Χρησιμοποιήστε την ακόλουθη δέσμη ενεργειών T-SQL για να ελέγξετε το συνολικό χώρο καταγραφής και την τρέχουσα χρήση του αρχείου καταγραφής και το διαθέσιμο χώρο:
USE <Mirrored database name>
GO
--initialize variables
DECLARE @total_log_size bigint = 0;
DECLARE @used_log_size bigint = 0;
DECLARE @size int;
DECLARE @max_size int;
DECLARE @growth int;
--retrieve total log space based on number of log files and growth settings for the database
DECLARE sdf CURSOR
FOR
SELECT SIZE*1.0*8192/1024/1024 AS [size in MB],
max_size*1.0*8192/1024/1024 AS [max size in MB],
growth
FROM sys.database_files
WHERE TYPE = 1
OPEN sdf
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @total_log_size = @total_log_size +
CASE @growth
WHEN 0 THEN @size
ELSE @max_size
END
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
END
CLOSE sdf;
DEALLOCATE sdf;
--current log space usage
SELECT @used_log_size = used_log_space_in_bytes*1.0/1024/1024
FROM sys.dm_db_log_space_usage;
-- log space used in percent
SELECT @used_log_size AS [used log space in MB],
@total_log_size AS [total log space in MB],
@used_log_size/@total_log_size AS [used log space in percentage];
Κατά τη διάρκεια της επανασποράς
Κατά τη διάρκεια της επανάληψης, το στοιχείο βάσης δεδομένων ειδώλου στο Microsoft Fabric είναι διαθέσιμο, αλλά δεν θα λάβει τμηματικές αλλαγές μέχρι να ολοκληρωθεί η επανάληψη. Η reseed_state στήλη στο sys.sp_help_change_feed_settings υποδεικνύει την κατάσταση επανασποράς.
Στο Fabric Mirroring, παρακολουθείται το αρχείο καταγραφής συναλλαγών της βάσης δεδομένων SQL προέλευσης. Ένας autoreseed θα ενεργοποιηθεί μόνο όταν ισχύουν οι ακόλουθες τρεις συνθήκες:
- Το αρχείο καταγραφής συναλλαγών είναι περισσότερο από
@autoreseedthresholdτο ποσοστό πλήρες, για παράδειγμα,70. - Ο λόγος επαναχρησιμοποίησης του αρχείου καταγραφής είναι
REPLICATION. - Επειδή η
REPLICATIONαναμονή επαναχρησιμοποίησης του αρχείου καταγραφής μπορεί να αυξηθεί για άλλες δυνατότητες, όπως η αναπαραγωγή συναλλαγών ή το CDC, το autoreseed εμφανίζεται μόνο ότανsys.databases.is_data_lake_replication_enabled= 1. Αυτή η τιμή ρυθμίζεται από τον κατοπτρισμό υφάσματος.
Ελέγξτε εάν έχει ενεργοποιηθεί μια επανασπορά σε επίπεδο βάσης δεδομένων
Εάν γίνεται επανασπορά ολόκληρης της βάσης δεδομένων, αναζητήστε τις ακόλουθες συνθήκες.
Η
reseed_stateστήλη στην αποθηκευμένη διαδικασίαsys.sp_help_change_feed_settingsσυστήματος στη βάση δεδομένων προέλευσης SQL υποδεικνύει την τρέχουσα κατάσταση επανασποράς.-
0= Κανονική. -
1= Η βάση δεδομένων έχει ξεκινήσει τη διαδικασία εκ νέου προετοιμασίας σε Fabric. Μεταβατική κατάσταση. -
2= Η βάση δεδομένων προετοιμάζεται εκ νέου σε Fabric και περιμένει να γίνει επανεκκίνηση της αναπαραγωγής. Μεταβατική κατάσταση. Όταν δημιουργηθεί η αναπαραγωγή, η κατάσταση reseed μετακινείται στο0.
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα sys.sp_help_change_feed_settings.
-
Όλοι οι πίνακες που είναι ενεργοποιημένοι για κατοπτρισμό στη βάση δεδομένων θα έχουν μια τιμή
7για τηstateστήλη στοsys.sp_help_change_feed_table.Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα sys.sp_help_change_feed_table.
Ελέγξτε εάν έχει ενεργοποιηθεί μια επανασπορά σε επίπεδο πίνακα
Για κάθε πίνακα που επανατοποθετείται, αναζητήστε μια τιμή
7για τηstateστήλη στοsys.sp_help_change_feed_table.Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα sys.sp_help_change_feed_table.