Document revision date: 30 March 2001

## OpenVMS System Manager's Manual

Previous | Contents | Index

## 27.8 Moving a Transaction Log

You may want to move a transaction log if:

- You want to place the transaction log on a faster disk
- You want to redistribute the work load on your disks

How to Perform This Task

Caution Follow all the steps carefully. Taking shortcuts can lead to data corruption.

1. Decide the location that you want to move the transaction log to, using the guidelines in Section 27.2.2. Remember that the disk must have enough contiguous space to hold the transaction log.
2. Log in to the node that the transaction log belongs to.
3. If you are in an OpenVMS Cluster, make sure that the disk you want to move the transaction log to is mounted clusterwide.
4. Decide which directory you want to move the transaction log to. You may want to create a new directory for the transaction log.
5. Find out which directory the transaction log is in, using LMCP's SHOW LOG command:

   `SHOW LOG SYSTEM$node.LM$JOURNAL`

   where node is the name of the node that the transaction log belongs to.

6. Rename the transaction log:

   `RENAME dirspecSYSTEM$node.LM$JOURNAL dirspecSYSTEM$node.LM$OLD`

   where:

   dirspec | is the full specification of the directory containing the transaction log.
   node | is the name of the node that the transaction log belongs to.

7. Can you stop all the software that uses DECdtm services without shutting down any nodes?

   Yes | Close the transaction log as follows:
   Step | Action
   --- | ---
   a. | Stop all the software that uses DECdtm services.
   b. | Close the transaction log using LMCP's CLOSE LOG command:
       $ RUN SYS$SYSTEM:LMCP

       LMCP> CLOSE LOG
   The CLOSE LOG command closes the transaction log and stops the DECdtm TP_SERVER process. The command fails if any software is using DECdtm services.
   c. | Did the CLOSE LOG command succeed?
   Yes | Restart the TP_SERVER process:
       $ @SYS$STARTUP:DECDTM$STARTUP.COM
   No | Wait for 30 seconds, then repeat steps 7b and 7c.
   No | Close the transaction log by rebooting the node. Log in to the node when it has rebooted.

8. Make sure that SYS$JOURNAL points to the directory that you want to move the log to. If SYS$JOURNAL does not point to this directory, redefine SYS$JOURNAL:

   `DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL dirspec[,...]`

   where dirspec is the full specification of a directory containing one or more transaction logs. List all the directories that will contain transaction logs after you have moved the transaction log. You can list the directories in any order.
   In an OpenVMS Cluster, use SYSMAN to redefine SYS$JOURNAL clusterwide.

9. If you redefined SYS$JOURNAL in step 8, edit the SYS$MANAGER:SYLOGICALS.COM command procedure to update the definition of SYS$JOURNAL.
   If you created node-specific versions of SYLOGICALS.COM, edit all the versions.
10. Move the transaction log, using LMCP's CONVERT LOG command:

    `CONVERT LOG old-dirspecSYSTEM$node.LM$OLD new-dirspecSYSTEM$node.LM$JOURNAL`

    where:

    old-dirspec | is the full specification of the directory that currently contains the transaction log.
    node | is the name of the node that the transaction log belongs to.
    new-dirspec | is the full specification of the directory that you are moving the transaction log to.

11. If you stopped the software that uses DECdtm services in step 7, restart the software.
12. Delete the old transaction log:

    `DELETE dirspecSYSTEM$node.LM$OLD;`

    where:

    dirspec | is the full specification of the directory containing the old transaction log.
    node | is the name of the node that the transaction log belongs to.

Example

This example shows how to move BLUE's transaction log. BLUE is in an OpenVMS Cluster. The cluster members and the locations of their transaction logs are as follows:

Node | Directory Containing Log
--- | ---
BLUE | DISK$LOG1:[LOGFILES]
RED | DISK$LOG2:[LOGFILES]

Neither node has a node--specific version of SYLOGICALS.COM.

