Dlaczego miałbym przełączyć bazę danych w tryb offline?


15

Z jakich powodów i w jakich sytuacjach skorzystasz z funkcji „Przełącz offline” / ALTER DATABASE dbName SET OFFLINE.

Jakie zadania możesz wykonać przy bazie danych offline? Jakie zadania możesz wykonywać tylko z bazą danych offline?

Odpowiedzi:


16

Możesz przenieść plik MDF na inny serwer, aby przełączyć go do trybu online.


4
+1 lub inny dysk / folder / SAN ...
— Chris S

Czy to jedyne zastosowanie dla „przejścia offline”?
— Greg B,

5
Nie, mogę wymyślić inne powody. Wyobraź sobie, że masz wiele baz danych dla wielu aplikacji. Jedna z tych aplikacji otrzymuje aktualizację aplikacji front-end (aplikacja internetowa, klient, który wie). Chcesz uniemożliwić dostęp do bazy danych komukolwiek podczas aktualizacji, ale nie chcesz zdejmować całego serwera z powodu innych baz danych. To może być powód, aby przejść do trybu offline. Jestem pewien, że twoja wyobraźnia może wymyślić również inne powody.
— mfinni

Nie wyobrażam sobie mojej wyobraźni, stąd pytanie. Nie sądziłem, że możesz zmienić bazę danych w trybie offline, więc nie rozumiem, jak przejście do trybu offline może pomóc w procesie aktualizacji
— Greg B

2
Greg B - konkretnie powiedziałem o aktualizacji frontonu, a nie samej DB. W opisanym przeze mnie scenariuszu DB pozostaje bez zmian. Zostanie wyłączony, aby upewnić się, że nikt nie ma do niego dostępu podczas przejścia.
— mfinni

18

W środowiskach programistycznych / przejściowych czasem przydatne jest przełączenie bazy danych w tryb offline, aby upewnić się, że łączysz się z właściwą instancją bazy danych w aplikacji i że nie masz gdzieś podciągniętego ciągu połączenia.

To powiedziawszy, w tej sytuacji znacznie lepiej jest mieć różne nazwy baz danych dla różnych środowisk i proces kompilacji, który automatycznie skonfiguruje parametry połączenia ...

Podobnie lubię przełączać bazy danych w tryb offline na pewien czas przed wycofaniem ich z eksploatacji (nie tak bardzo), że z jakiegoś powodu muszą wrócić do trybu online. Dość razy zostałem ugryziony przez deweloperów, którzy mają haki, których nie znam w jednej z moich baz danych, kiedy chcę się ich pozbyć. Przełączanie go w tryb offline jest znacznie mniej drastyczne i zajmuje mniej czasu niż usuwanie go i przywracanie w razie potrzeby.

Inną rzeczą byłoby zabezpieczenie awaryjne. Musiałem to zrobić wcześniej. Czasami w Twojej aplikacji znajduje się paskudny błąd, który, choć nie jest złośliwy, nadal powoduje uszkodzenie danych w bazie danych. Przełączenie bazy danych w tryb offline to szybki sposób na zatrzymanie krwawienia do momentu zidentyfikowania błędu. Następnie możesz przywrócić go do trybu online, aby ocenić szkody w bazie danych.


2
Podoba mi się pomysł przejścia w tryb offline przed usunięciem
— Greg B,

8
Tak samo. Mam cztery tysiące tysięcy baz danych w naszych środowiskach przedprodukcyjnych. Czasami trudno jest wiedzieć, kto jest właścicielem. Odłączenie go w trybie offline i czekanie na pisk jest czasami jedyną opcją.
— Michael Green,

6

Chociaż niektóre odpowiedzi tutaj mogą dać ci pomysły na to, co możesz zrobić z bazą danych, która ma ograniczony dostęp, niewiele można zrobić z bazą danych, która jest offline. Nie możesz aktualizować, aktualizować, dodawać ani usuwać danych itp.


2
Poprawny. Jeśli chcesz dużo zrobić z bazą danych, lepiej jest ustawić ją w trybie pojedynczego użytkownika. Następnie nadal ograniczasz dostęp, ale możesz zrobić znacznie więcej.
— Sean Howat,

Nie możesz nawet zmienić jego nazwy!
— Dima Fomin

0

Mój nadrzędny powód, który muszę sprzedać DBA częściej niż chciałbym wymienić ...

„Sieć SAN wymaga naprawy ... i nie, nie mogę po prostu wymienić dysku na gorącą, płyta montażowa / kontrolery są winne”.

Instancje DB zachowują się bardzo źle, gdy ich dyski znikają.

Dlatego zamykam instancje SQL przed przełączeniem SAN w tryb offline, a następnie przywracam je pojedynczo, aby nie zakwestionowały zasobów - pierwsza instancja zabiera wszystkie zasoby klastra i staje się węzłem Active DB, kolejne instancje jako węzły pasywne.


-3

Jest wiele powodów, dla których musisz to zrobić ...

Dla przykładu,

consider changing or upgrading the actual database program/binary...
consider changing or upgrading the schema or tables..
consider changing or upgrading index's..

Najważniejszy punkt ..

Is taking a backup.. to get a perfect snapshot in time.. 

(w niektórych DB po prostu tworzysz blokadę na wszystkich stołach)


+1, także starsze DBMS do defragmentacji lub zmniejszenia DB.
— Chris S

1
re: „zmiana lub aktualizacja schematu”, z książek online „OFFLINE Baza danych jest zamknięta, czysto zamknięta i oznaczona offline. Bazy danych nie można modyfikować, gdy jest offline”. Jak możesz zaktualizować schemat w tej sytuacji?
— Greg B,

Przepraszam .. miałem na myśli wprowadzanie zmian w nieaktywnej bazie danych .. Jestem obserwatorem MySQL, założyłem, że aktualizacja nastąpi w bazie danych oznaczonej w trybie offline, więc nie ma żadnych problemów z współbieżnością z niczym innym niż potrzebną zmianą. Być może możemy to pominąć ...: D
— Arenstar

2
Wiesz, prawdziwe bazy danych obsługują prawdziwe kopie zapasowe. Nie musisz brać nic, tylko zabawkę online, aby wykonać idealnie spójną kopię zapasową w czasie. DB wymagający blokady lub innego głupiego mechanizmu to zabawka. Naprawdę. Wszystkie główne bazy danych nie mają problemu z pełnymi kopiami zapasowymi, spójnymi, gdy są intensywnie używane.
— TomTom,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.