What Is the *.^01 File for My PSQL Btrieve Table?

Q - I see in my data folder, for my NOTE table, the corresponding data file is NOTE.BTR.  But I also see another file NOTE.^01. See sample screen below. What is that file?  Do I need to back up the NOTE.^01 file?

A -  The PSQL engine can create a Btrieve table up to 64GB. By default, the 64GB Btrieve table will be divided up to 32 segments.  In your example, for the NOTE table, when it becomes 64GB in size, then its 32 segments would be as follows:
  • NOTE.^01
  • NOTE.^02
  • NOTE.^03
  • ....
  • NOTE.^32
These 32 files work together as a single table with each segment at the maximum size of 2 GB.  In your case, your NOTE.BTR file recently breaks the 2 GB barrier. Therefore, the PSQL engine starts to create the NOTE.^01 file.  When you back up, or copy the NOTE.BTR file, you must also back up or copy the NOTE.^?? files.

Bypass PSQL Table 2 GB Segment Limitation
Some people find it undesirable for PSQL to break down a table into multiple files, which makes it more difficult to back up and copy PSQL files. You may by pass the 2 GB segment limitation by bringing PSQL Control Center on the server console, right clicking on your server note and choosing Property.  Then highlight “Performance tuning,” uncheck the “Limit Segment Size to 2GB,” and choose to “Apply”. See sample screen below.

This action will stop and start the PSQL services. Therefore, only make this change when all your Elliott users are out of the system, like during the evening or weekend. If your PSQL services did not restart for some reason, then manually stop and start PSQL services for both transaction and relational engines. In a worst-case scenario, you may need to reboot your server.

After making this change, all new files that exceed 2 GB will not generate new *.^01 segment files.  However, the system does not automatically consolidate your existing *.BTR and *.^01 files.  To do that, you will need to either rebuild your NOTE.BTR file as in the above example, or use the defragmenter utility available in PSQL 12.  

The difference between Rebuild and Defragmenter is that when you perform Rebuild, no one can use the table you are rebuilding.  The Defragmenter utility allows other users to continue  using the table when the Defragmenter is rebuilding (defragmenting) the file. This is one of the main advantages of PSQL 12 over PSQL 11.  This is especially important for users that have websites that need to access Elliott data on the 24x7 basis.

Keep in mind that the "Limit Segment Size to 2GB" flag is checked by default when you install the PSQL engine.  Generally speaking, when you install the PSQL engine, you can leave everything else at default settings, except we do suggest that you un-check this flag.

Feedback and Knowledge Base