Decide where you want to move BLUE's transaction log to. In this example, assume that you want to move it to DISK$LOG3:[LOGFILES].

Log in to node BLUE. Then mount the disk clusterwide, and create a new directory for the transaction log:

    $ MOUNT/CLUSTER/SYSTEM DUA3: LOG3
    $ CREATE/DIRECTORY DISK$LOG3:[LOGFILES]

Find out which directory BLUE's transaction log is in, then rename the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> SHOW LOG SYSTEM$BLUE.LM$JOURNAL
    Directory of DISK$LOG1:[LOGFILES]

    SYSTEM$BLUE.LM$JOURNAL;1

    Total of 1 file.
    LMCP> EXIT
    $ RENAME DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL -
    _$ DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD

Stop all software that uses DECdtm services. Then close the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CLOSE LOG
    Transaction log closed, TP_SERVER process stopped
    LMCP> EXIT

Restart the TP_SERVER process:

    $ @SYS$STARTUP:DECDTM$STARTUP.COM

Redefine SYS$JOURNAL:

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> SET ENVIRONMENT/CLUSTER
    SYSMAN> DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL -
    _SYSMAN> DISK$LOG2:[LOGFILES], DISK$LOG3:[LOGFILES]
    SYSMAN> EXIT

Edit the SYS$MANAGER:SYLOGICALS.COM command procedure to update the SYS$JOURNAL definition. Then move the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CONVERT LOG DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD -
    _LMCP> DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL
    Log file DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL;1 created.
    Log file DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD converted.
    LMCP> EXIT

Restart the software that uses DECdtm services. Then delete the old transaction log:

    $ DELETE DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$OLD;

## 27.9 Dismounting a Disk

Before you can dismount a disk, you must close any transaction logs on the disk.

This section describes how to dismount a disk that has transaction logs.

How to Perform This Task

1. Find out which transaction logs are on the disk you want to dismount, using LMCP's SHOW LOG command:

       $ RUN SYS$SYSTEM:LMCP
       LMCP> SHOW LOG

2. Stop all the software that uses DECdtm services, if you can do so without shutting down any nodes.
   If you cannot stop the software, reboot one or more nodes in step 3.
3. For each transaction log on the disk:
   1. Log in to the node that the transaction log belongs to.
   2. Rename the transaction log:

      `RENAME dirspecSYSTEM$node.LM$JOURNAL dirspecSYSTEM$node.LM$TEMP`

      where:

      dirspec | is the full specification of the directory containing the transaction log.
      node | is the name of the node that the transaction log belongs to.

   3. Did you stop all the software that uses DECdtm services in step 2?

      Yes | Close the transaction log as follows:
      Step | Action
      --- | ---
      1) | Close the transaction log using LMCP's CLOSE LOG command:
          $ RUN SYS$SYSTEM:LMCP

          LMCP> CLOSE LOG
      The CLOSE LOG command closes the transaction log, and stops the DECdtm TP_SERVER process. The command fails if any software is using DECdtm services.
      2) | Did the CLOSE LOG command succeed?
      Yes | Restart the TP_SERVER process:
          $ @SYS$STARTUP:DECDTM$STARTUP.COM
      No | Wait for 30 seconds, then repeat step 3c.
      No | Close the transaction log by rebooting the node. When the node has rebooted, log in.

4. Dismount the disk. For instructions on how to dismount a disk, see Section 9.9.
5. When you want to mount the disk again, follow these steps:
   1. Mount the disk. For instructions on how to mount a disk, see Section 9.5.
      If you are in a cluster, mount the disk clusterwide.
   2. Rename each transaction log on the disk:

      `RENAME dirspecSYSTEM$node.LM$TEMP dirspecSYSTEM$node.LM$JOURNAL`

      where:

      dirspec | is the full specification of the directory containing the transaction log.
      node | is the name of the node that the transaction log belongs to.

   3. If you stopped the software that uses DECdtm services, restart the software.

Example

This example shows how to dismount the disk DISK$LOG3.

