Consultor Eletrônico



Kbase P119506: What are the rules for adding extents offline to replicated databases?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   30/10/2008
Status: Verified

GOAL:

What are the rules for adding extents to replicated databases?

GOAL:

Can New Storage Areas be added to replication enabled database?

GOAL:

Can more bi extents be added to the target replication enabled database?

GOAL:

Can extents be added to existing Storage Areas in the replication baseline?

FACT(s) (Environment):

Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
Fathom Replication
OpenEdge Replication

FIX:

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.

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

Note1: this method is only valid if an Enterprise database license is in use and the filesystem/os supports largefiles.
Note2: In both the source and target database perspective, replication will break until the largefile support is enabled on both databases.

STEPS:

1.) 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 extents

In 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 Solution P125387, "What are the rules for adding extents online to replicated databases?"

STEPS:

1.) 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 accomodate 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:

- Both New Storage Areas and new Extents on existing Storage Areas can be added, however Storage Areas / Extents cannot be removed on the TARGET database when replication is enabled, as th.e before-image file needs to be truncated before removing extents.

- 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. Please refer to Solution P71887 below.

- 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.

- Although adding extents online has been introduced in 10.1A, at the time of writting, these do not apply to replication enabled TARGET databases. Adding extents online to a TARGET is available with OpenEdge 10.1B. Please refer to Solution P125387 below..