Poprawy
Załóżmy, że korzystasz z programu SQL Server 2017 w systemie Linux. W niektórych scenariuszach program SQL Server może powodować utratę danych w systemach korzystających z nietrwałych pamięci podręcznych. Strata jest spowodowana nieprzewidywanymi okolicznościami, takimi jak awaria zasilania, zanim buforowane dane zostaną zapisane na stabilnym nośniku. Aby zapobiec takim sytuacjom, w aktualizacji skumulowanej 6 (CU6) programu SQL Server 2017 w systemie Linux jest wprowadzany wymuszony mechanizm opróżniania . Jeśli podsystem magazynowania nie gwarantuje trwałego zapisu w ramach utraty zasilania, zalecamy zastosowanie CU6 dla programu SQL Server 2017 w systemie Linux. Ta aktualizacja umożliwia wykonywanie następujących czynności:
-
Wymuszone opróżnianie zachowanie podczas działania zapisu bazy danych, takie jak punkt kontrolny i zapisy w dzienniku transakcji.
-
Ustawienie konfiguracji domyślnie WriteThrough = 1, alternatewritethrough = 1. Te ustawienia domyślne umożliwiają programowi SQL Server Upewnianie się, że zapisy są durably opróżniane w celu zablokowania urządzeń. Alternatywny WriteThrough jest opcją umożliwiającą optymalizację żądań opróżniania trwałości na system plików. Aby uzyskać więcej informacji na temat dwóch ustawień, zapoznaj się z poniższą tabelą:
Nazwa |
Domyślne |
Opis |
writethrough |
1 |
Prawidłowe wartości to 0 i 1. 1 = tłumaczy FILE_FLAG_WRITE_THROUGH żądania na O_DSYNC otwierane. 0 = uniemożliwia przetłumaczenie wniosków o FILE_FLAG_WRITE_THROUGH O_DSYNC otwarcia. |
alternatewritethough |
1 |
Prawidłowe wartości to 0 i 1. 1 = włączenie zoptymalizowanego opróżniania przez rozszerzenie hosta dla żądań FILE_FLAG_WRITE_THROUGH. Pisanie (-a) w celu zoptymalizowania połączeń z fdatasync dla urządzenia blokującego. 0 = wyłącza alternatywną optymalizację opróżniania. Plik zostanie otwarty przy użyciu O_DSYNC, a podstawowy system plików wykonuje wymagane żądanie zapisu i opróżnienia. Uwaga ustawienie alternatewritethrough obowiązuje tylko wtedy, gdy WriteThrough = 1. |
Więcej informacji
Aby uzyskać więcej informacji, zobacz najważniejsze wskazówki dotyczące wydajności i wskazówki dotyczące konfiguracji programu SQL Server 2017 w systemie Linux do obsługi zadań zapisu w wysokiej rozdzielczości i zaleceń dotyczących umieszczania plików bazy danych.
Instalacje programu SQL Serverdziałające w systemach pamięci masowej, które gwarantują zapisywanie,są O_DIRECT bezpiecznemoże włączyć flagę śledzenia (TF) 3979, aby wyłączyć wymuszone działanie opróżniania i ustawić Opcjealternatewritethrough i WriteThrough w kluczu MSSQL. conf na zero. To zwróci wartość SQL Server 2017 dozachowania przed CU6.
Warto System pamięci masowej może upewnić się, że zapisy buforowane lub przemieszczane są uważane za bezpieczne i trwałe, gwarantując, że zapisy wystawione na to urządzenie są przechowywane na nośniku, który pozostanie w trakcie awarii systemu, zresetowania interfejsu i awarii zasilania, a sam nośnik jest nadmiarowy.
Poniżej przedstawiono więcej szczegółów dotyczących zachowania programu SQL Server dla plików we/wy, których zmiany są następujące:
-
Pliki bazy danych (mdf) i plików dziennika transakcji (ldf) nie korzystają domyślnie z funkcji WriteThrough i alternatewritethrough, ponieważ używają wymuszonego opróżniania . TF 3979 wyłącza używanie wymuszonego działania opróżniania dla plików dziennika bazy danych i dziennika transakcji i będzie korzystać z WriteThrough i alternatewritethrough.
-
Inne pliki, które są otwierane przy użyciu FILE_FLAG_WRITE_THROUGH w programie SQL Server, takich jak migawki bazy danych, migawki wewnętrzne na potrzeby sprawdzania spójności bazy danych (CHECKDB), pliki śledzenia profilera i rozszerzone pliki śledzenia zdarzeń, będą korzystać z optymalizacji WriteThrough i alternatewritethrough.
Rozwiązanie
Ta aktualizacja jest uwzględniona w następującej zbiorczej aktualizacji dla programu SQL Server:
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2017
Informacje
Informacje o terminologiiużywanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.