Przenieś plik dziennika bez przełączania bazy danych w tryb offline

14

Muszę przenieść plik dziennika bazy danych na nową partycję bez przełączania bazy danych w tryb offline.

Normalnym sposobem jest odłączenie bazy danych, przeniesienie pliku dziennika, a następnie ponowne podłączenie bazy danych.

Czy można to zrobić bez wyłączania samej bazy danych, a jeśli tak, to w jaki sposób?

Nie ja
źródło

Odpowiedzi:

16

Nie można tego zrobić za pomocą internetowej bazy danych.

Po przeniesieniu pliku bazy danych ( ALTER DATABASE ... MODIFY FILE) pojawia się nawet następujący komunikat:

Plik „YourFile” został zmodyfikowany w katalogu systemowym. Nowa ścieżka zostanie wykorzystana przy następnym uruchomieniu bazy danych .


Normalnym sposobem jest odłączenie bazy danych, przeniesienie pliku dziennika, a następnie ponowne podłączenie bazy danych.

To nie jest „normalny” lub zaakceptowany sposób, w jaki to zrobiłbym. Aby przenieść pliki bazy danych, wykonuję następujące czynności:

  1. Uruchom komendę ALTER DATABASE, aby zmienić lokalizację pliku (plików)
  2. Przełącz bazę danych w tryb offline
  3. Fizycznie przenieś plik (i) do nowej lokalizacji określonej w kroku 1
  4. Przełącz bazę danych do trybu online

Zobacz to odniesienie w TechNet: Przenieś bazy danych użytkowników

Thomas Stringer
źródło
3

Zgodnie z odniesieniem do bazy danych użytkowników TechNet Move z odpowiedzi Thomasa Stringera , jeśli chcesz przenieść pliki bez zatrzymywania całej instancji SQL Server (zgodnie z „Planowaną procedurą relokacji”), kolejność powinna być następująca:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Najpierw zwróć uwagę na tryb offline; następnie przenieś pliki i powiedz SQL Serverowi o nowych lokalizacjach.

Jeśli musisz zdjąć całą instancję programu SQL Server (patrz procedura „Przeniesienie do zaplanowanej konserwacji dysku”), najlepiej najpierw zmodyfikować lokalizacje plików, aby po ponownym uruchomieniu instancji nie było problemu ze znalezieniem plików w nowych lokalizacjach.

DocOc
źródło
1

Wiem, że to stare pytanie, ale czy nie możesz po prostu dodać drugiego pliku dziennika (który jest następnie używany przez DB zamiast oryginału) w nowej lokalizacji, a następnie zmniejszyć / usunąć oryginał?

ibmdba
źródło