Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτό το άρθρο καλύπτει την αυτόματη επανασπορά για τον κατοπτρισμό μιας βάσης δεδομένων από μια παρουσία του SQL Server.
Υπάρχουν ορισμένες περιπτώσεις όπου καθυστερήσεις στον κατοπτρισμό στο Fabric μπορεί να οδηγήσει σε αυξημένη χρήση του αρχείου καταγραφής συναλλαγών. Αυτό συμβαίνει επειδή το αρχείο καταγραφής συναλλαγών δεν μπορεί να περικοπεί μέχρι να αναπαραχθούν οι δεσμευμένες αλλαγές στη βάση δεδομένων ειδώλου. Μόλις το μέγεθος του αρχείου καταγραφής συναλλαγών φτάσει το μέγιστο καθορισμένο όριο, οι εγγραφές στη βάση δεδομένων αποτυγχάνουν. Για να προστατεύσετε τις λειτουργικές βάσεις δεδομένων από αποτυχίες εγγραφής για κρίσιμες συναλλαγές OLTP, μπορείτε να ρυθμίσετε έναν μηχανισμό αυτόματης επαναφοράς που επιτρέπει την περικοπή του αρχείου καταγραφής συναλλαγών και προετοιμάζει εκ νέου τον κατοπτρισμό της βάσης δεδομένων στο Fabric.
Ένα reseed διακόπτει τη ροή των συναλλαγών στο Microsoft Fabric από τη βάση δεδομένων ειδώλου και προετοιμάζει εκ νέου το είδωλο στην παρούσα κατάσταση. Αυτό περιλαμβάνει τη δημιουργία ενός νέου αρχικού στιγμιότυπου των πινάκων που έχουν ρυθμιστεί για κατοπτρισμό και την αναπαραγωγή του στο Microsoft Fabric. Μετά το στιγμιότυπο, αναπαράγονται επαυξητικές αλλαγές.
Κατά τη διάρκεια της επανάληψης, το στοιχείο βάσης δεδομένων ειδώλου στο Microsoft Fabric είναι διαθέσιμο, αλλά δεν θα λάβει τμηματικές αλλαγές μέχρι να ολοκληρωθεί η επανάληψη. Η reseed_state στήλη στο sys.sp_help_change_feed_settings υποδεικνύει την κατάσταση επανασποράς.
Η δυνατότητα αυτόματης επανασποράς είναι απενεργοποιημένη από προεπιλογή στον SQL Server 2025, για να την ενεργοποιήσετε, ανατρέξτε στην ενότητα Ενεργοποίηση αυτόματης επανασποράς. Η δυνατότητα autoreseed είναι ενεργοποιημένη και δεν είναι δυνατή η διαχείριση ή η απενεργοποίησή της στη βάση δεδομένων SQL Azure και στη διαχειριζόμενη παρουσία SQL Azure.
Στο Fabric Mirroring, παρακολουθείται το αρχείο καταγραφής συναλλαγών της βάσης δεδομένων SQL προέλευσης. Ένας autoreseed θα ενεργοποιηθεί μόνο όταν ισχύουν οι ακόλουθες τρεις συνθήκες:
- Το αρχείο καταγραφής συναλλαγών είναι περισσότερο από
@autoreseedthresholdτο ποσοστό πλήρες, για παράδειγμα,70. Στον SQL Server, ρυθμίστε αυτήν την τιμή όταν ενεργοποιείτε τη δυνατότητα, με sys.sp_change_feed_configure_parameters. - Ο λόγος επαναχρησιμοποίησης του αρχείου καταγραφής είναι
REPLICATION. - Επειδή η
REPLICATIONαναμονή επαναχρησιμοποίησης του αρχείου καταγραφής μπορεί να αυξηθεί για άλλες δυνατότητες, όπως η αναπαραγωγή συναλλαγών ή το CDC, το autoreseed εμφανίζεται μόνο ότανsys.databases.is_data_lake_replication_enabled= 1. Αυτή η τιμή ρυθμίζεται από τον κατοπτρισμό υφάσματος.
Κάμνω διάγνωση
Για να προσδιορίσετε εάν ο κατοπτρισμός 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 το αρχείο καταγραφής συναλλαγών δεν μπορεί να αδειάσει τις δεσμευμένες συναλλαγές και θα συνεχίσει να γεμίζει.
Χρησιμοποιήστε την ακόλουθη δέσμη ενεργειών 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];
Ενεργοποίηση autoreseed
Εάν η χρήση του αρχείου καταγραφής που επιστράφηκε από την προηγούμενη δέσμη ενεργειών T-SQL είναι κοντά στο να είναι πλήρης (για παράδειγμα, μεγαλύτερη από 70%), εξετάστε το ενδεχόμενο να ενεργοποιήσετε τη βάση δεδομένων ειδώλου για αυτόματη επανασπορά χρησιμοποιώντας τη sys.sp_change_feed_configure_parameters διαδικασία αποθήκευσης του συστήματος. Για παράδειγμα, για να ενεργοποιήσετε τη συμπεριφορά autoreseed:
USE <Mirrored database name>
GO
EXECUTE sys.sp_change_feed_configure_parameters
@autoreseed = 1
, @autoreseedthreshold = 70;
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα sys.sp_change_feed_configure_parameters.
Στη βάση δεδομένων προέλευσης, το reseed θα πρέπει να απελευθερώσει το χώρο καταγραφής συναλλαγών που διατηρείται από κατοπτρισμό. Εκδώστε ένα εγχειρίδιο CHECKPOINT στη βάση δεδομένων SQL Server προέλευσης για να επιβάλετε την αποδέσμευση χώρου καταγραφής, εάν η αιτία αναμονής εξακολουθεί REPLICATION να οφείλεται σε κατοπτρισμό. Για περισσότερες πληροφορίες, ανατρέξτε στο CHECKPOINT (Transact-SQL).
Χειροκίνητη επανασπορά
Ως βέλτιστη πρακτική, μπορείτε να δοκιμάσετε τη μη αυτόματη επανασπορά για μια συγκεκριμένη βάση δεδομένων χρησιμοποιώντας την ακόλουθη αποθηκευμένη διαδικασία για να κατανοήσετε τον αντίκτυπο πριν ενεργοποιήσετε τη λειτουργία αυτόματης επανασποράς.
USE <Mirrored database name>
GO
EXECUTE sp_change_feed_reseed_db_init @is_init_needed = 1;
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα sys.sp_change_feed_reseed_db_init.
Ελέγξτε εάν έχει ενεργοποιηθεί μια επανασπορά
Η
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.