Find out which transaction logs are on the disk:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> SHOW LOG
       .
       .
       .
    Directory of DISK$LOG3:[LOGFILES]

    SYSTEM$BLUE.LM$JOURNAL;1)

The only transaction log on DISK$LOG3 is node BLUE's transaction log.

Stop all the software that uses DECdtm services.

Log in to node BLUE. Then rename the transaction log:

    $ RENAME DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL -
    _$ DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$TEMP

Close the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CLOSE LOG
    Transaction log closed, TP_SERVER process stopped
    LMCP> EXIT

Restart the TP_SERVER process:

    $ @SYS$STARTUP:DECDTM$STARTUP.COM

Dismount the disk:

    $ DISMOUNT/CLUSTER DISK$LOG3:

When you want to mount the disk again, mount it clusterwide:

    $ MOUNT/CLUSTER/SYSTEM DUA3: LOG3

Rename BLUE's transaction log:

    $ RENAME DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$TEMP -
    _$ DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL

Restart the software that uses DECdtm services.

## 27.10 Adding a Node

For every node you add to an OpenVMS Cluster, you must create a new transaction log. This section describes how to create a transaction log for a new node.

How to Perform This Task

Before you perform this task, the new node must be configured into the cluster. For instructions on how to configure a node into a cluster, refer to OpenVMS Cluster Systems.

1. Decide the size and location of the new node's transaction log, using the guidelines in Section 27.2. Remember that the disk must have enough contiguous space to hold the log.
2. Make sure that the disk on which you want to create the transaction log is mounted clusterwide.
3. Decide which directory you want to create the new transaction log in. You may want to create a new directory for the transaction log.
4. Make sure that SYS$JOURNAL points to the directory in which you want to create the new node's transaction log. If SYS$JOURNAL does not point to this directory, use SYSMAN to redefine SYS$JOURNAL clusterwide:

   `DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL dirspec[,...]`

   where dirspec is the full specification of a directory containing one or more transaction logs. List all the directories that contain transaction logs, including the directory in which you want to create the new node's transaction log. You can list the directories in any order.

5. If you redefined SYS$JOURNAL in step 4, edit the SYS$MANAGER:SYLOGICALS.COM command procedure to update the SYS$JOURNAL definition.
   If you created node-specific versions of SYLOGICALS.COM, edit all the versions.
6. Create the transaction log, using LMCP's CREATE LOG command:

   `CREATE LOG [/SIZE=size] dirspecSYSTEM$node.LM$JOURNAL`

   where:

   size | is the size of the transaction log in blocks. By default, the size of the transaction log is 4000 blocks.
   dirspec | is the full specification of the directory in which you want to create the transaction log.
   node | is the name of the new node.

Example

This example shows how to create a transaction log for a new node, whose SCSNODE name is WHITE.

In this example, the cluster members and the locations of their transaction logs are as follows:

Node | Directory Containing Log
--- | ---
BLUE | DISK$LOG3:[LOGFILES]
RED | DISK$LOG2:[LOGFILES]

Neither node has a node--specific version of SYLOGICALS.COM.

Decide the size and location of WHITE's transaction log:

Node | Size of Log (in Blocks) | Disk
--- | --- | ---
WHITE | 5000 | DUA4

Mount the disk DUA4 clusterwide:

    $ MOUNT/CLUSTER/SYSTEM DUA4: LOG4

Create a directory for the transaction log:

    $ CREATE/DIRECTORY DISK$LOG4:[LOGFILES]

Redefine SYS$JOURNAL:

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> SET ENVIRONMENT/CLUSTER
    SYSMAN> DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL -
    _SYSMAN> DISK$LOG2:[LOGFILES], DISK$LOG3[LOGFILES], DISK$LOG4:[LOGFILES]
    SYSMAN> EXIT

Edit the SYS$STARTUP:SYLOGICALS command procedure to update the SYS$JOURNAL definition. Then create the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CREATE LOG/SIZE=5000 DISK$LOG4:[LOGFILES]SYSTEM$WHITE.LM$JOURNAL
    LMCP> EXIT

