Niechciane nadpisywanie volumenów

Wysłane przez grenpl 
Niechciane nadpisywanie volumenów 03 sie 2017 - 13:56:49

Send PM

Witam Wszystkich,
od niedawna jestem posiadaczem pierwszej instancji bacula gdzie w ramach jednego serwera zainstalowalem tez klienta i testuje cale środowisko pod katem projektu jaki mam na celu uzyskac by pracowal poprawnie. Niestety pomimo konfiguracji z najnowsza dokumentacja dla wersji 7.4.x mam male problemy by uznac rozwiazanie za prawidlowe.
Projekt zaklada backupowanie danych ze zdalnego serwera qnap w trybie incremental (w dni robocze) i full w sobote, archiwizujac dane do plikow na serwerze lokalnym. Wpadlem na to ze dla mnie najprostszym rozwiazaniem bedzie zainstalowanie klienta na serwerze lokalnie gdzie fileset bedzie ustawiony na katalog do ktorego mam podmontowany przez sshfs zasob ze zdalnego qnap'a. Ręczne kopiowanie danych dziala bez problemu wiec i bacula daje rade. Do sedna, Bacula sciaga dane zgodnie z schedulerem, tj. pierwszy robi jako full, kolejne jako incremental i zawsze w sobote full. Pliki zapisywane sa do zdeklarowanego storage a zarchiwizowane dane mozna przywracac poprzez tryb maunalny bez bootstrap'a lub tez z definiowanego job'a przy uzyciu zapisanego pliku bootstrap. Problemy jednak są dwa. Po pierwsze to ze co drugi backup incremental dostaje informacje w logu z joba "There are no more Jobs associated with Volume xxx. Marking it purged." i dalej nadpisuje sie ostatnio zapisany volumen ktory mial status used a nie uzyskal limitu dni retencji do recyclingu. W efekcie mam np sytuacje gdzie widnieje na dysku i w katalogu (bazie danych baculi) wolumen pierwszy full, i np drugi incremental gdzie zadan bylo trzy (full i 2 incremental) i trzecie zadanie nadpisalo wolumen z zadania drugiego - zaznaczam ze plikow od poczatku nie przybylo ani nie bylo aktualizowane. Zaczalem sie zastanawiac czy to zachowanie jest poprawne, ale wg dokumentacji i konfiguracji bacula przy kazdym zadaniu powinna tworzyc nowy wolumen az do limitu w sekcji pool a dalej w trybie fifo utrzymywac odpowiednia ilosc tych wolumenów.
Drugi problem to przy przywracaniu danych badz z job'a badz manualnie pliki pojawiaja sie katalogu glownym partycji root / a nie tam gdzie zadeklarowalem. Uprawnienia mam nadane juz jako 777, kombinowalem z kasowaniem i dodawaniem prefix'ow, ale to nic nie zmienia, Zerknijcie prosze na ponizszy konfig i dajcie drogowskaz. Bede wdzieczny za pomoc.

Moja konfiguracja bacula-dir.conf (najwazniejsze sekcje):

Client {
Name = bacula-fd
Address = localhost
FDPort = 9102
Catalog = CatalogDB
Password = "@@FD_PASSWORD@@" # password for FileDaemon
File Retention = 14 days # 60 days
Job Retention = 14 days # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Pool {
Name = KE_pool_1
Maximum Volumes = 12 # Limit number of Volumes in Pool
Pool Type = Backup
Storage = KE_Storage_dev_1
# Use Volume Once = yes
Maximum Volume Jobs = 1
Maximum Volume Files = 0
Maximum Volume Bytes = 400G # Limit Volume size to something reasonable
AutoPrune = yes # Prune expired volumes
Volume Retention = 12 days #
Job Retention = 20 days # overrides Client resources configuration
Recycle = yes # Bacula can automatically recycle Volumes
Recycle Oldest Volume = yes
Purge Oldest Volume = no # potrzebne testy do zrozumienia realnego zysku i zagrozenia
Label Format = "KE_arch-files_"
}
FileSet {
Name = "KE_full"
Include {
Options {
signature = MD5
compression = GZIP
checkfilechanges = yes
}
File = /home/ke_remote_Qnap/
}
Exclude {
# File = /var/spool/bacula
# File = /somewhere/*.tmp
}
}
JobDefs {
Name = "Defaults"
Client = bacula-fd
Messages = Standard
Priority = 10
# Write Bootstrap = "/var/spool/bacula/%c.bsr"
}

