Kbase P3346: How to replace a variable length data extent with fixed extents?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  23/08/2010 |
|
Status: Verified
GOAL:
How to replace a non-fixed (variable length) data extent with a fixed extents?
GOAL:
How to remove the last variable extent and add additional fixed extents plus a new variable?
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
FIX:
There are two scenarios, either your variable length extent for the area is not used and is empty, or it has started to be filled.
In case the extent is still empty, perform the following:
1. Run "proutil <db> -C truncate bi" *** double-check that the non used extents remains unused after the truncate ***
2. Run "prostrct remove <db> d <storage_area>" to remove the none used fixed extent. (With version 8, this would be "prostrct remove <db> d")
3. Having an appropriate <db>.st file, run "prostrct add <db>" to ad the new extent(s)
In case the extent is currently being written to:
1. Having an appropriate <db>.st file, run "prostrct add <db>" to add the new extent(s). During "prostrct add <db>" we mark the last extent fixed and round it of to a multiple of 32K in size, it will be a fixed extent from this point on regardless of size. Before running "prostrct add", the last non-fixed extent must be at least 32K in length or else you will receive an error that the add operation failed.
WARNING: Adding a new extent while the variable length extent is near to 2GB might result in hitting the 2GB limit (this limit can be removed from version 9.1C with the "EnableLargeFiles" option of "proutil"). In this scenario, backing up the database and restoring into a new larger structure would be a better solution.