sprawdzanie poprawności String-Pool
Instalator Windows przechowuje wszystkie ciągi bazy danych w jednej puli ciągów udostępnionych, aby zmniejszyć rozmiar bazy danych i zwiększyć wydajność. Jedynym sposobem weryfikacji puli ciągów jest użycie narzędzia MsiInfo znalezionego w zestawie SDK Instalatora Windows.
Weryfikacja puli ciągów składa się z dwóch głównych kontroli:
Testy ciągów DBCS
Testy ciągu DBCS skanują każdy ciąg w bazie danych pod kątem dwóch kryteriów: w przypadku pakietów z oznaczoną neutralną stroną kodową, jeśli jakikolwiek znak jest znakiem rozszerzonym (większym niż 127), ciąg jest oflagowany, a komunikat jest wyświetlany z informacją, że strona kodowa bazy danych jest nieprawidłowa, ponieważ te znaki wymagają spójnej renderowania określonej strony kodowej we wszystkich systemach.
Jeśli baza danych ma stronę kodową, każdy ciąg jest skanowany pod kątem nieprawidłowego wskaźnika DBCS. Jeśli nie neutralny ciąg został nieprawidłowo oznaczony, znaki nie będą poprawnie renderowane. (Jest to najczęściej spowodowane wymuszeniem na stronie kodu określonej wartości przy użyciu tabeli _ForceCodepage z ciągami nie neutralnymi już w bazie danych). Należy pamiętać, że ta kontrola wymaga zainstalowania strony kodowej bazy danych w systemie.
Jeśli występuje problem ze stroną kodową, użytkownik może rozwiązać ten błąd przy użyciu tabeli _ForceCodepage, aby wymusić na odpowiedniej wartości stronę kodową bazy danych. Aby uzyskać więcej informacji, zobacz obsługa strony kodowej.
Weryfikacja liczby odwołań
Aby sprawdzić liczbę odwołań wszystkich ciągów, każda tabela jest skanowana pod kątem wartości ciągów, liczba poszczególnych odrębnych ciągów jest przechowywana, a wynik jest porównywany z przechowywaną liczbą odwołań w puli ciągów bazy danych.
Jeśli występuje problem z liczbą odwołań do ciągu, użytkownik powinien natychmiast wyeksportować każdą tabelę bazy danych przy użyciu MsiDatabaseExport, utworzyć nową bazę danych i zaimportować tabele do nowej bazy danych przy użyciu MsiDatabaseImport. Nowa baza danych ma wtedy taką samą zawartość jak stara baza danych, ale liczba odwołań do ciągów jest poprawna. Dodawanie lub usuwanie danych z bazy danych z uszkodzoną pulą ciągów może zwiększyć uszkodzenie bazy danych i utraty danych, dlatego szybkie wykonanie tych kroków jest ważne, aby zapobiec dalszej utracie danych.
Podczas odbudowywania baz danych pamiętaj, aby osadzić wszelkie niezbędne magazyny i strumienie w nowej bazie danych (zobacz _Streams Table i _Storages Table) i pamiętaj o problemach ze stroną kodową. Należy również pamiętać o ustawieniu każdej z niezbędnych właściwości strumienia informacji podsumowania.