Odroczonych transakcji
W SQL Server 2005 Enterprise Edition i nowsze wersje uszkodzony transakcji można stają się odroczone, jeśli dane wymagane przez wycofanie (cofnąć) jest w trybie offline podczas uruchamiania bazy danych.A transakcja odroczona jest transakcją jest nieprzydzielonych, gdy przenieść do przodu w czasie zakończeniu fazy i który napotkał błąd uniemożliwiający Trwa wycofywanie.Ponieważ nie można wycofać transakcji, jest odroczona.
Ostrzeżenie
Uszkodzony transakcje są odroczone tylko w SQL Server 2005 Enterprise Edition i nowsze wersje.W innych wersjach SQL Server, uruchamianie powoduje uszkodzenia transakcji do błędów.
Na ogół transakcja odroczona występuje, ponieważ w czasie, gdy baza danych została są do przodu walcowane, błąd We/Wy uniemożliwił odczytywania strona, która była wymagana przez transakcję.Jednak błąd poziom plików może powodować również odroczonych transakcji.transakcja odroczona może również wystąpić, gdy częściowego sekwencja przywracanie zatrzymuje się w punkcie, w którym konieczne jest cofnięcie transakcji i transakcji wymaga danych, który jest w trybie offline.
Transakcje użytkownika, które są wycofywanie i trafień błąd We/Wy spowodować całej bazy danych przejść do trybu offline.Gdy baza danych przełączyć z powrotem do trybu online, ponowne wykonanie reacquires wszystkie blokady miał i próbuje wycofać niezakończone transakcje.Wszystkie dane zmodyfikowane przez transakcję pozostaje odpowiednio zablokowane, dopóki transakcji można wycofać.Transakcje, które nie może zostać przywrócona zostanie poddawaj ich blokad po uszkodzeniu jest stała i ponownie uruchomić bazy danych lub po przywracanie w trybie online, gdy rozwiązane transakcje odroczonego bazy danych pozostaje w trybie online.Dopóki wskazują, transakcja odroczona może pomieścić blokad, które uniemożliwiają pewnych operacji na bazie danych jako całości.Na przykład jeśli transakcja odroczonego zawiera instrukcji CREATE tabela, żaden użytkownik nie można utworzyć tabela, dopóki transakcja odroczona został rozwiązany.
Odroczonych transakcji może również wystąpić, ponieważ przywracanie fragmentaryczne przywraca bazę danych do punktu, w którym jeden lub więcej aktywnych transakcji są wpływających na grupa plików, które jeszcze nie zostało przywrócone i jest w trybie offline.Ponieważ nie można wycofać transakcji, stają się odroczone.
Następujące tabela Wyświetla listę akcji, które powodują bazy danych w celu wykonania odzyskiwanie i wynik, jeśli występuje problem z We/Wy.
Action |
Rozdzielczość (Jeśli występują problemy we/wy lub wymaganych danych jest w trybie offline) |
---|---|
Start serwera |
Odroczonych transakcji |
Przywracanie |
Odroczonych transakcji |
Dołącz |
Dołącz awarii |
Autorestart |
Odroczonych transakcji |
Tworzenie bazy danych lub migawka bazy danych |
Błąd tworzenia |
Wykonaj ponownie bazy danychdublowanie |
Odroczonych transakcji |
Grupa plików jest w trybie offline |
Odroczonych transakcji |
Przenoszenie transakcji z Państwa ODŁOŻONY
Ważne: |
---|
Transakcje odroczonego aktywnych w dzienniku transakcji.wirtualny plik dziennika zawierający jakichkolwiek odroczonych transakcji nie może być obcięta, dopóki te transakcje przenoszone są ze stanu odroczonego.Aby uzyskać więcej informacji na temat obcinania dziennika, zobacz Obcinania dziennika transakcji. |
Aby przenieść transakcję odroczonego stan, bazy danych należy uruchomić czysto bez błędy We/Wy.Jeśli istnieją transakcje odroczone, musisz naprawić źródło błędy We/Wy.Dostępnych rozwiązań w kolejności, w jakiej są zazwyczaj używane, są następujące:
Uruchom ponownie bazy danych.Jeśli problem był przejściowy, baza danych powinna rozpoczynać bez odroczonych transakcji.
Jeśli transakcje zostały odroczone, ponieważ grupa plików trybu offline, należy przenieść online grupa plików.
Aby przełączyć do trybu offline grupa plików online, użyj następujących Transact-SQL instrukcja:
RESTORE DATABASE database_name FILEGROUP=<filegroup_name>
Przywróć bazę danych.Po przywracanie w trybie online, rozwiązane jakichkolwiek odroczonych transakcji.
W obszarze pełny lub bulk-logged model odzyskiwanie, jeśli tylko na kilku stronach uszkodzone strona online przywracanie może naprawić błędy, odroczonego transakcje zostały spowodowane przez (gdzie obsługiwane).
Jeśli nie są wymagają grupa plików, których stan offline powoduje odroczone transakcji, należy unieczynnione grupa plików trybu offline.Transakcje, które zostały odroczone, ponieważ grupa plików trybu offline są przenoszone odroczonego stan po unieczynnione grupę plików.
Ważne: Unieczynnione grupa plików nigdy nie można odzyskać.
Aby uzyskać więcej informacji, zobacz Unieczynnione aplikacjami.
Jeśli transakcje zostały odroczone, ze względu na złą strona i dobrej kopia zapasowa bazy danych nie istnieje, naprawić bazę danych za pomocą następujący proces:
Najpierw umieść bazę danych do trybu awaryjnego, wykonując następujące Transact-SQL instrukcja:
ALTER DATABASE <database_name> SET EMERGENCY
Aby uzyskać informacje dotyczące trybu awaryjnego, zobacz Państwa bazy danych.
Następnie naprawić bazę danych za pomocą opcji DBCC REPAIR_ALLOW_DATA_LOSS w jednym z następujących instrukcji DBCC: DBCC CHECKDB, dbcc checkalloc, lub dbcc checktable.
DBCC napotka złą strona, DBCC zwalnia go i naprawia błędy pokrewne.To podejście umożliwia bazy danych można przełączyć z powrotem do trybu online fizycznie spójna.Jednakże dodatkowe może również nastąpić utrata danych; dlatego podejście to należy stosować w ostateczności.
Zobacz także