Plan polega na utworzeniu kopii w tle dość dużego woluminu z dużymi wejściami / wyjściami. Ma pojemność 350 GB i zawiera indeks pełnotekstowy oparty na systemie plików, zorganizowany w setki folderów i setki tysięcy maleńkich plików, które muszą być w spójnym stanie do pomyślnego przywrócenia.
Obecnie indeksator jest zatrzymany, zadanie tworzenia kopii zapasowej jest uruchamiane, a następnie indeksator jest ponownie uruchamiany. Powoduje to, że indeks jest niedostępny przez wiele godzin podczas tworzenia kopii zapasowej. Chciałbym tworzyć spójne kopie zapasowe za pomocą kopiowania w tle, najlepiej bez konieczności zatrzymywania indeksatora.
Tak więc włączyłem Shadow Copy dla tego woluminu i skonfigurowałem go do robienia migawki raz na noc, do innego woluminu.
Teraz jestem trochę zagubiony - jak mogę uzyskać dostęp do kopii w tle jako całości, aby móc wykonać kopię zapasową? Widzę dysk tylko do odczytu, który zawiera pliki takie, jakie były w czasie ostatniej migawki, ale może rzeczy działają zupełnie inaczej.
System operacyjny to Windows Server 2003 SP2, oprogramowanie do tworzenia kopii zapasowych to CommVault Galaxy 7.0.
EDYCJA : Zauważ, że - w międzyczasie - zostały utworzone dwie odpowiedzi, które implementują niezbędną funkcjonalność w postaci skryptu:
- VBScript (sam)
- PowerShell (autor: John Homer )
źródło
Odpowiedzi:
Tak więc w duchu ponownego wynalezienia koła przedstawiam wam doskonały skrypt Tomalaka (patrz wyżej), ale całkowicie przepisany w Powershell !!! Głównym powodem, dla którego to zrobiłem, była ewangelizacja niesamowitych mocy Powershell, ale także dlatego, że nienawidzę vbscript całym ciałem.
Przeważnie jest to cecha identyczna, ale z różnych powodów zaimplementowałem niektóre rzeczy nieco inaczej. Wyniki debugowania są zdecydowanie bardziej szczegółowe.
Jedną bardzo ważną rzeczą do zapamiętania jest to, że ta wersja wykrywa wersję i bitowość systemu operacyjnego i wywołuje odpowiednią wersję vshadow.exe. Poniżej zamieszczam tabelę pokazującą, których wersji vshadow.exe należy użyć, gdzie je zdobyć i jak je nazwać.
Oto informacje o użyciu:
Oto skrypt:
Oto wersje vshadow.exe do użycia:
źródło
Więc… Pracowałem nad małym VBScript, który może:
Opiera się na
vshadow.exe
( dokumentacji ) części SDK 7.2 usługi kopiowania woluminów w tle, dostępnej w firmie Microsoft. Pracowałem z tą wersją: „ VSHADOW.EXE 2.2 - przykładowy klient Volume Shadow Copy, Copyright (C) 2005 Microsoft Corporation ”.Zasadniczo jest to miłe małe opakowanie wokół tych czterech poleceń vshadow:
Oto jego ekran pomocy:
Oto przykładowe dane wyjściowe:
A oto sam skrypt. Obowiązuje zwykłe zrzeczenie się: Oprogramowanie jest dostarczane w stanie, w jakim się znajduje, nie udzielam gwarancji, używam na własne ryzyko, jeśli coś złamie, jedyną winną jest ty sam. Jednak przetestowałem go dość dokładnie i działa dla mnie dobrze. Powiadom mnie o wszelkich błędach za pomocą poniższych komentarzy.
Mam nadzieję, że to komuś pomoże. Używaj go zgodnie z CC-BY-SA . Proszę tylko o pozostawienie nienaruszonego linku, który wskazuje tutaj.
źródło
vssadmin list shadows
aby wyświetlić listę wszystkich dostępnych kopii w tle. Otrzymasz taki wynik ...Zanotuj
Shadow Copy Volume
nazwę żądanej kopii w tle (najłatwiejsza do schowka).Zamontuj kopię w tle
W systemie Windows 2003 ...
Musisz pobrać narzędzia zestawu zasobów dla 2003 roku, jeśli jeszcze go nie masz.
Wpisz polecenie ...
... gdzie
c:\shadow
jest ścieżka, w której ma się pojawiać kopia w tle, i\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy69
nazwa, którą skopiowałeś powyżej. Pamiętaj, że musisz dodać ukośnik odwrotny na końcu nazwy kopii w tle!W systemie Windows 2008 i nowszych ...
Wpisz polecenie ...
... gdzie
c:\shadow
jest ścieżka, w której ma się pojawiać kopia w tle, i\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy69
nazwa, którą skopiowałeś powyżej. Pamiętaj, że musisz dodać ukośnik odwrotny na końcu nazwy kopii w tle!XCOPY
), aby uzyskać dostęp do plikówc:\shadow
.źródło
list shadows
?Nie rozumiesz, jak VSS współpracuje z systemem plików (jak działa z bazami danych, jest zupełnie inny). W systemie plików VSS służy do implementacji funkcji „Poprzednie wersje”, która służy wyłącznie do tworzenia migawek zmian w plikach i folderach we wcześniej określonych punktach w celu odzyskania za pomocą karty Poprzednie wersje w klientach. Zmiany te są następnie łączone z danymi w woluminie w celu zbudowania zestawu odzyskiwania. Jest więc zależny od tego, czy oryginalny wolumin nadal tam jest w celu przeprowadzenia odzyskiwania, co innymi słowy jest bezużyteczne do celów prawidłowego tworzenia kopii zapasowych i przywracania.
Myślę, że musisz wycofać się z tego, jak chcesz to zrobić, i jeszcze raz pomyśleć o tym, co chcesz zrobić.
350 GB danych to naprawdę niewiele, i mogę się założyć, że procent tego, co jest aktywnie wykorzystywane na co dzień, jest dość niski. Czy rozważałeś tworzenie nocnych różnicowych kopii zapasowych z pełnymi kopiami zapasowymi tylko w weekendy? Lub przy użyciu zaplanowanej replikacji systemu plików DFS do alternatywnego magazynu w celu uzyskania „migawki” (która jest następnie tworzona)
źródło
Mam nadzieję, że tego właśnie chcesz:
diskshadow -s vssbackup.cfg
vssbackup.cfg:
źródło
Korzystając z interfejsu API VSS, można wykonać „migawkę” woluminu. Następnie musisz zamontować tę migawkę, aby z niej skopiować. Znam martwy produkt, który wykorzystywał tę technikę do replikacji danych, mimo że pliki są otwierane wyłącznie przez inne procesy w systemie plików na żywo. Można zadać ważne pytania dotyczące tego, czy pliki w migawce VSS są spójne, jeśli są zapisywane przez aplikacje, które nie są zintegrowane z interfejsami API VSS. Mogą istnieć inne produkty, które oferują podobne możliwości.
źródło
Krótka odpowiedź: nie możesz.
Nieco dłuższa odpowiedź: z usługi kopiowania w tle można korzystać programowo poprzez interfejs API, aby umożliwić tworzenie kopii zapasowych otwartych plików, ale usługa nie tworzy pełnych migawek systemu, tylko migawki częściowe.
źródło