Po zastosowaniu tej poprawki należy włączyć flagę śledzenia 1800 jako parametr uruchamiania na wszystkich serwerach lub replikach o rozmiarze 512-bajtowego sektora fizycznego i ponownie je uruchomić, aby ta poprawka działała poprawnie.
Symptomy
Rozpatrzmy następujący scenariusz:
-
Włączasz funkcję AlwaysOn Availability Groups lub Logshipping w usłudze Microsoft SQL Server.
-
Dyski przechowujące pliki dziennika podstawowej i pomocniczej repliki w grupie dostępności AlwaysOn (AG) mają różne rozmiary sektorów. Lub w środowiskach logshipping dyski, które przechowują pliki dziennika dla serwerów podstawowych Logshipping i serwerów pomocniczych Logshipping mają różne rozmiary sektorów. Na przyk³ad:
-
Podstawowy plik dziennika repliki znajduje się na dysku o rozmiarze sektorowym 512 bajtów. Jednak pomocniczy plik dziennika repliki znajduje się na dysku o rozmiarze sektorowym 4 kilobajtów (KB).
-
Podstawowy plik dziennika repliki znajduje się w lokalnym systemie lokalnym o rozmiarze sektorowym 512 bajtów. Jednak replika pomocnicza znajduje się na dysku magazynu platformy Windows Azure o rozmiarze sektorowym 4 kilobajtów (KB).
-
W tym scenariuszu w dzienniku błędów SQL Server jest rejestrowany następujący komunikat o błędzie. Komunikat o błędzie może trwać przez jakiś czas po ponownym uruchomieniu, jeśli przed ponownym uruchomieniem serwera istniały dzienniki, które nie zostały zastosowane do pomocniczych.
Istnieją X nieprawidłowo wyrównane log IO, które wymagały powrotu do synchronicznego we/wy. Bieżący identyfikator we/wy znajduje się w pliku ....
Ponadto synchronizacja AG lub Logshipping przebiega bardzo powoli z powodu synchronicznych we/wy. Jeśli replika pomocnicza znajduje się w magazynie platformy Windows Azure, ukończenie procesu synchronizacji trwa znacznie dłużej niż oczekiwano.
Uwaga Ten problem występuje, gdy używasz zarówno nowych dysków o rozmiarze sektorowym 4 KB, jak i starych dysków o rozmiarze sektorowym 512 bajtów. Aby uzyskać więcej informacji na temat nowych dysków, zobacz SQL Server — nowe dyski — Używanie rozmiaru sektora 4K i SQL Server —miejsca do magazynowania/VHDx i rozmiar sektorowy 4K.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w następującej aktualizacji zbiorczej SQL Server.
Aktualizacja zbiorcza 5 dla SQL Server 2014 /en-us/help/3011055
Aktualizacja zbiorcza 3 dla SQL Server 2012 z dodatkiem SP2 /en-us/help/3002049
Aktualizacja zbiorcza 13 dla SQL Server 2012 z dodatkiem SP1 /en-us/help/3002044
Po zastosowaniu poprawki i włączeniu flagi śledzenia 1800 jako parametru uruchamiania na wszystkich serwerach replik działających na dysku o rozmiarze sektorowym 512 bajtów można zauważyć niewielki wzrost rozmiaru następujących plików:
-
Plik dziennika transakcji
-
Rejestrowanie kopii zapasowych
Ponadto w dziennik SQL Server u błędów serwera podstawowego są rejestrowane następujące komunikaty:
Strona dziennika dla bazy danych "<nazwa bazy danych>" jest zapisywana w celu dopasowania do nowego rozmiaru sektora 4096 bajtów
Jest to komunikat informacyjny, który można bezpiecznie zignorować.
Każda nowa aktualizacja zbiorcza dla SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji zbiorczej. Zobacz najnowsze aktualizacje zbiorcze dla SQL Server:
Obejście
Aby obejść ten problem, przenieś plik dziennika transakcji w miejscu docelowym na dysk z ustawionymi bajtami na sektor fizyczny jako 512 bajtów.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Więcej informacji
Najlepszym rozwiązaniem jest upewnienie się, że wszystkie dyski na wszystkich replikach (przynajmniej na wszystkich dyskach zawierających pliki dziennika) mają taki sam rozmiar sektorowy. W środowiskach mieszanych, gdzie sektor wtórny ma sektor fizyczny 512 bajtów, a podstawowy ma rozmiar sektora 4 KB, TF 1800 powinien być używany jako flaga startowa na wszystkich serwerach lub replikach, które mają rozmiar sektora fizycznego o rozmiarze 512 bajtów i są ponownie uruchamiane. Dzięki temu można się upewnić, że w bieżącym formacie tworzenia dziennika jest używany rozmiar sektorów o rozmiarze 4 KB.
Aby uzyskać więcej informacji na temat współdziałania SQL Server z większymi rozmiarami sektorów, zobacz następujący wpis w blogu pomocy technicznej:
SQL Server–Miejsca do magazynowania/VHDx i rozmiar
sektora 4K.
Za pomocą narzędzia wiersza polecenia Fsutil można określić wartość Bajty na sektor fizyczny. Jeśli ten parametr nie jest widoczny w wynikach, należy zastosować poprawkę określoną w artykule z bazy wiedzy 982018.
Aby sprawdzić rodzaj posiadanego dysku, wykonaj następujące czynności:
-
Uruchom następujące polecenie w wierszu polecenia z podwyższonym poziomem uprawnień:
Fsutil fsinfo ntfsinfo x: Uwaga Symbol zastępczy x reprezentuje sprawdzany dysk.
-
Użyj wartości Bajtów na sektor i Bajty na sektor fizyczny , aby określić rodzaj posiadanego dysku. W tym celu należy użyć następującej tabeli:
Wartość "Bajty na sektor"
Wartość "Bajty na sektor fizyczny"
Typ dysku
4096
4096
Natywny 4K
512
4096
Format zaawansowany (znany również jako 512E)
512
512
Natywny 512 bajtów