Job {
Enabled = yes
Name = "KE backup"
JobDefs = "Defaults"
Type = Backup
Level = Incremental
Accurate = yes
FileSet = "KE_full"
Pool = "KE_pool_1"
Schedule = "WeeklyCycle"
# Priority = 11
#RunBeforeJob = "/usr/libexec/bacula/make_catalog_backup.pl MyCatalog"
#RunAfterJob = "/usr/libexec/bacula/delete_catalog_backup"
Write Bootstrap = "/var/spool/bacula/KSSE_backup.bsr"
Prune Jobs = no
}
Job {
Name = "KE Restore Files"
Type = Restore
Client = bacula-fd
FileSet = "KE_full"
Pool = KE_pool_1
Messages = Standard
Where = "/home/ksse_restore"
Strip Prefix = "/home/ke_remote_Qnap"
#Add Prefix = ""
#Add Suffix =".old"
Prefix Links = yes
Bootstrap = "/var/spool/bacula/KE_backup.bsr"
}
Schedule {
Name = "WeeklyCycle"
Run = Level=Full sat at 20:00
Run = Level=Incremental mon-fri at 20:00
}
Re: Niechciane nadpisywanie volumenów 04 sie 2017 - 18:14:00

Send PM

grenpl Napisał(a):
-------------------------------------------------------
> w logu z joba "There are no more Jobs associated
> with Volume xxx. Marking it purged." i dalej
> nadpisuje sie ostatnio zapisany volumen ktory mial
> status used a nie uzyskal limitu dni retencji do
> recyclingu.

Może być to wina poniższych parametrów:
- > Recycle Oldest Volume = yes
- > Purge Oldest Volume = no # potrzebne
- > testy do zrozumienia realnego zysku i zagrozenia
Wprawdzie to drugie jest ustawione poprawnie, ale nie wiadomo jak było wcześniej i czy czegoś nie pozostawiło w systemie.

> Drugi problem to przy przywracaniu danych badz z
> job'a badz manualnie pliki pojawiaja sie katalogu
> glownym partycji root / a nie tam gdzie
> zadeklarowalem.

Jeśli podczas uruchamiania zadania Restore podasz parametr "where=" (są trzy różne sposoby na jest ustawienie) wskazujący na dowolny katalog w systemie (może być nieistniejący) to całość Twojego backupu zostanie tam odtworzona traktując ten katalog jako "nowy root (chroot)" dla odtwarzania. Podanie pustej wartości dla parametru "where=" lub wartości "/" spowoduje, że pliki odtwarzane będą dokładnie w to miejsce z którego były backupowane. W standardowej sytuacji, czyli świadomie lub nieświadomie nie namieszałeś sobie w konfiguracji, nie ma technicznej możliwości aby odtwarzane pliki trafiały do katalogu root "/" zamiast w docelowe miejsce, chyba, że oryginalnie były tam zlokalizowane i podano parametr "where=/".

> Uprawnienia mam nadane juz jako
> 777,

Do czego te uprawnienia, nie rozumiem?

> kombinowalem z kasowaniem i dodawaniem
> prefix'ow, ale to nic nie zmienia,

Dlaczego "kombinujesz" z kasowaniem i dodawaniem prefixów? To opcja zaawansowana i jeśli nie wiesz co robisz to efekt zapewne w 100% odpowiada temu co ustawiłeś. smiling smiley

