Hello everyone ! Any ideas for solving this problem? I'm stuck here...
Thanks a lot for your help, Best, Sam Le ven. 6 déc. 2024 à 12:38, Samuel Zaslavsky <s...@w4tch.tv> a écrit : > Hello all, > > Sorry for this late reply. (According to Murphy's law, our Bacula server > failed, and it took some time to figure out that the SAS card was dead, and > get another one ...) > > I did some tests, and there's something new : > In fact, the fileset seems to be OK, and the Incremental "could" resume... > > If I do an estimate without accurate, I get around 18K files / 3To , which > looks like "OK" for incremental : > > *estimate accurate=no level=incremental job=BackupARCHIVES > Using Catalog "MyCatalog" > Connecting to Client lto8-fd at localhost:9102 > 2000 OK estimate files=17,949 bytes=3,465,825,854,672 > > But with accurate=yes , I get 530K files / 23To, which is (almost ? see > below) a FULL backup : > > *estimate accurate=yes level=incremental job=BackupARCHIVES > Using Catalog "MyCatalog" > Connecting to Client lto8-fd at localhost:9102 > 2000 OK estimate files=530,779 bytes=23,005,947,679,372 > > So I have tried to estimate my job with acurate=true and several options > for accurate in the fileset : > > FileSet { > Name = "ARCHIVES" > Ignore FileSet Changes=yes > Include { > Options { > signature=MD5 > *#I have tried many accurate options here : mcso5, mso5, > so5,M,m,o5,sm,s, or nothing (line commented)* > accurate=s > mtimeonly=yes > #Verify = pin5 > } > File = /path/to/ARCHIVES > } > > Exclude { > File = "/path/to/ARCHIVES/#recycle" > } > } > > But all my attempts with Job accurate=yes give me almost the same result - > but slightly different sometimes ( could be 531,057 files, or 530,719 > or 530,779 files, depending on the accurate option chosen...) > > As I understand it, accurate=s in the Fileset definition should tell > Bacula that a file with "same path, same size" shouldn't be backed up > again... > But this isn't the case and my understanding is clearly wrong... > And as I understand it also, accurate=no would lead, in case of restore, > to restore even suppressed and moved files, which is not what I want. > > So I am stuck : resume incremental backup without accurate option, or > restart a full backup with accurate option. Or understand better things ... > :) > Can anyone help me there ? > > Thanks a lot ! > > Sam > > > Le mar. 12 nov. 2024 à 17:18, Radosław Korzeniewski < > rados...@korzeniewski.net> a écrit : > >> Hello, >> >> wt., 12 lis 2024 o 12:00 Samuel Zaslavsky <s...@w4tch.tv> napisał(a): >> >>> So, precisely, how does Bacula "decides" a fileset is different from >>> another one ? >>> >> >> Bacula is checking the fileset changes based on a fileset content. >> >> >>> Where is this information stored in the database ? >>> >> >> It is a fileset table. >> >> >>> How could I trick bacula to believe that all previous jobs have been >>> made with the new fileset : This would be OK for me ! >>> My idea was that it would be using the fileset.md5 field (or createtime >>> ?) >>> >> >> From what I know Bacula is checking the md5 column for this purpose. So, >> if your new fileset md5 will be the same of which is already saved then >> Bacula won't have any traces it is a different fileset. >> >> >>> >>> So, a few related questions : When will bacula add another entry in the >>> fileset database table ? >>> >> >> If your current configuration includes a selected fileset and md5 does >> not match the one saved in the database then Bacula will create a new entry. >> >> >>> It seems it's not when doing an estimate... >>> So, should I start ( and abort quickly) a dummy job using the "new" >>> fileset, to see the "new" fileset in the database ? And then try to trick >>> Bacula into thinking the old one is the new one ? >>> >> >> Yes, it sounds good to me. >> >> >>> If this is a pertinent approach, how exactly do that ? >>> For example, where in the database is the information that a "file" >>> belongs to some files set ? >>> >> >> Database relation. >> bacula=# \d file >> Table "public.file" >> Column | Type | Collation | Nullable | Default >> >> >> -----------+----------+-----------+----------+-------------------------------------- >> fileid | bigint | | not null | >> nextval('file_fileid_seq'::regclass) >> jobid | integer | | not null | >> ... >> bacula=# \d job >> Table "public.job" >> Column | Type | Collation | Nullable | >> Default >> >> -------------------+-----------------------------+-----------+----------+------------------------------------ >> jobid | integer | | not null | >> nextval('job_jobid_seq'::regclass) >> filesetid | integer | | | >> 0 >> ... >> bacula=# \d fileset >> Table "public.fileset" >> Column | Type | Collation | Nullable | >> Default >> >> ------------+-----------------------------+-----------+----------+-------------------------------------------- >> filesetid | integer | | not null | >> nextval('fileset_filesetid_seq'::regclass) >> >> Is it in the file.lstat column ? If yes, how is it "encoded" here ? >>> >> >> This column is a "direct" serialisation of lstat(2), struct stat {}; >> buffer. It is (to some extent) OS dependent. >> >> >>> >>> Basically, I need to understand how the relationship between fileset >>> conf <--> fileset in database <--> files in fileset is handled... >>> >>> >> When Bacula detects a fileset change, because the md5 is different then >> the one saved in the database then it creates a new entry. Then a job will >> get a new filesetid as a reference for job entry in the database and all >> files saved will get a jobid reference. >> >> >>> Or maybe I am completely wrong here ? >>> >> >> You are just asking questions. You can't be wrong asking questions. >> >> >>> The filesystem to be backed up is mounted as NFS share on the bacula >>> host. >>> >> >> Any chance you can access this filesystem directly without mounting it on >> the remote host? It would be better. >> >> >>> Is it possible that the reboot/remount changed a key parameter for >>> Bacula ? >>> >> >> Well. Let's assume your first mount point is: /mnt/data. Then you reboot >> and the new mount point is /mnt/data1. Then it makes a huge difference for >> Bacula, for sure. >> >> >>> So that Bacula recognizes well the filesystem as the old one, >>> >> >> It doesn't matter. What matters are some metadata for the file, i.e. >> modify time. You can configure what metadata should be verified in this >> case. But you can't force Bacula to not backup a file which does not exist >> at the previous backup jobs. >> >> >>> but doesn't recognize any file anymore ? ( Remember that fileset name, >>> and all paths in the fileset configuration are the same as before ! ) >>> >> >> I'm pretty sure your fileset content is different then the one used >> before, so Bacula wants to create a full backup. >> >> best regards >> -- >> Radosław Korzeniewski >> rados...@korzeniewski.net >> >
_______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users