NonStop SQL/MP Reference Manual

Table Of Contents
NonStop SQL/MP Reference Manual142115
M-17
Considerations—MODIFY LABEL
MODIFY LABEL locks one file label at a time. The file itself is not locked. There is
nothing to prevent the user from accessing a partially modified data dictionary. The
user should refrain from using the database, including partitions and dependent
objects on remote nodes, until the node numbers have been modified.
The MODIFY DICTIONARY utility does not handle the following:
°
Remote nodes. If you specify a remote file name, the MODIFY LABEL
command reports a nonfatal error. Each node with dependent objects or
partitioned objects must have a version of NonStop SQL/MP that supports
MODIFY LABEL commands.
°
User-defined SQL object files. For example, MODIFY LABEL does not modify
a node number stored in a column of a user-defined table.
°
Node numbers stored in SQL object program files.
°
Node numbers in Enscribe file labels. In Enscribe file labels, local file names
are stored as local names and thus do not contain a node number. However, a
reference to an alternate key file or a partition file does include a node number if
the alternate key file or partition file is stored on a different node.
If a disk containing an alternate key file or a partition file is moved to a different
node, the FUP ALTER command can be used to change the Enscribe file label
that references the file that moved. Note that the changes must be made to the
Enscribe file labels that point to the disk that moved, not to the alternate key file
label or partition file label that resides on the disk that moved.
°
Dependent objects. Node numbers in the file labels of dependent objects are not
modified unless the dependent object is specified in the MODIFY LABEL
command.
For example, suppose a table T1 resides on the \SYS1.$DB1.OBJECTS
subvolume and is registered in the \SYS1.$DB1.CAT catalog, and its dependent
index I1 resides on the \SYS2.$DBS.OBJECTS subvolume and is registered in
the \SYS2.$DBS.CAT catalog. Suppose the $DBS disk is moved from \SYS2 to
\SYS1. The database is left in an inconsistent state if only the following
commands are executed:
>> MODIFY LABEL $DBS.*.*
+> REPLACE NODENUMBER \SYS2 ($DBS) WITH \SYS1;
>> MODIFY CATALOG $DBS.CAT
+> REPLACE NODENAME \SYS2 ($DBS) WITH \SYS1;
One example of an inconsistency that will exist is that the
\SYS1.$DB1.CAT.USAGES table will indicate that the USINGOBJNAME of
the index is \SYS2.$DBS.OBJECTS.I1, even though $DBS is now on \SYS1.
°
Partitioned objects. Node numbers in the file labels of partitions of tables and
indexes are not modified unless those partitions are specified in the MODIFY
LABEL command.
For a partitioned SQL object, each volume that contains a partition of the object
must be specified separately. MODIFY LABEL does not automatically modify
information about all partitions of a partitioned object.