## 27.11 Removing a Node

This section describes how to remove a node if you are using DECdtm services.

How to Perform This Task

If you have a standalone machine, perform steps 1 to 8 only.

Caution Follow all the steps carefully. Taking shortcuts can lead to data corruption.

1. Log in to the node that you want to remove.
2. Stop all the software that uses DECdtm services.
3. Find out whether the node's transaction log contains any active transactions, using LMCP's DUMP/ACTIVE command:

   `DUMP/ACTIVE SYSTEM$node.LM$JOURNAL`

   where node is the name of the node that you want to remove.
   This command displays details of all the active transactions. The last line gives the total number of active transactions.

4. If the transaction log contains active transactions, follow these steps:
   1. Run recovery procedures for all software that uses DECdtm services.
   2. Find out if the node's transaction log still contains active transactions, using LMCP's DUMP/ACTIVE command.
   3. If the transaction log still contains active transactions, contact your Compaq support representative.
5. Redefine SYS$JOURNAL to exclude the directory that contains the transaction log of the node you want to remove, unless the directory contains other transaction logs.

   `DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL dirspec[,...]`

   where dirspec is the full specification of a directory containing one or more transaction logs. List all the directories that contain any transaction logs other than the transaction log of the node you are removing. You can list the directories in any order.
   In a cluster, use SYSMAN to redefine SYS$JOURNAL clusterwide.

6. If you redefined SYS$JOURNAL in step 5, edit the SYS$MANAGER:SYLOGICALS.COM command procedure to update the SYS$JOURNAL definition.
   If you created node-specific versions of SYLOGICALS.COM, edit all the versions.
7. Archive the transaction log.
8. Shut down the node.
9. Restart the software that uses DECdtm services.
10. Reconfigure the cluster to remove the node.
    For information about how to reconfigure a cluster, refer to OpenVMS Cluster Systems.

Example

This example shows how to remove the node BLUE. In this example, the cluster members and the locations of their transaction logs are as follows:

Node | Directory Containing Log
--- | ---
BLUE | DISK$LOG3:[LOGFILES]
RED | DISK$LOG2:[LOGFILES]
WHITE | DISK$LOG4:[LOGFILES]

None of the nodes has a node--specific version of the SYLOGICALS.COM command procedure.

Log in to node BLUE.

Stop all the software that uses DECdtm services. Then find out if BLUE's transaction log contains any active transactions:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> DUMP/ACTIVE SYSTEM$BLUE.LM$JOURNAL
    Dump of log file DISK$LOG3:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL
       .
       .
       .
    Total of 0 transactions active, 0 prepared and 0 committed.
    LMCP> EXIT

Redefine SYS$JOURNAL:

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> SET ENVIRONMENT/CLUSTER
    SYSMAN> DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL -
    _SYSMAN> DISK$LOG2:[LOGFILES], DISK$LOG4:[LOGFILES]
    SYSMAN> EXIT

Edit the SYS$MANAGER:SYLOGICALS.COM command procedure to update the SYS$JOURNAL definition.

Archive BLUE's transaction log. Then shut down node BLUE:

    $ @SYS$SYSTEM:SHUTDOWN.COM
       .
       .
       .
    Should an automatic system reboot be performed [NO]? NO

Restart the software that uses DECdtm services. Then reconfigure the cluster:

    $ @SYS$STARTUP:CLUSTER_CONFIG.COM
           Cluster Configuration Procedure

                1. ADD a node to a cluster.
                2. REMOVE a node from the cluster.
                3. CHANGE a cluster member's characteristics.
                4. CREATE a duplicate system disk for BLUE.

        Enter choice [1]: 2
       .
       .
       .
     Updating network database...
     The configuration procedure has completed successfully.

Previous | Next | Contents | Index

| privacy and legal statement |
6017PRO_103.HTML