Dictionary Synchronization Best Practices

Following are recommendations for effective use of the dictionary synchronization feature.

Limit the synchronization scope specification to core application schemas

For best performance and the most efficient script, limit the scope specification to schemas that contain the core application (or subsystem) objects. Allow Synchronize to identify and include objects upon which these core objects depend, such as users, roles, and objects in other schemas. The best way to select schemas is to identify those you need and include them in the scope specification, rather than excluding schemas that you do not need.

Synchronize feature identifies dependencies on schema objects that are outside the scope specification, but does not automatically include them in the synchronization. This means that schema objects upon which in-scope objects depend must already be in the destination database.

Users and Roles cannot be explicitly included in the synchronization scope specification

Users and roles are included as needed based on the the schema objects that are in the scope specification.

Make sure your source includes all the definitions needed

In order for the auto-inclusion mechanism to be effective, it must have access to the definitions of all objects that might be needed. If the source is a database, this is not a problem, since the database contains a complete set of definitions. If the source is a baseline, it must contain at least all the objects selected by the synchronization scope specification, and it also needs to include all objects that may be auto-included during dependency analysis. If Synchronize cannot find a needed object in the baseline version, it will not be able to generate a valid script and will put an ERROR-level message in the impact report. It cannot look outside the baseline version.

In practical terms, this means that the source baseline scope specification must be as broad as possible, in contrast to the synchronization scope specification, which must be as narrow as possible.

For baseline scope specifications, include tablespaces unless your synchronization ignores them. When capturing a baseline that will be used as the synchronization source, identify schemas not to capture rather than schemas to capture, to ensure that necessary schemas are not overlooked. Include all schema object types even if you don't think you need to.

Also, include users, roles, and grants.

Related Topics

About Dictionary Synchronizations

Dictionary Synchronization Features

Enterprise Manager Information Roadmap