Clean up after Data Protector IDB restore

IDB restore with Data Protector 8 and later is really straight forward. It allows a much more granular recovery than in previous versions, since it’s done using a fully featured module instead of a file system hot-backup. You’re able to restore the IDB (PostgreSQL database) including log file recovery, DCBF files and configuration files individually or all together in a one-step process.

To be able to recovery, you need a valid backup first. Regular IDB backups are strongly recommended and can be created at any given time without interrupting backup operation.

On a Linux Cell Manager the Internal Database is located in /var/opt/omni/server/db80. For this example I will restore the database to /var/opt/omni/server/db80_restore since it cannot be overwritten and all commands I’ll use later will refer to this path. If you need to adjust that, change the commands accordingly or make the changes manually using a text editor of your choice.

Once the restore has been done, the Cell Manager will be up and operational. Just reconnect the GUI, since the IDB was switched during the process. Now it’s time to check if the restored version of the backup suits your needs. If everything is fine, we can start our clean up.

Please note: The clean up is disruptive to the service (we need to bring down Data Protector services) and should be scheduled in a maintenance window. It is not required for operation after a recovery, but I recommend it. It removes stale files and directories from file system and make directory structure look like before the restore. It can be done immediately or weeks after the restore. Create a tarball of /etc/opt/omni and /var/opt/omni to allow fail-back.

  • Stop the services and check restored directory structure
[root@linux ~]# omnisv stop
Cell Server services successfully stopped.

[root@linux ~]# ls -l /var/opt/omni/server
drwxr-xr-x 5 hpdp hpdp 4096 May 9 12:44 AppServer
drwxr-xr-x 19 root sys 4096 May 10 10:52 db80
drwxrwxrwx 5 root root 4096 May 10 10:49 db80_restore
drwxr-xr-x 4 root sys 4096 Mar 17 18:21 export
drwxr-xr-x 4 root sys 4096 Mar 17 18:21 import
drwxr-xr-x 4 root sys 4096 May 10 10:48 log
drwxr-xr-x 2 root sys 4096 Mar 17 18:21 sessions

[root@linux ~]# ls -l /var/opt/omni/server/db80_restore
drwx------ 3 hpdp hpdp 4096 May 10 10:49 idb
drwx------ 3 hpdp hpdp 4096 May 10 10:49 jce
drwx------ 15 hpdp hpdp 4096 May 10 10:56 pg
  • Move the restored database in the target directory and adjust symlinks. Please note: the name of the symlinks might vary on your Cell Manager.
[root@linux ~]# rm -rf /var/opt/omni/server/db80/idb
[root@linux ~]# rm -rf /var/opt/omni/server/db80/jce
[root@linux ~]# rm -rf /var/opt/omni/server/db80/pg

[root@linux ~]# mv /var/opt/omni/server/db80_restore/* /var/opt/omni/server/db80/

[root@linux ~]# ls -l /var/opt/omni/server/db80/pg/pg_tblspc
lrwxrwxrwx 1 hpdp hpdp 37 May 10 10:49 16387 -> /var/opt/omni/server/db80_restore/idb
lrwxrwxrwx 1 hpdp hpdp 37 May 10 10:49 16445 -> /var/opt/omni/server/db80_restore/jce

[root@linux ~]# ln -sf /var/opt/omni/server/db80/idb /var/opt/omni/server/db80/pg/pg_tblspc/16387
[root@linux ~]# ln -sf /var/opt/omni/server/db80/jce /var/opt/omni/server/db80/pg/pg_tblspc/16445
  • Update configuration files accordingly. Please note: more complex changes should be done using a text editor
[root@linux ~]# perl -p -i -e 's/db80_restore/db80/g' /var/opt/omni/server/db80/pg/postgresql.conf
[root@linux ~]# perl -p -i -e 's/db80_restore/db80/g' /var/opt/omni/server/db80/pg/postmaster.opts
[root@linux ~]# perl -p -i -e 's/db80_restore/db80/g' /etc/opt/omni/server/idb/idb.config
[root@linux ~]# perl -p -i -e 's/db80_restore/db80/g' /etc/init.d/hpdp-idb
  • Additional clean up, depending on your configuration
[root@linux ~]# rm -rf /var/opt/omni/server/db80_restore
[root@linux ~]# rm -rf /var/opt/omni/server/db80/msg_*
[root@linux ~]# rm -rf /var/opt/omni/server/db80/meta_*
[root@linux ~]# rm -rf /var/opt/omni/server/log/auditing_*
  • Start the services and do basic verification
[root@linux ~]# omnisv start -idb_only
The Internal database services successfully started.

[root@linux ~]# omnisv status
    ProcName      Status  [PID]
    crs         : Down
    mmd         : Down
    kms         : Down
    hpdp-idb    : Active  [31686]
    hpdp-idb-cp : Active  [31707]
    hpdp-as     : Down
    omnitrig    : Down
    Sending of traps disabled.
Status: At least one of the Cell Server processes/services is not running.

[root@linux ~]# grep PGSUPERUSER /etc/opt/omni/server/idb/idb.config
[root@linux ~]# grep PGPORT /etc/opt/omni/server/idb/idb.config

[root@linux ~]# su - hpdp
[hpdp@linux ~]$ /opt/omni/idb/bin/psql -U hpdp -h /var/opt/omni/tmp -p 7112 postgres

postgres=# SELECT spcname, spclocation FROM pg_tablespace;
  spcname   |          spclocation
 pg_default |
 pg_global  |
 hpdpidb    | /var/opt/omni/server/db80_restore/idb
 hpjce      | /var/opt/omni/server/db80_restore/jce
(4 rows)

postgres=# UPDATE pg_tablespace SET spclocation = '/var/opt/omni/server/db80/idb' where spcname='hpdpidb';
postgres=# UPDATE pg_tablespace SET spclocation = '/var/opt/omni/server/db80/jce' where spcname='hpjce';

postgres=# \q
[hpdp@linux ~]$ exit

[root@linux ~]# omnisv start
Cell Server services successfully started.

[root@linux ~]# omnidbcheck -extended
Check Level             Mode                    Status
Database connection     -connection             OK
Schema consistency      -schema_consistency     OK
Datafiles consistency   -verify_db_files        OK
Database consistency    -database_consistency   OK
Media consistency       -media_consistency      OK
SIBF(readability)       -sibf                   OK
DCBF(presence and size) -bf                     OK
OMNIDC(consistency)     -dc                     OK

[root@linux ~]# omnib -idb_list LINUX_IDB -barmode full


[Normal] From: "LINUX_IDB" Time: 05/10/2014 12:44:16 PM
OB2BAR application on "" successfully started.

[Normal] From: "DPIDB" Time: 05/10/2014 12:44:16 PM
Checking the Internal Database consistency

[Normal] From: "DPIDB" Time: 05/10/2014 12:44:17 PM
Check of the Internal Database consistency succeeded

[Normal] From: "DPIDB" Time: 05/10/2014 12:44:17 PM
Putting the Internal database into the backup mode finished

Leave a Reply