quiesce database hold for external dump signifies your intent to make external copies of your databases during the quiescent state. Because these external copies are made after you issue quiesce database hold, the database is transactionally consistent because you are assured that no writes occurred during the interval between the quiesce database hold and the quiesce database release, and recovery can be run in the same manner as start-up recovery. This process is described in Figure 11-5.
If the environment does not have unlogged updates and does not include a dump tran with truncate_only, you might load D1, T1, T2, and T3 in turn, bypassing any quiesce database...hold commands. However, if an unlogged operation (such as a select into shown in Figure 11-5) occurs after the dump transaction that produces T1, dump transaction to archive is no longer allowed.
Using the quiesce database hold for external dump clause addresses this problem by clearing the status bits that prevent the next dump transaction to archive and changing the sequence number of the external copy to create a foundation for a load sequence. However, if there have been no unlogged writes, the sequence number is not incremented.
With or without the for external dump clause, you can make external copies of the databases. However, to apply subsequent transaction dumps from the primary to the secondary servers, you must include the for external dump clause, as shown:
quiesce database tag_name hold db_name [, db_name] ... [for external dump]
For example:
quiesce database pubs_tag hold pubs2 for external dump
Assuming the database mappings have not changed since the primary instance of the database was initiated, the steps for making an external dump are for a single database include:
Issue the quiesce database hold for external dump command:
quiesce database pubs_tag hold pubs2 for external dump
Make an external copy of the database using the method appropriate for your site.
Issue quiesce database tag_name release:
quiesce database pubs_tag release
WARNING! Clearing the status bits and updating the sequence number enables you to perform a dump transaction whether or not you actually make an external copy after you issue quiesce database. Adaptive Server has no way of knowing whether or not you have made an external copy during the time between quiesce database... hold for external dump and quiesce database... release. If you use the quiesce database hold for external dump command to effect a transient write protection rather than to actually perform a copy that can serve as the foundation for a new dump sequence, and your application includes occasional unlogged writes, Adaptive Server allows you to create transaction log dumps that cannot be used. dump transaction to archive_device succeeds, but load transaction rejects these archives as being out of sequence.