Limits to using the Extraction utility

While the Extraction utility is the recommended way of creating and synchronizing remote databases from a consolidated databases, there are some circumstances where it cannot be used, and you must synchronize remote databases manually. This section describes some of those cases.

  • Additional tables at the remote database   Remote databases can have tables not present at their consolidated database as long as these tables do not take part in replication. Of course, the Extraction utility cannot extract such tables from a consolidated database.

  • Extracting procedures and views   By default, the Extraction utility extracts all stored procedures and views from the database. While some of these views and procedures are likely to be required at the remote site, others may not be required—they may refer only to parts of the database that are not included in the remote site.

    After running the Extraction utility, you should edit the reload script and remove unnecessary views and procedures.

  • Using the Extraction utility in multi-tiered setups   To understand the role of the Extraction utility in multi-tiered arrangements, consider a three-tiered SQL Remote setup.

    This setup is illustrated in the following diagram.

    A three-tiered setup. The middle tier databases act as both remote and consolidated databases.

    From the consolidated database at the top level, you can use the Extraction utility to create the second-level databases. You can then add remote users to these second-level databases, and use the Extraction utility from each second-level database to create the remote databases. However, if you have to re-extract the second-level databases from the top-level consolidated database, you will delete the remote users that were created, along with their subscriptions and permissions, and will have to rebuild those users. The exception is if you resynchronize data only, in which case you can use the Extraction utility to replace the data in the database, without replacing the schema.