Database Backup Formatter Tool User Guide
DBN

Contents

1Overview
1.1Installation
1.2Backup Path
1.3Backup Directory

2

BackupFormatter Command
2.1list_classes
2.2dump_class
2.3list_instances
2.4dump_instance
2.5dump_mdp_instances
2.6dump_class_instances

3

DBN Backup Formatter Tool Format
3.1Primitive Types
3.2External Types
3.3Composed Values

Reference List

1   Overview

DBN in-memory database objects can be backed up to disk through DBN backup. The DBN Backup Formatter Tool exports information from a DBN backup (binary format) and prints it in a human readable format. This User Guide describes how to use the Backup Formatter Tool functionality.

DBN backups are incorporated into BRF backups. For information on how to create and export a BRF backup, refer to BRF-C Management Guide, Reference [1].

1.1   Installation

Normally, the application provides the Database Formatter Tool in its packages. Therefore, refer to the application documentation for more information on the installation of the tool.

If the application does not include the tool by default, then it is possible to install it by doing these steps:

  1. Download the required version of the following package:

    DBS RT: CXP 902 5264/5

  2. Extract the package and get the Backup Formatter Tool from the following path:

    delivery\PSR-DBS_RT-CXP9025264-<DBS_version>\contained\PSR-DBS_RT-CXP9030894-<DBS_version>\contained\TDP-DbTools-CXP9040378-<DBS_version>\contained\DT_BackupFormatter\share\BackupFormatter

  3. The tool can be executed directly on the node or on any 64-bit host machine. Run the binary without parameters to get a help about available options. For more information on the available command options, see Section 2.

1.2   Backup Path

The backups are stored at the following path:

/storage/system/config/dbsv/backup/

The backup directories use the following naming convention: <YYYYMMDD>.<HHMMSS>.<microseconds>, for example, 20171130.143437.262994.

1.3   Backup Directory

A backup directory contains the following files:

Example 1   Backup Directory Contents Example

mdps.PL-3.data.idx  mdps.PL-4.data.idx  mdps.PL-5.data.idx  mdps.SC-1.data.idx  mdps.SC-2.data.idx
mdps.PL-3.data      mdps.PL-4.data      mdps.PL-5.data      mdps.SC-1.data      mdps.SC-2.data
schema.gz

The .data files contain the primary data replicas.

The .idx files contain the position of the Master Data Partitions (MDPs) within the .data file of the same name.

2   BackupFormatter Command

The command has the following syntax:

BackupFormatter <backup_directory> <command> [<arguments>]

Where the <backup_directory> refers to this directory:

/storage/system/config/dbsv/backup/<backup_name>/databaseBackup/

The options for <command> are shown in Table 1.

Table 1    Command Options for BackupFormatter

Option

Description

list_classes

Lists all classes (POTs) with their IDs and names.

dump_class

Dumps information about the given classes (POTs).

list_instances

Lists all records (POT instances) of the given classes.

dump_instance

Dumps information about the given records (POT instances).

dump_mdp_instances

Dumps the records (POT instances) in the given MDP.

dump_class_instances

Dumps the records (POT instances) in the MDPs of the given class (POT).

2.1   list_classes

This command option lists all classes with their IDs and names.

The number in the list indicates the class ID and the name after it indicates the class name.

Note:  
The class ID is also referred to as POT Runtime ID (RTID) or POT Class Number (Class No).

Example

>$ BackupFormatter <backup_directory> list_classes

Output

class ID class name
1117352 SubscriberTypeA
1117358 SubscriberTypeB
1117366 SubscriberType1
1117372 SubscriberType2

2.2   dump_class

This command dumps the class attributes: the name and the type. For more information on the printout values, see Table 2 and Table 3.

Both the class ID or the class name can be used as the command option argument.

Example

>$ BackupFormatter <backup_directory> dump_class 1117352

Or

>$ BackupFormatter <backup_directory> dump_class SubscriberTypeA

Output

1117352 SubscriberTypeA
0. subKey:U
1. updateAtt:U
2. array:A0[:U]
3. servObj:G
4. checkSumAttr:I
5. groupSize:I

2.3   list_instances

This command lists all records of the given classes.

The records are listed in the following format:

<MDP_no>-<seq_no> [key_type:key_value]

Where:

Example

>$ BackupFormatter <backup_directory> list_instances 1117352

Note:  
The command option only accepts primary key defining classes as a command parameter. Do not use unkeyed classes or classes derived from keyed classes.

Output

============== Instances of class 1117352 ==============
4798990298120192-0000380000000003      [U:0]
4798990298185728-0000480000000003      [U:1]
4798990298251264-0000580000000003      [U:2]
4798990298316800-0000180000000003      [U:3]
4798990298382336-0000280000000003      [U:4]
4798990298447872-0000380000000003      [U:5]
4798990298513408-0000480000000003      [U:6]
4798990298578944-0000580000000003      [U:7]
4798990298644480-0000180000000003      [U:8]
4798990298710016-0000280000000003      [U:9]

