SQL/MP Reference Manual

HP NonStop SQL/MP Reference Manual523352-013
M-16
Considerations-MODIFY CATALOG with REPLACE
VOLUME
However, if the volume name where the catalog exists has not been modified at the
time of executing MODIFY DICTIONARY command, then consider executing
MODIFY CATALOG with REPLACE VOLUME command first followed by MODIFY
LABEL with REPLACE VOLUME.
For example, if a CATALOG exists on $DATA00.CATVOL and the volume name
has been changed to $NEW00, the file labels of the catalog tables and indexes
retain the CATALOG name field as $DATA00. Running the MODIFY CATALOG
with REPLACE VOLUME command on these catalog tables and indexes fails
because it tries to identify the catalog $DATA00.CATVOL for updating certain
records in indexes on catalog tables such as IXINDE01. Therefore, the update fails
because the $DATA00 name field has changed to $NEW00. Hence consider
running the MODIFY LABEL with REPLACE VOLUME command on these catalog
objects such that the file labels are updated with the new catalog name. This can
be followed by the MODIFY CATALOG with REPLACE VOLUME command.
The MODIFY CATALOG with REPLACE VOLUME command locks one catalog
table at a time. The file labels of the catalog tables are not locked. Do not request
DDL or update operations until the volume names are modified, including
operations on partitions and on dependent objects on remote nodes.
The MODIFY DICTIONARY utility does not handle the following:
Remote nodes. If you specify a remote file name or catalog name, the MODIFY
command reports a nonfatal error. Therefore, each node with dependent
objects or partitioned objects must have a version of NonStop SQL/MP that
supports MODIFY CATALOG commands.
User-defined SQL object files. For example, the MODIFY CATALOG with
REPLACE VOLUME command does not modify a volume name stored in a
column of a user-defined table.
Names stored in SQL object program files. SQL object programs can refer to a
SQL object by using either a DEFINE or the Guardian name of the object. If
DEFINEs are used, both the DEFINE name and the associated Guardian
name of the SQL object are stored in the object program file-not in the file
label. If Guardian names are used, the Guardian names are stored in the
object program file in internal network form.
Dependent objects. The MODIFY CATALOG with REPLACE VOLUME
command does not modify information about dependent objects that reside in
other catalogs unless the other catalogs are specified. You must be aware of
how the database is distributed. Document the MODIFY commands that need
to be run, the nodes they need to be run on, before they are used. Prepare
scripts that run the necessary MODIFY commands. When you add a new
dependent object to the database, update the scripts. While the node is in a
consistent state, you can use the DISPLAY USE OF command to locate
dependent objects. After MODIFY commands are run, use the VERIFY utility to
verify that the database is in a consistent state.