> Pool {
> Name = KE_pool_1
> Maximum Volumes = 12 # Limit
> number of Volumes in Pool

Czy świadomie ustawiłeś ten parametr, czy tylko dla testów?

> Pool Type = Backup
> Storage = KE_Storage_dev_1
> # Use Volume Once = yes
> Maximum Volume Jobs = 1
> Maximum Volume Files = 0

Ja bym nie ustawiał tego parametru na zero, to raczej nic nie zmienia ale trzeba by sprawdzić w kodzie źródłowym czy aby napewno.

> Maximum Volume Bytes = 400G # Limit
> Volume size to something reasonable

Mieszanie trzech rodzajów ograniczeń (max jobs, max volumes i max bytes) nigdy nie wróżyło niczego dobrego, chyba że z pełną świadomością przeliczyłeś swoje zasoby i je ustawiłeś.

> FileSet {
> Name = "KE_full"
> Include {
> Options {
> signature = MD5
> compression = GZIP
> checkfilechanges = yes

Rozumiem, że backupowane pliki są na jakimś snapshocie?

> Job {
> Name = "KE Restore Files"
> Type = Restore
> Client = bacula-fd
> FileSet = "KE_full"
> Pool = KE_pool_1
> Messages = Standard
> Where = "/home/ksse_restore"

Dzięki temu parametrowi wszystkie pliki odtwarzane przez to zadanie Restore (o ile nie zmienisz tego parametru ręcznie) będą odtwarzane do powyższego katalogu - oczywiście zawsze z zachowaniem oryginalnej struktury katalogów nawet dla pojedynczego pliku.

> Strip Prefix = "/home/ke_remote_Qnap"
> #Add Prefix = ""
> #Add Suffix =".old"
> Prefix Links = yes

Ale wiesz, że opcje "Where=" oraz "Strip/Add Prefix/Suffix" się wykluczają, prawda? Bo jeśli nie to teraz rozumiem dlaczego Bacula odtwarza Ci do root /... smiling smiley
Zakładając że backupowany plik miał nazwę (full path): /home/ke_remote_Qnap/bacula.doc to dzięki Twojemu zadaniu odtworzony zostanie jako: /bacula.doc
I hydrozagadka rozwiązana. smiling smiley

--
Profesjonalne usługi Bacula: [www.bacula.com.pl]
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 09:16:54

Send PM

Dziękuję bardzo za odpowiedź, miło podsumowałeś moje zmagania smiling smiley Sęk w tym, że wiem co chcę zrobić a ten config pomimo bazowania na dokumentacji zgodnej z wersją baculi nie bardzo się sprawdza.....zapewne proporocjonalnie do mojego doświadczenia heh. I tak (od końca):
Quote
inteos
Ale wiesz, że opcje "Where=" oraz "Strip/Add Prefix/Suffix" się wykluczają, prawda? Bo jeśli nie to teraz rozumiem dlaczego Bacula odtwarza Ci do root /... smiling smiley
Wg dokumentacji Strip prefix jest mi potrzebny ze względu na to, że przy restore odtwarzana jest cała ścieżka do plików, innymi słowy jak plik na kliencie (w moim przypadku na tym samym serwerze co director/storage) znajdował się w katalogu /home/user/docs/file to gdy odtwarzam plik file do katalogu where= /home/restore_files/ faktycznie otrzymuję te pliki odtworzone w katalogu /home/restore_files/home/user/docs/file/
Tak więc chciałbym się pozbyć częściowo tej zsumowanej ścieżki i stąd kombinuję ze stripem smiling smiley a tutaj zamiast bacula usłusznie wykonywać polecenie zgodnie z konfigiem, wrzuca mi to dziwnie do /. Już nawet nie piszę tylko kopiuję/wklejam ścieżki w configu żeby nie robić literówek. No nic, rzeźbię dalej bo gdzieś musi być błąd 'mojej' hehe metody smiling smiley
Quote
inteos
Rozumiem, że backupowane pliki są na jakimś snapshocie?
Archiwizowane pliki znajdują się na serwerze QNAP w zwykłym katalogu udostępnianym userom po sieci lokalnej. Zasoby te podmontowe są przez sshfs lokalnie na serwerze baculi.
Quote
inteos
Czy świadomie ustawiłeś ten parametr, czy tylko dla testów?
...
Mieszanie trzech rodzajów ograniczeń (max jobs, max volumes i max bytes) nigdy nie wróżyło niczego dobrego, chyba że z pełną świadomością przeliczyłeś swoje zasoby i je ustawiłeś.
Tak, taki config wywodzi się z zapotrzebowania i przeliczonych zasobów, konkretnie 1 kopia full tygodniowo i 5 przyrostowych, ale z możliwością odtwarzania tydzień wstecz. Wszystko przy zachowaniu limitu backupu zgodnie z quota na serwerze qnapa.
Reasumując najbardziej frapuje mnie monit "There are no more Jobs associated with Volume xxx. Marking it purged." po którym bacula dalej nadpisuje ostatnio zapisany volumen, podczas gdy nie ma wykorzystanej puli 14 wolumenów. Przez to tracę możliwość idealnego odtworzenia z kopii przyrostowej z danego dnia który został nadpisany.
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 09:29:06

Send PM

dokańczając powyższą odpowiedź, jak mam testowo 8 zadań zakończonych sukcesem, to woluminów jest tylko 6 bo akurat 2 razy bacula stwierdziła przy backupowaniu że nie ma pracy powiązanej z ostatnim woluminem i nadpisała go na poczet aktualnie wykonywanej. Jak sam widzisz, w konfigu jasno deklaruję
Maximum Volume Jobs = 1
AutoPrune = yes
Volume Retention = 12 days
Job Retention = 20 days # overrides Client resources configuration
Recycle = yes # Bacula can automatically recycle Volumes
Recycle Oldest Volume = yes

jak możesz zerknij jeszcze raz proszę na mojego pierwszego posta z configiem, może naprawdę coś przeoczyłem?
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 11:08:20

Send PM

I teraz ten dylemat. Czy to ja źle opisałem co jest w konfiguracji nie tak i dlaczego to nie działa, czy to może osoba której starałem się pomóc zwyczajnie nie przeczytała tego co napisałem.

> a tutaj zamiast bacula usłusznie wykonywać polecenie zgodnie z konfigiem, wrzuca mi to dziwnie do /.
Napisałem, że konfig masz zły i pokazałem gdzie. Bacula działa zgodnie z konfiguracją którą jej przygotowałeś, chociaż może nie do końca tak jak chciałeś.

> checkfilechanges = yes
> Zasoby te podmontowe są przez sshfs lokalnie na serwerze baculi.
Opcja ta powoduje, że zadanie backupowe zostanie przerwane w momencie jak Bacula wykryje, że plik który backupowała będzie zmieniony. Raczej nie jest to funkcjonalność której oczekujesz.

> Tak, taki config wywodzi się z zapotrzebowania i przeliczonych zasobów, konkretnie 1 kopia full tygodniowo i 5 przyrostowych
> przy zachowaniu limitu backupu zgodnie z quota na serwerze qnapa.
Quotę rozumiem, ale dlaczego chcesz jednocześnie ograniczać ilość wykonanych zadań. Pytam z ciekawości.

> najbardziej frapuje mnie monit "There are no more Jobs associated with Volume xxx. Marking it purged."
Tutaj także wskazałem które parametry konfiguracyjne w moim odczuciu ponoszą winę za taki stan rzeczy.

--
Profesjonalne usługi Bacula: [www.bacula.com.pl]
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 11:10:21

Send PM

grenpl Napisał(a):
-------------------------------------------------------
> jak możesz zerknij jeszcze raz proszę na mojego
> pierwszego posta z configiem, może naprawdę coś
> przeoczyłem?
Ale ja już to zrobiłem i pokazałem co i jak jest źle. Wystarczy przeczytać. Mam coraz bardziej wrażenie że nie czytałeś moich odpowiedzi.

--
Profesjonalne usługi Bacula: [www.bacula.com.pl]
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 12:42:31

Send PM

Może to teraz głupio zabrzmi ale czytałem parę razy dla zrozumienia Twoją odpowiedź i raczej odebrałeś mnie jako nie content z powodu, że nie czytam źródeł baculi a staram się opierać na dokumentacji (http://www.bacula.org/7.4.x-manuals/en/main/Configuring_Director.html) z której nie wynika np. że where i strip prefix się wykluczają a u mnie te zmienne mialy inne wartosci a nie te same i glupialem. Dlatego ponownie wyjaśniłem jeszcze raz mój zamiar i dziękuję Ci za drogowskaz, który przetestowałem posługując się wyłącznie strip prefix i add prefix i zadziałało! Voila, Dzięki Tobie smiling smiley
Co do bardziej frapującego problemu, wskazałeś miejsce gdzie może być błąd założeń ale znów, wg dokumentacji nie wiem gdzie faktycznie jest zła 'moja' interpretacja wartości względem projektu.
Quote
inteos
Może być to wina poniższych parametrów:
- > Recycle Oldest Volume = yes
- > Purge Oldest Volume = no # potrzebne
- > testy do zrozumienia realnego zysku i zagrozenia
Wprawdzie to drugie jest ustawione poprawnie, ale nie wiadomo jak było wcześniej i czy czegoś nie pozostawiło w systemie.
Środowisko jest jeszcze testowe więc nic wcześniej nie było smiling smiley
Jednak analizując kolejno całość: zasobu Pool:
Pool {
Name = KE_pool_1
Maximum Volumes = 12 # tyle pozwala zachowac w trybie fifo do odczytu 5 kopii do tylu przy full robionym w soboty i incr na tygodniu roboczym
Pool Type = Backup
Storage = KE_Storage_dev_1
# Use Volume Once = yes # deprecated - stosujemy teraz zapis ponizej
Maximum Volume Jobs = 1 #jeden backup to jeden wolumen
# Maximum Volume Files = 0 # polegam na wartości domyślnej - no limit
Maximum Volume Bytes = 400G # nie chcę na wirtualnych zasobach zrobić sobie kuku, w razie jakby nie zadziałała quota na zdalnym
AutoPrune = yes # Prune expired jobs/volumes
Volume Retention = 12 days # skorelowane z iloscia dla zamierzonego trybu fifo i recyclingu
Job Retention = 20 days # overrides Client resources configuration
Recycle = yes # Bacula can automatically recycle Volumes
Recycle Oldest Volume = yes
Purge Oldest Volume = no # w sumie nie ma potrzeby stosowania tej opcji poniewaz chce bazowac na czasie retencji
Label Format = "KE_arch-files_"
}
Za kasowanie job'ów z bazy odpowiada autoprune, ale opiera się na czasie retencji i wtedy bacula powinna zwalniac wolumeny. W moim przypadku ostatni wykonywany job znika (przed chwila zauważyłem że co drugi) 'jakby' samoistnie i wolumen jest 'likwidowany' do użytku - narazie przecieram oczy smiling smiley Teoretycznie mógłbym olać czas retencji tylko skorzystać z tego że wiem ile chce mieć max wolumenów i użyć Purge Oldest Volume = yes ale to jest chyba brzydkie rozwiązanie, prawda?
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 13:01:07

Send PM

Hmm ciekawostka jest to iż pomimo nowy job nadpisuje wolumen z poprzedniego job'a to mozna odtwarzac pliki posilkujac sie tym poprzednim job'em dla którego przeciez bacula stwierdzila "There are no more Jobs associated with Volume xxx. Marking it purged"
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 13:15:26

Send PM

grenpl Napisał(a):
-------------------------------------------------------
> Hmm ciekawostka jest to iż pomimo nowy job
> nadpisuje wolumen z poprzedniego job'a to mozna
> odtwarzac pliki posilkujac sie tym poprzednim
> job'em dla którego przeciez bacula stwierdzila
> "There are no more Jobs associated with Volume
> xxx. Marking it purged"
Podaj przykład takiego działania, czyli: list joblog jobid=<jobid> dla <jobid> które było na "purged" wolumenie z powyższego wpisu i próbę odtworzenia danych z takiego zadania: restore jobid=<jobid>. Z chęcią przeanalizuję tego typu nieścisłości.

--
Profesjonalne usługi Bacula: [www.bacula.com.pl]
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 14:46:03

Send PM

1. zadanie 21 które wykonało się poprawnie i utworzyło wolumen 0014:
bacula-dir JobId 21: Start Backup JobId 21, Job=test_backup.2017-08-09_12.52.37_45
bacula-dir JobId 21: Created new Volume="test_arch-files_0014", Pool="test_pool", MediaType="File" in catalog.
bacula-dir JobId 21: Using Device "test_storage" to write.
bacula-dir JobId 21: Sending Accurate information to the FD.
bacula-sd JobId 21: Labeled new Volume "test_arch-files_0014" on file device "test_storage" (/home/test_storage).
bacula-sd JobId 21: Wrote label to prelabeled Volume "test_arch-files_0014" on file device "test_storage" (/home/test_storage)
bacula-dir JobId 21: Max Volume jobs=1 exceeded. Marking Volume "test_arch-files_0014" as Used.
bacula-sd JobId 21: Elapsed time=00:00:01, Transfer rate=0 Bytes/second
bacula-sd JobId 21: Sending spooled attrs to the Director. Despooling 0 bytes ...
bacula-dir JobId 21: Bacula bacula-dir 7.4.7 (16Mar17):
Build OS: x86_64-redhat-linux-gnu redhat (Core)
JobId: 21
Job: test_backup.2017-08-09_12.52.37_45
Backup Level: Incremental, since=2017-08-09 12:51:01
Client: "bacula-fd" 7.4.7 (16Mar17) x86_64-redhat-linux-gnu,redhat,(Core)
FileSet: "test_full" 2017-08-09 11:47:32
Pool: "test_pool" (From Command input)
Catalog: "CatalogDB" (From Client resource)
Storage: "test_storage" (From Pool resource)
Scheduled time: 09-sie-2017 12:52:37
Start time: 09-sie-2017 12:52:40
End time: 09-sie-2017 12:52:40
Elapsed time: 0 secs
Priority: 10
FD Files Written: 0
SD Files Written: 0
FD Bytes Written: 0 (0 cool smiley
SD Bytes Written: 0 (0 cool smiley
Rate: 0.0 KB/s
Software Compression: None
Snapshot/VSS: no
Encryption: no
Accurate: yes
Volume name(s):
Volume Session Id: 4
Volume Session Time: 1502272351
Last Volume Bytes: 624 (624 cool smiley
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK
bacula-dir JobId 21: Begin pruning Jobs older than 1 month .
bacula-dir JobId 21: No Jobs found to prune.
bacula-dir JobId 21: Begin pruning Files.
bacula-dir JobId 21: No Files found to prune.
bacula-dir JobId 21: End auto prune.

2.Zadanie 22 które nadpisało wolumen 0014
bacula-dir JobId 22: Start Backup JobId 22, Job=test_backup.2017-08-09_12.54.04_03
bacula-dir JobId 22: There are no more Jobs associated with Volume "test_arch-files_0014". Marking it purged.
bacula-dir JobId 22: All records pruned from Volume "test_arch-files_0014"; marking it "Purged"
bacula-dir JobId 22: Recycled volume "test_arch-files_0014"
bacula-dir JobId 22: Using Device "test_storage" to write.
bacula-dir JobId 22: Sending Accurate information to the FD.
bacula-sd JobId 22: Recycled volume "test_arch-files_0014" on file device "test_storage" (/home/test_storage), all previous data lost.
bacula-dir JobId 22: Max Volume jobs=1 exceeded. Marking Volume "test_arch-files_0014" as Used.
bacula-sd JobId 22: Elapsed time=00:00:01, Transfer rate=0 Bytes/second
bacula-sd JobId 22: Sending spooled attrs to the Director. Despooling 0 bytes ...
bacula-dir JobId 22: Bacula bacula-dir 7.4.7 (16Mar17):
Build OS: x86_64-redhat-linux-gnu redhat (Core)
JobId: 22
Job: test_backup.2017-08-09_12.54.04_03
Backup Level: Incremental, since=2017-08-09 12:52:40
Client: "bacula-fd" 7.4.7 (16Mar17) x86_64-redhat-linux-gnu,redhat,(Core)
FileSet: "test_full" 2017-08-09 11:47:32
Pool: "test_pool" (From Command input)
Catalog: "CatalogDB" (From Client resource)
Storage: "test_storage" (From Pool resource)
Scheduled time: 09-sie-2017 12:54:04
Start time: 09-sie-2017 12:54:07
End time: 09-sie-2017 12:54:07
Elapsed time: 0 secs
Priority: 10
FD Files Written: 0
SD Files Written: 0
FD Bytes Written: 0 (0 cool smiley
SD Bytes Written: 0 (0 cool smiley
Rate: 0.0 KB/s
Software Compression: None
Snapshot/VSS: no
Encryption: no
Accurate: yes
Volume name(s): test_arch-files_0014
Volume Session Id: 5
Volume Session Time: 1502272351
Last Volume Bytes: 624 (624 cool smiley
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK
bacula-dir JobId 22: Begin pruning Jobs older than 1 month .
bacula-dir JobId 22: No Jobs found to prune.
bacula-dir JobId 22: Begin pruning Files.
bacula-dir JobId 22: No Files found to prune.
bacula-dir JobId 22: End auto prune.

3. Lista JobId
Select item: (1-13): 1
+-------+-----------+---------------------+----------+----------+----------+
| JobId | Client | StartTime | JobLevel | JobFiles | JobBytes |
+-------+-----------+---------------------+----------+----------+----------+
| 22 | bacula-fd | 2017-08-09 12:54:07 | I | 0 | 0 |
| 21 | bacula-fd | 2017-08-09 12:52:40 | I | 0 | 0 |
| 20 | bacula-fd | 2017-08-09 12:51:01 | F | 4 | 2061 |
| 18 | bacula-fd | 2017-08-09 11:58:05 | F | 4 | 2061 |
+-------+-----------+---------------------+----------+----------+----------+

4. przywracanie full z data az do jobid21 - poniewaz ta praca jest typu incremental i nie bylo zmian w zasobach fileset
[root@bacula ~]# bconsole
Connecting to Director localhost:9101
1000 OK: 102 bacula-dir Version: 7.4.7 (16 March 2017)
Enter a period to cancel a command.
*restore
Automatically selected Catalog: CatalogDB
Using Catalog "CatalogDB"

First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item: (1-13): 12
Enter JobId to get the state to restore: 21
Selecting jobs to build the Full state at 2017-08-09 12:52:40
You have selected the following JobIds: 20,21

Building directory tree for JobId(s) 20,21 ...
3 files inserted into the tree.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /
$ ls
home/
$ mark home
4 files marked.
$ done
Bootstrap records written to /var/spool/bacula/bacula-dir.restore.2.bsr
Bootstrap records written to /var/spool/bacula/bacula-dir.restore.2.bsr

The Job will require the following (*=>InChanger):
Volume(s) Storage(s) SD Device(s)
===========================================================================

test_arch-files_0013 test_storage test_storage

Volumes marked with "*" are in the Autochanger.

4 files selected to be restored.

Automatically selected Client: bacula-fd
Using Catalog "CatalogDB"
Run Restore job
JobName: Test Restore Files
Bootstrap: /var/spool/bacula/bacula-dir.restore.2.bsr
RegexWhere: !/home/test_remote!!i,!^!/home/test_restore!
Replace: Always
FileSet: test_full
Backup Client: bacula-fd
Restore Client: bacula-fd
Storage: test_storage
When: 2017-08-09 14:36:19
Catalog: CatalogDB
Priority: 10
Plugin Options:
OK to run? (yes/mod/no): yes
Job queued. JobId=32
KONIEC

Zaczynam się zastanawiać, czy w momencie braku zmian w fileset'cie dla backup'ów przyrostowych, director sprawdzając czy poprzedni wolumin miał cokolwiek (czy były nowe pliki) i jeśli nie to go używa na poczet bieżącej pracy, odznaczając w catalog'u że poprzedni job będzie uwzględniać tylko wcześniejsze woluminy? Niee, pomocy smiling smiley
Re: Niechciane nadpisywanie volumenów 09 sie 2017 - 15:04:48

Send PM

Hej, zadania 21 i 22 nie zostały zapisane na wolumenie bo niczego nie backupowały. Nie biorą także udziału w odtwarzaniu, bo nie wnoszą zmian do historii danych. Technicznie nie jest prawdą że "przeczyszczony" został wolumen z zadaniem - tam tego zadania nie było. Zadania o zerowej wielkości trafiają tylko do bazy katalogowej. "Przeczyszczony" został wolumen pusty.

> Zaczynam się zastanawiać, czy w momencie braku zmian w fileset'cie dla backup'ów przyrostowych
Generalnie Bacula rozróżnia coś takiego jak zmiany w FileSecie i zmiany danych dla zadania poziomu Differential czy Incremental. Nie powinno się tego mieszać, bo może prowadzić to do sporych nieporozumień. To tylko tak na marginesie.

Aby zrozumieć o co chodzi podam przykład:
- FileSet nie operuje pojęciem poziomu backupu (Full, Incr, Diff) i nie ma z nim nic wspólnego
- Parametr "IgnoreFileSetChanges" reguluje sprawę zmian FileSetu wymuszając (lub nie) aktualizację poziomu zadania z Incr/Diff do Full

--
Profesjonalne usługi Bacula: [www.bacula.com.pl]
Przykro nam, ale tylko zarejestrowane osoby mogą pisać na tym forum.

Kliknij żeby zalogować