Does the touch file "NOSHM" really disable the use of shared memory during backup and restore operations?
In the following discussion, the process is the same for a all storage unit types (tape, DSU, DSSU, OST, and NDMP remote), all client types (Standard, Windows, DB2, Oracle, etc) where the backup images passes through the media server host. The discussion applies to restore as well as a backup. In the case of a restore, the data flow is from the storage device to the client restore process.
The file causes a local backup/restore to run in the same manner a remote backup/restore. A local operation is one where the client is also the media server. A remote operation is where the data must travel across a network connection via a Transmission Control Protocol (TCP) socket between the client host and the media server host.
A local backup has a client process which reads the data to be backed up and writes the data directly into the shared memory data buffers. The bptm process then reads the data from the shared memory data buffers and writes the data to the storage unit.
A remote backup is one where the client process writes to a TCP socket instead of the shared memory data buffers. A bptm child process on the media server reads from the socket and then writes the data into the shared memory data buffers. A bptm parent process then reads the data from the shared memory data buffers and writes the data to tape.
For a restore operation, the direction of the data path changes. The bptm parent process reads from the storage unit and fills the shared memory data buffers. Then either bptm child (remote operation) or the local client process read the shared memory data buffers.
The NOSHM file forces the creation of a bptm child process during a local operation even when the client and media server are the same host. However, in both a local and a remote operations, shared memory will still be used to buffer the data between client process and storage unit.
The touch file is only valid when applied to a system where the backup client host is also the storage unit host for that backup.
The location of the file is either <install_path>\veritas\netbackup\ for Windows, or /usr/openv/netbackup/ for UNIX.
The touch file name is NOSHM with no extension.
Each time an operation is started, NetBackup (tm) checks for the existence of this file, so no services or daemons need to be restarted when adding or removing this file.