Hi,
I am sure I put feature requests in for these but I cannot find them!
The backup effectively creates temporary tables with partitions in each dbspace to hold the before images of any pages written during a backup.
If you have multiple temporary dbspaces, one fills and the backup wants more space in tthat temp dbspaces then the backup fails.
My feature request was have it just write to a different temp partition if one of them cannot grow!
Also I did wonder if the before image is say a 16k page and your temp dbspaces are 2k then presumably it split the write up into 8 2k writes at some level internally. It would be best if it could include temporary dbspaces with different page sizes in DBSPACETEMP and it would prefer the dbspaces with page sizes which most closely matched the before image page size.
I added new ideas
https://ideas.ibm.com/ideas/INFX-I-606 - Allow temp tables and backup before images to handle temp dbspaces which fill up.
https://ideas.ibm.com/ideas/INFX-I-607 - Backups to use temp dbspaces with most closlely matching page size.
Regards,
David.
------------------------------
David Williams
------------------------------
Original Message:
Sent: Fri March 01, 2024 04:28 AM
From: Dennis Melnikov
Subject: What is dbsname BEFIMAGE?
Art,
The BEFIMAG tables are partitioned across all of the temp dbspaces so all temp space mentioned in DBSPACETEMP will be used
tmpdbs3 was the only tempspace occupied. If DBSPACETEMP is not set in environment, does onbar use the config parameter, or a random single tempdbs?
------------------------------
Sincerely,
Dennis
Original Message:
Sent: Thu February 29, 2024 06:22 AM
From: Art Kagel
Subject: What is dbsname BEFIMAGE?
Dennis:
Yes, during an archive, physical log pages associated with the dbspace(s) currently being archived are copied into a temp table for safety (since any checkpoint during the archive will clear out the physical log), that/those are the BEFIMAG temp tables. Once each dbspace archive has completed the contents of the associated BEFIMAG table is appended to the archive and deleted. During an ontape archive only one dbspace is archived at a time, but during a parallel onbar archive there may be several dbspaces being archived in parallel so there will be multiple BEFIMAG tables extent at any given time during the full archive. Yes, as well, if the temp dbspaces are not large enough the archive will fail. The BEFIMAG tables are partitioned across all of the temp dbspaces so all temp space mentioned in DBSPACETEMP will be used. Note that these tables are competing for temp space with any production temp tables as well.
For completness: This process of appending physical log records to the archive is the innovation that allowed Informix to be the first RDBMS that could be successfully archived while transactions were being actively processed. Before Informix OnLine v5.01 all RDBMS systems either had to be taken offline or had to be put into an "archive mode" that blocked transactions (similar to Informix's external backup procedure with onmode -c block/unblock) during an archive. The physical log records captured during the archiving of a dbspace and appended to the archive will overwrite any pages that were modified and flushed by checkpoints happening during the archive thereby restoring them to their consistent content as of the checkpoint that started the archive processing.
Art
------------------------------
Art S. Kagel, President and Principal Consultant
ASK Database Management Corp.
www.askdbmgt.com
Original Message:
Sent: Thu February 29, 2024 04:34 AM
From: Dennis Melnikov
Subject: What is dbsname BEFIMAGE?
Hi,
Informix Dynamic Server Version 11.70.FC5XE
During a Level-0 backup, two temporary tables, named `th_dbs01_1` and `th_dbs02_1`, appeared in one of our temporary dbspaces, `tmpdbs3`. The dbsname for these tables was marked as `BEFIMAGE`.
Once the backup of `dbs01` and `dbs02` was successfully completed, these temporary tables vanished, and the space they occupied was freed up.
From what I understand, these tables could be part of Informix's internal mechanism to ensure data consistency during the backup, possibly holding 'before images' of data changes that occur while the backup is in progress. This ensures that any changes made during the backup process can be accurately reflected, preserving the integrity of the backup.
However, this raises a question: What happens if there isn't enough space in the temporary dbspace for these tables? Would the backup fail, or does Informix have a way to handle such situations, ensuring the backup process completes successfully?
------------------------------
Sincerely,
Dennis
------------------------------