The method is essentially the same as that which would "normally" need to be taken without Fathom Replication in the picture. With Fathom/OpenEdge Replication however, there are two databases to consider.
For example, a situation may arise where the source database has crashed having exceeded the 2GB limit on the last extent in the given area. The source database may then re-start, because it is only /when/ updates are committed where we need to extend this last extent, and cannot, therefore crash again. Anything that 'happens' on the source database is replicated to the target database, this means that the corrective actions described below need to be performed on /both/ databases before they are re-started. Adding extents to the source database does not automatically add them to the target. Assuming that:
- The source database is still shut down, and
- The target database has the same database structure as the source database.
METHOD 1: Enable largefiles
- This method is only valid if an Enterprise database license is in use and the filesystem/os supports largefiles.
- In both the source and target database perspective, replication will break until the largefile support is enabled on both databases. Refer to Article How does proutil -C enablelargefiles affect replication?
STEPS: To enable LargeFiles on the source and target databases offline1.) Shut down the target database:
$ proshut target -by
2.) Enable largefiles on the database:
$ proutil source -C enablelargefiles
$ proutil target -C enablelargefiles
3.) Start the target database:
$ proserve target <..parameters..> -DBService replagent
4.) Start the source database:
$ proserve source <..parameters..> -DBService replserv
METHOD 2: Add extentsIn this case new extents need to be added to the databases in order to allow for further data expansion. Extents may be added to both source and target database using "PROSTRCT ADD" utilities while Replication is enabled. To do this, shut down both the Source and Target databases, create a .st file that add's the needed extents to both databases, run PROSTRCT ADD, and restart the databases as the Steps below outline. Please pay attention to the caveats listed below.
For adding extents ONLINE, please refer to Article
STEPS: To add database extents offline to the source and target databases1.) Shut down the target database:
$ proshut target -by
2.) Obtain the current structure from the control area of the SOURCE database:
$ prostrct list source source.st
3.) Create a new structure file "new.st" based on the "source.st" in Step 2 above to accommodate future growth in the Storage Area that has been affected by the 2GB limit. For more information on how to create structure files please refer to the Documentation below or contact your local Technical Support.
4.) Add the new extents to the target database:
$ prostrct add target new.st
5.) Add the new extents to the source database:
$ prostrct add source new.st
6.) Start the target database:
$ proserve target <..parameters..> -DBService replagent
7.) Start the source database:
$ proserve source <..parameters..> -DBService replserv
CAVEATS:
- Storage Areas / Extents cannot be removed on the TARGET database when replication is enabled, as the before-image file needs to first be truncated before removing extents and this is not allowed on target replication enabled databases.
- After-Image extents cannot be removed on either the source or the target replication enabled database while after-imaging is active (ie replication enabled). When adding ai extents, the sequence order needs to be preserved. Refer to Article 00021663, How to reorder ai extents after adding new ai extents to the database
- New before-image (bi) extents cannot be added to the target database, because by definition, the last bi extent on a database must be a variable extent. Since the variable BI extent first needs to removed to add additional bi extents, the operation will fail. It is therefore recommended to add more fixed bi extents to the target database than the source database when initialising the replication baseline in order to circumvent this situation.
- Although adding extents online has been introduced in 10.1A, adding extents online to a target replication enabled database is available from OpenEdge 10.1B. Please refer to Article What are the rules for adding extents online to replicated databases?