2.4   dump_instance

This command lists the entire content of a record, including attribute names, types, and values. The attribute values are listed both in plain text (where "~" replaces all non-readable characters) and in hexadecimal format.

Example

>$ BackupFormatter <backup_directory> dump_instance 4798990298447872-0000380000000003

Note:  
The command option only accepts primary key defining classes as a command parameter. Do not use unkeyed classes or classes derived from keyed classes.

Output

Class 1117352 SubscriberTypeA
  Attr0 [subKey:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:5]
    primary key
  Attr1 [updateAtt:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:1]
  Attr2 [array:A0[:U]]
    base type:     8 (dynamic opaque)
    element size:  0
    element count: 0
    content: [DATA:[length:1004][~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~"~~~#~~~$~~~%~~~&~~~'~~~(~~~)~~~*~~~⇒
+~~~,~~~-~~~.~~~/~~~0~~~1~~~2~~~3~~~4~~~5~~~6~~~7~~~8~~~9~~~:~~~;~~~<~~~=~~~>~~~?~~~@~~~A~~~B~~~C~~~D~~~E~⇒
~~F~~~G~~~H~~~I~~~J~~~K~~~L~~~M~~~N~~~O~~~P~~~Q~~~R~~~S~~~T~~~U~~~V~~~W~~~X~~~Y~~~Z~~~[~~~\~~~]~~~^~~~_~~~⇒
`~~~a~~~b~~~c~~~d~~~e~~~f~~~g~~~h~~~i~~~j~~~k~~~l~~~m~~~n~~~o~~~p~~~q~~~r~~~s~~~t~~~u~~~v~~~w~~~x~~~y~~~z~⇒
~~{~~~|~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~][000000fa0000000000000⇒
00100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000⇒
e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0⇒
000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000⇒
000290000002a0000002b0000002c0000002d0000002e0000002f00000030000000310000003200000033000000340000003500000⇒
0360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000004000000041000000420000004⇒
30000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500⇒
000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d000⇒
0005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a00000⇒
06b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007500000076000000770000007⇒
8000000790000007a0000007b0000007c0000007d0000007e0000007f0000008000000081000000820000008300000084000000850⇒
00000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000⇒
000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f00000⇒
0a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000a⇒
d000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba0⇒
00000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000⇒
000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d400000⇒
0d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e⇒
2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef0⇒
00000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9]]
  Attr3 [servObj:G]
    base type:     6 (reference)
    element size:  16
    element count: 0
    content: [DID:[mdpNo:4798990298447872][seqNo:0000380000000004][classNo:1117353]]
  Attr4 [checkSumAttr:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]
  Attr5 [groupSize:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]

2.5   dump_mdp_instances

This command works similarly to the dump_instance command option (see Section 2.4), but it prints the content of all records belonging to the given MDP number. To list the MDP numbers of a class, use the list_instances command option, see Section 2.3.

Example

>$ BackupFormatter <backup_directory> dump_instance 4798990298447872-0000380000000003

Output

====================================================================
MDP number: 4798990298120192
====================================================================

Class 1117352 SubscriberTypeA
  Attr0 [subKey:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:0]
    primary key
  Attr1 [updateAtt:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:1]
  Attr2 [array:A0[:U]]
    base type:     8 (dynamic opaque)
    element size:  0
    element count: 0
    content: [DATA:[length:1004][~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~"~~~#~~~$~~~%~~~&~~~'~~~(~~~)~~~*~~~⇒
+~~~,~~~-~~~.~~~/~~~0~~~1~~~2~~~3~~~4~~~5~~~6~~~7~~~8~~~9~~~:~~~;~~~<~~~=~~~>~~~?~~~@~~~A~~~B~~~C~~~D~~~E~⇒
~~F~~~G~~~H~~~I~~~J~~~K~~~L~~~M~~~N~~~O~~~P~~~Q~~~R~~~S~~~T~~~U~~~V~~~W~~~X~~~Y~~~Z~~~[~~~\~~~]~~~^~~~_~~~⇒
`~~~a~~~b~~~c~~~d~~~e~~~f~~~g~~~h~~~i~~~j~~~k~~~l~~~m~~~n~~~o~~~p~~~q~~~r~~~s~~~t~~~u~~~v~~~w~~~x~~~y~~~z~⇒
~~{~~~|~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~][000000fa0000000000000⇒
00100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000⇒
e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0⇒
000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000⇒
000290000002a0000002b0000002c0000002d0000002e0000002f00000030000000310000003200000033000000340000003500000⇒
0360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000004000000041000000420000004⇒
30000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500⇒
000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d000⇒
0005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a00000⇒
06b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007500000076000000770000007⇒
8000000790000007a0000007b0000007c0000007d0000007e0000007f0000008000000081000000820000008300000084000000850⇒
00000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000⇒
000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f00000⇒
0a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000a⇒
d000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba0⇒
00000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000⇒
000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d400000⇒
0d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e⇒
2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef0⇒
00000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9]]
  Attr3 [servObj:G]
    base type:     6 (reference)
    element size:  16
    element count: 0
    content: [DID:[mdpNo:0][seqNo:0000000000000000][classNo:1117353]]
  Attr4 [checkSumAttr:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]
  Attr5 [groupSize:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]

2.6   dump_class_instances

This command works similarly to the dump_instance command option (see Section 2.4), but instead of listing the entire content of a specific record, it lists the entire content of all records that belong to that class.

These class types are identified either by their class number or their names. The command lists the content of all records where the class type matches the class number or name.

Example

>$ BackupFormatter <backup_directory> dump_class_instances 1117352

Output

====================================================================
>>>>>>>>>>>>>>>>>>>> Class number:      1117352 <<<<<<<<<<<<<<<<<<<<
====================================================================

====================================================================
MDP number: 4798990298120192 (DU: 0)
====================================================================

Class 1117352 SubscriberTypeA
  Attr0 [subKey:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:0]
    primary key
  Attr1 [updateAtt:U]
    base type:     2 (unsigned integer)
    element size:  4
    element count: 0
    content: [U:1]
  Attr2 [array:A0[:U]]
    base type:     8 (dynamic opaque)
    element size:  0
    element count: 0
    content: [DATA:[length:1004][~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!~~~"~~~#~~~$~~~%~~~&~~~'~~~(~~~)~~~*~~~⇒
+~~~,~~~-~~~.~~~/~~~0~~~1~~~2~~~3~~~4~~~5~~~6~~~7~~~8~~~9~~~:~~~;~~~<~~~=~~~>~~~?~~~@~~~A~~~B~~~C~~~D~~~E~⇒
~~F~~~G~~~H~~~I~~~J~~~K~~~L~~~M~~~N~~~O~~~P~~~Q~~~R~~~S~~~T~~~U~~~V~~~W~~~X~~~Y~~~Z~~~[~~~\~~~]~~~^~~~_~~~⇒
`~~~a~~~b~~~c~~~d~~~e~~~f~~~g~~~h~~~i~~~j~~~k~~~l~~~m~~~n~~~o~~~p~~~q~~~r~~~s~~~t~~~u~~~v~~~w~~~x~~~y~~~z~⇒
~~{~~~|~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~⇒
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~][000000fa0000000000000⇒
00100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000⇒
e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0⇒
000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000⇒
000290000002a0000002b0000002c0000002d0000002e0000002f00000030000000310000003200000033000000340000003500000⇒
0360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000004000000041000000420000004⇒
30000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500⇒
000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d000⇒
0005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a00000⇒
06b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007500000076000000770000007⇒
8000000790000007a0000007b0000007c0000007d0000007e0000007f0000008000000081000000820000008300000084000000850⇒
00000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000⇒
000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f00000⇒
0a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000a⇒
d000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba0⇒
00000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000⇒
000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d400000⇒
0d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e⇒
2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef0⇒
00000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9]]
  Attr3 [servObj:G]
    base type:     6 (reference)
    element size:  16
    element count: 0
    content: [DID:[mdpNo:0][seqNo:0000000000000000][classNo:1117353]]
  Attr4 [checkSumAttr:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]
  Attr5 [groupSize:I]
    base type:     1 (signed integer)
    element size:  4
    element count: 0
    content: [I:0]

====================================================================
MDP number: 4798990298185728 (DU: 1)
====================================================================

...

3   DBN Backup Formatter Tool Format

The Backup Formatter Tool uses short notations to represent attribute types in classes or records. The notations are described in the following subsections.

3.1   Primitive Types

Table 2 shows the primitive types.

Table 2    Primitive Types

Integer

I

Unsigned

U

Unsigned long

L

Long

K

Double

D

Char

C

Bool

B

Octet

O

String

S

3.2   External Types

Any external type is stored as an octet array.

3.3   Composed Values

Table 3 shows the composed values.

Table 3    Composed Values

Reference (DID)

G

Array

A<size>[:T](1)(2)

Multiref

M

Record

R[:T:T:T:T... :T](2)

(1)  The size is zero for dynamic arrays.

(2)  T can be any type using the same notations, for example: A0[:G] is a dynamic array of references (DIDs).



Reference List

Documents
[1] BRF-C Management Guide, 1/1553-APR 901 0485/1