I am trying to back up my CA Datacom database without stopping my application, so I used SEQ=PHYSICAL. However, the job still failed with a RC 46(1) just as when I tried to use SEQ=NATIVE.
How can I back up my data without stopping my application?
There are two types of backups that can be created with CA Datacom DBUTLTY - backups where all the data is in Native Key sequence (SEQ=NATIVE), and where the data is taken directly from the disk device in no particular order (SEQ=PHYSICAL).
Generally, a SEQ=PHYSICAL backup is taken when a "hot" or "dirty" backup is desired; i.e., the data is not at a syncpoint and the application is not at a steady state where all the tables are synchronized. This type of backup is also the only kind that can be taken without stopping the application and closing the database in the Multi-User Facility (called MUF). However, depending on the options selected for the BACKUP command, it is possible that the SEQ=PHYSICAL backup will require exclusive control of the database, just as if SEQ=NATIVE was specified.
If you specify the option UPDATE=YES, this will prevent the job from running with the database open. According to the CA Datacom/DB DBUTLTY Reference Guide:
Indicates whether the database can be open for update at the start or during the backup.
Note: Only valid if SEQ=PHYSICAL.
NO - Allows tables in the database to be updated and allows the INIT or LOAD functions on the data area during the backup.
YES - Specifies that CA Datacom/DB determines that the data area is loaded with a loaded Index and that the database is not open for update. During the backup, the database may not be opened for update.
Therefore, in order to use SEQ=PHYSICAL while the database is open and being used by the application, it is necessary to specify UPDATE=NO on the BACKUP command. This will also apply to the DBUTLTY EXTRACT command with SEQ=PHYSICAL.
As a side note, in order to have the most current data available for the BACKUP, since SEQ=PHYSICAL reads directly from the disk copy of the file and there could be updates in the buffers, it is desirable to flush the buffers to disk before running the BACKUP command. There are several ways to do this, but one that we have found to be least disruptive is to use the ACCESS DBID=###,STATUS=WRITE command just prior to the BACKUP command.
For more information about the BACKUP, EXTRACT and ACCESS commands, please refer to the CA Datacom/DB DBUTLTY Reference Guide.
As always, please contact CA Technologies support for CA Datacom if you have further questions.