Follow

DB2™ (NetBoost for AIX) allows DB2 servers to integrate with InfiniGuard disk backup systems. Once installed and configured, a DB2 server can manage backups through the InfiniGuard system and take advantage of the system’s capabilities such as client-side data deduplication and replication.

DB2 NetBoost Plug-In and Compatibility

The Infinidat DB2NetBoost 1.0 plug-in is based on DB2 API specifications directing backups to InfiniGuard Application Specific (NetBoost) targets. The purpose of the DB2NetBoost plugin is to provide a simple package that installs on AIX platform servers to allow the installed DB2 databases to leverage high speed backup and restore to Infinidat InfiniGuard storage with Client-side deduplication reducing common backup speeds by up to 50% and 99% bandwidth reductions between the DB client and the Infinidat storage.

The following components are required for DB2Netoost operation with the InfiniGuard:

  • DB2 v10.5.x and above.
  • Infinidat NetBoostForDb2 Plug-in (downloaded separately through the remote management console or from the Infinidat Service and Support Web site).

Operating System Support

The Infinidat NetBoostForDb2 1.0 plug-in contains support for the following AIX operating systems:

  • AIX 7.1 and above

The difference between using the plugin and not using the plugin:

General Guidelines

The following are some general guidelines for best practices for DB2 Plug-ins:

  • A host can only have a single DB2 plug-in installed at a time. Multiple hosts with different plug-in versions installed are supported. Each DB2 Server should have its own share for tracking capacity and performance independently.
    Refer to the InfiniGuard User's Guide for more information on creating Application Specific (NetBoost) Shares and Replication.
  • Best performance is achieved when backups are configured to run in multiple sessions (optimal is between 4 and 8 sessions). It is critical to performance that the database architecture allows for this level of parallelization based on the number of containers, the number of tablespaces and the number of tables in the database, and that parallel IO is enabled for backup & restore. Significant performance improvement can be achieved by the following:
    • not using multiple session limits db reads and writes for protection to single thread performance
    • using 8 to 24 sessions can improve performance significantly
  • We recommend, where possible, that each DB2 Server use an independent share on the InfiniGuard DDEs to improve access isolation capabilities, along with capacity and performance monitoring isolation.

NetBoostForDB2 Plug-in Support

AIX

The DB2 plug-in supports the following versions:

  • AIX 7.1 and above

DB2 Plug-in Support DB2

The following versions of Db2 are supported.

  • DB2 v10.5 and above

Downloading the plug-in

The plugin can be found in the Infinidat repository at the following location:

http://repo.infinidat.com/home/iba

The plugin is currently only available via the Infinidat Support staff. To receive the plugin, contact your SE or TA.

Installing the DB2 Plug-in for InfiniGuard (AIX)

Prerequisites

Before installing the Infinidat DB2 plugin, make sure that the DB2 server is properly installed and configured. For more information on DB2 Database installation, refer to the DB2 Database Quick Installation Guide at:

https://www.ibm.com/support/producthub/db2/docs/content/SSEPGG_11.5.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001933.html

  • Firewall ports 3095 - 3102, or 4095 - 4102, 10002 and 1062 should be open between Host and InfiniGuard DDE Data IPs

  • A backup user and application specific shares (DB2 shares) should be created in the InfiniGuard DDE sys
  • Access to the backup server or DB2 client should be defined in the INFINIGUARD DDE share permission (Host and User) 

Install the NetBoostForDb2 Plugin

To install the NetBoostForDb2 Plug-in for AIX, follow the steps below:

This example is a simple RPM installation with defining the location of the config files.


If older DB2 plugin versions are already installed on the AIX DB2 server, you must uninstall them before proceeding with the installation. 

Installing the plug-in on the DB2 server:

  1. Go to the Infinidat Client Plugins page to download the NetBoostForDb2 plugin. See here for more information.  
  2. Locate and download the ZIP (TGZ) file for the appropriate operating system. Place the tgz file in /tmp.
  3. Open the ZIP file, create the directories, and put the files where they belong.
    The download contains all the INFINIDATPlug-in.tgz files that should be placed into the /tmp directory.
    Install the files as root user on the AIX systems involved db2 database protection.
    1. “gunzip tgz”
    2. “tar xvf tar
    3. “mkdir –p /opt/INFINIDAT/Db2/”
    4. “mkdir –p /home/<db2-instance-user>/.local/share/INFINIDAT-db2-backup/log/”
    5. “rpm –ivh INFINIDATDB2Plugin.rpm
      1. If this is the first time install
    6. “rpm –Uvh INFINIDATDB2Plugin.rpm
      1. If this is an updated rpm from the Infinidat Team

        The DB2_HOME path may be different, depending on your file structure. Place the libINFINIDATdb2.so library somewhere on the system. The library assumes that it is in /opt/INFINIDAT/Db2/, but it can be somewhere else without issue. Put the *.conf files and the .so in the /opt/INFINIDAT/DB2 directory for simplicity.

  4. There should be a config file /opt/INFINIDAT/Db2/INFINIDATPlugin.conf. This uses the same format as NetboostFS, and can be used to set all the same settings as for NetboostFS, including the logging level. Do not change this file without support guidance.
  5. Place a Db2 instance configuration file in the /opt/INFINIDAT/Db2/ directory:
  • This file can actually live anywhere but should be referenced with a full path name.
  • The path name is restricted to 30 characters or less.
    Contents and configurations defined in the “db2netboost.conf” file, are described later in this document.

The Data IP from the DDE -> Configuration -> System -> Networks Page  And the EXPORT PATH from the DDE->Configuration->NAS Page


6. Move the INFINIDATPlugin.conf file into the /opt/INFINIDAT/Db2/ directory.

Backup share, user, and password should already exist on the system that is specified in db2netboost.conf.

Uninstalling the DB2 PlugIn

To uninstall the DB2 Plugin:

  1. As a root, run the following command: 
    “rpm -e INFINIDATDB2Plugin”
    The directory /usr/INFINIDAT will only be removed if it is empty.
    For example, the DB2 plugin logging is kept in the log sub-directory. If you want to keep these logs, you should move them to another location before uninstalling the plugin.
  2. To remove the plugin, run the following command:
    rm -rf /usr/INFINIDAT

The installation is complete

Configuring the InfiniGuard

You must create Application Specific (DB2) shares on the InfiniGuard Remote Management Console before you configure the DB2 server. Refer to the following sections for information to configure the InfiniGuard for DB2.

You can use the NAS Wizard to configure the InfiniGuard for DB2 shares. To learn more about using the Configuration Wizards, refer to the User’s Guide for your InfiniGuard model.

Access the InfiniGuard Management UI by browsing to the ip address of your InfiniBox device https://<ibox-floating-ip-address>.  Log in as an admin user.

Configuring DB2 Authentication

You need to create DB2Instance user credentials to authenticate the DB2 shares on an DB2 server. The Manage Users page in the InfiniGuard Remote Management console allows you to create and manage local authenticated users for use with DB2 for AIX credentials.

To configure DB2 user credentials:

  1. Log in to the InfiniGuard Remote Management console.
  2. Navigate to the Configuration > System > Manage Users page.

          

Related tasks

Use the Manage Users page to perform the following tasks:

  • View information about local authenticated DB2 users
  • Add a local authenticated DB2 user
  • Edit a local authenticated DB2 user
  • Delete a local authenticated DB2 user

Managing the Authenticated Users List

The Manage Authenticated Users list displays the following information for all local authenticated DB2 users:

Name - The name of the local authenticated user. This can be a generic local user that is simply used in the db2netboost.conf file to authenticate access to the netboost share(s).

Description - A brief description of the local authenticated user (if available).

Adding an authenticated user

Add an authenticated user to create local DB2 user credentials. The user credentials are required to authenticate the DB2 server.   This is the user defined in the /opt/INFINIDAT/Db2/db2netboost.conf file.

To add an authenticated user:

  1. Click Add.
    The Add User Credential window displays:



  2. Enter information about the authenticated user:
    User Name - The name of the authenticated user.
    New Password - The password for the authenticated user.
    Confirm New Password - Re-enter the password.
    Description - A brief description of the authenticated user (optional).

  3. Click Apply.

Editing an Authenticated User

Edit an authenticated RMAN user password or description.

To edit an authenticated user:

  1. Select a user and click Edit.
    The Edit User Credential window displays:


  2. Edit the information about the authenticated user.
  3. Click Apply.

Deleting an Authenticated User

You can delete an authenticated DB2 user if the user credentials are no longer needed to authenticate the DB2 server.

To delete an authenticated user, select the user and click Delete.

You can delete several users at once. You can also define a different user for each DB2-instances.

Enabling Deduplication & Encryption with NetBoost

Ensure that the InfiniGuard is enabled for Deduplication with NetBoost (the DB2 Plugin technology):

  1. Log into the InfiniGuard as an admin user
  2. Navigate to the Configuration > OST > NetBoost tab
  3. Check the Enable Deduplication with NetBoost box and click Apply

      - Select the preferred level of client-to-storage encryption (a Global setting for all Netboost shares).

Configuring DB2 Shares

To create and configure DB2 shares:

  1. Log on to the InfiniGuard remote management console.
  2. Navigate to the Configuration > NAS > Summary page.

The NAS Summary page allows you to manage DB2 shares on the InfiniGuard. You can view information about existing shares, add or edit shares, and delete shares. The “EXPORT PATH” in this view is used in the “remote” definition in the /opt/INFINIDAT/Db2/db2netboost.conf file. 

Related Tasks

Use the NAS page to perform the following tasks:

  • View information about existing NAS shares.
  • Add a new DB2 share to the system.
  • Edit properties for an existing DB2 share.
  • Delete a DB2 share from the system.

Setup Specific Share Access (Host/User) in the Share Edit Properties:

To set specific share access. clear the Allow All field and select the specific hosts or users

NAS and Application Specific Shares List

The NAS Shares List section displays the following information for all NAS shares on the InfiniGuard. RMAN shares are listed as Application Specific.

Shares - The number of shares that have been added to the system.

Maximum - The maximum number of shares that can be added to the system.

NFS - The number of existing shares configured to use the NFS protocol (for Linux networks).

CIFS/SMB - The number of existing shares configured to use the CIFS/SMB protocol (for Windows networks).

Application Specific - The number of existing shares configured to use for DB2 for AIX NetBoost plugins.

Share Name - The name of the share.

Protocol - The protocol (CIFS/SMB, NFS, or Application Specific (DB2) the share is configured to use.

For NFS shares, the Protocol column displays the commit type of the share (sync for synchronous or async for asynchronous).

Export Path - The export path of the share (different for CIFS/SMB, NFS, and Application Specific (DB2) shares).

Permissions - The permissions in use on the share (Read & Write or Read Only).

Access - The access type of the share (all hosts or specific users).

Deduplication - The data deduplication state of the share (Enabled or Disabled).

Replication - The current state of replication for the share:

  • Enabled - Replication is enabled.
  • Send/Receive Sync ID - Directory/File Based Replication is enabled.
  • Configure - Click to configure replication for the share.
  • Scheduled - Replication is scheduled for the share. Click to view or modify the schedule. DB2 shares use trigger-based replication and cannot be scheduled.

Targets - The targets where the share is configured to replicate.

Description - A brief description of the NAS share (if available).

Additional Information:

  • You can sort the columns by clicking the column heading.
  • Click the Information button [i] next to a share to display detailed information about the share and recent replication activity.

Adding an DB2 Share

To add an DB2 share:

  1. Click Add.
    The Add NAS Share page displays.
  2. Under NAS Share Settings, enter information about the Application Specific/DB2 share: - 
    Name - Enter the name of the NAS share.

    DB2 share names are not case-sensitive.

    Description - Enter a brief description of the share (Optional).
    Protocol - Select the Application Specific export protocol for the DB2 share.
    Enable deduplication - DB2 share deduplication is enabled by default. This cannot be changed.


  3. Specify the replication settings under the Replication Settings (Optional).

    For more information about configuring replication for a share, or to set up replication for the share at a later time, see the InfiniGuard User's Guide.

  4. Click Apply.

Editing an DB2 Share

You can edit a DB2 share to modify the settings for the share, for example, you can change the description of the share or to select different options.

To edit an Db2 share:

  1. Select the share and click Edit.
    The Edit NAS Share & Replication Settings page displays.


  2. Edit the share information. See a detailed description on the previous section of this guide.
  3. Click Apply.

Editing a share allows you to lock down the share to a specified User and/or Host IP for access to the share. By default, all Users and Hosts are allowed access to the defined NetBoost share.

To lock down a Db2 share:

  1. Select the share and click Edit
    The Edit NAS Share & Replication Settings page displays.


  2. To enhance restrictions by User or Host, simply clear the “Allow all users to access this share" or “Allow all hosts to access this share” check boxes and add each “managed User” or “Host IP” that you would like to assign access to the share.
  3. Click Apply.

Deleting an Db2 Share

When you no longer need a DB2 share, you can delete it. When a share is deleted, all data stored on the share is lost, and any schedules associated with the share are deleted.

To delete a NAS share:

  1. Select the share and click Delete. You can select multiple shares to delete at once.
  2. Click Yes to confirm the deletion.

Configuring the DB2 Server

Storage Authentication

The DB2 server only has one method to authenticate to InfiniGuard using the DB2 for AIX Plugin. 

Use the following options to configure the parameters in the static “/opt/INFINIDAT/Db2/db2netboost.conf” configuration file.

Authentication and Restore Parameters in the db2netboost.conf file

The following parameters are used to establish connections to the InfiniGuard application-specific (DB2) share.

4b. Place a DB2 instance configuration file in the /opt/INFINIDAT/Db2/ directory:

  • This file can actually be placed anywhere but should always be referenced with a full path name.
  • The path name is restricted to 30 characters or less.
  • Some of the options in the configuration file are only required for specific backups & restores.

For example:

“cat /opt/INFINIDAT/Db2/db2netboost.conf”

remote = 10.10.1.10:aix1db2inst1netboost1

username = db2netboostuser

password = db2netboostuserpassword

# addition parameters for special restores

log_source = test

server_id_global_override = DBServer1

server_id_restore_override = DBServer2db_instance_override = Original-DB-Instance

Explaining the parameters in the above example:

Remote = <DATA-IP-For-DDE-with-DB2-Share>:<Share-Export-Path>

username = <”DDE-> CONFIGURATION-> SYSTEM-> MANAGE-USER”> 

password = <”DDE-> CONFIGURATION-> SYSTEM-> MANAGE-USER-Password”>

# additional parameters for special restores

log_source = <DB name of Log Source>

server_id_global_override = <new server ID>

server_id_restore_override = <source server ID>db_instance_override = <source instance> 

Important considerations:

  • Different Databases can use different configuration files and Shares (as defined in their configuration files).
  • Different Shares and InfiniGuard Managed Users are defined in the “Remote” line of the config file.
  • If clusters are used (multiple Nodes) all Nodes should have the Plugin installed and the same configuration file defined and referenced.

For example:

Database1 can use a “db2db1.conf”

Database2 can use a “db2db2.conf”

Database3 can use a “db2db3.conf”

There are some conditions where the optional parameters in the db2netboost.conf file are required:

Edit the db2netboost.conf file before redirected Restores are required. Once this is done, the entries should be removed.

Restoring to New DB-name: log_source = <DB name of Log Source>

Restoring to new Instance name: db_instance_override = <source instance>

Restoring to New Server: server_id_restore_override = <source server ID> 
                                            server_id_global_override = <server ID>

Configuring the DB2 Server

The DB2 Server can be configured as follows:

As the DB2 instance user:

  • Set the db2instance for parallel_io.
  • Configure the dba cfg file options for using the INFINIDAT VENDOR DB2 plugin.

Optimal Pipe Bandwidth is driven by controlling the number of Sessions (parallel threads) at 8 to 24.

1 - Optimizing Parallel Operations for the InfiniGuard DB2 for AIX NetBoost Plugin

DB2_PARALLEL_IO

  • Operating system: All
  • Default: NULLor * (in a Db2 InfiniGuard environment) Values: TablespaceID:[n],… – a comma-separated list of defined table spaces (identified by their numeric table space ID). If the prefetch size of a table space is AUTOMATIC, you can indicate to the Db2 database manager the number of disks per container for that table space by specifying the table space ID, followed by a colon, followed by the number of disks per container, n. If n is not specified, the default is 6. 
    You can replace TablespaceID with an asterisk (*) to specify all table spaces. For example, if DB2_PARALLEL_IO=*, all table spaces use six as the number of disks per container. If you specify both an asterisk (*) and a table space ID, the table space ID setting takes precedence. For example, if DB2_PARALLEL_IO =*,1:3, all table spaces use six as the number of disks per container, except for table space 1, which uses three.
  • This registry variable is used to change the way Db2calculates the I⁄O parallelism of a table space. When I⁄O parallelism is enabled (either implicitly, by the use of multiple containers, or explicitly, by setting DB2_PARALLEL_IO), it is achieved by issuing the correct number of prefetch requests. Each prefetch request is a request for an extent of pages. For example, a table space has two containers and the prefetch size is four times the extent size. If the registry variable is set, a prefetch request for this table space will be broken into four requests (one extent per request) with a possibility of four prefetchers servicing the requests in parallel.
    You might want to set the registry variable if the individual containers in the table space are striped across multiple physical disks or if the container in a table space is created on a single RAID device that is composed of more than one physical disk.
    If this registry variable is not set, the degree of parallelism of any table space is the number of containers of the table space.

End of linked referenced information

For example:

bash-5.0$ db2set

DB2_ATS_ENABLE=yes

DB2_COMPATIBILITY_VECTOR=08

DB2RSHCMD=/usr/bin/ssh

DB2_EXTENDED_OPTIMIZATION=ON

DB2_ANTIJOIN=EXTEND

DB2COMM=TCPIP

DB2_PARALLEL_IO=*

DB2AUTOSTART=NO

2 - Set the database cfg file Settings for the Infinidat Plugin use

VENOROPT & LOGARCHOPT1 (limited to 30 characters (including @).

As db2instance user DBA’s must define the following Infinidat specific Vendor options to the database cfg:

$ db2 set db cfg for database1 using LAOGARCHMETH1 VENDOR: /opt/INFINIDAT/Db2/libINFINIDATDb2.so

$ db2 set db cfg for database1 using LOGARCHOPT1 @/opt/INFINIDAT/Db2/db2netboost.conf

$ db2 set db cfg for database1 using VENDOROPT @/opt/INFINIDAT/Db2/db2netboost.conf

$db2 get db cfg for database1 | grep –i INFINIDAT

First log archive method              (LOGARCHMETH1) = VENDOR:/opt/INFINIDAT/Db2/libINFINIDATDb2.so

Options for logarchmeth1           (LOGARCHOPT1) = @/opt/INFINIDAT/Db2/db2netboost.conf

Vendor options                            (VENDOROPT) = @/opt/INFINIDAT/Db2/db2netboost.conf


Backup and Restore command examples are provided on the following pages. 

The Plugin supports backup (multiple sessions) and:

  • Restore with auto-rollforward to the end
  • Restore to new Database Instance
  • Restore to new Database name
  • Restore to new Node
  • Restore with designated Roll forward (specifically) 

In most cases when doing any kind of redirected Backup or Restore the “Optional entries” for the db2netboost.conf file are required in the .conf file and they should be removed when the task is completed.   

When working with Clustered DB2 Servers, it is important that all servers in the cluster use the same plugin version, the same configuration file paths and the same version of the configuration file with the same options defined.

Significant performance improvements in backups can be found by running backups with multiple “Sessions” (8 to 24 Sessions). Restores are currently limited to 1 or 2 sessions (a DB2 limitation).

When each DB Server uses an independent DB2 Share on the InfiniGuard DDEs, it helps to separate Capacity and Performance monitoring granularity in the InfiniMetrics views.

Running Database Backups and Restores

Example of successful backup with a single 10GbE connection.

db2 backup db test online load /opt/INFINIDAT/Db2/libINFINIDATdb2.so open 8 sessions

The options” parameter is only required on the command line when “VENDOROPT” is not defined in the database cfg.


Wed Jul 15 01:27:59 IDT 2020
Partial Result
----------------------------------------------------------------------------
0000 DB20000I The BACKUP DATABASE command completed successfully.

Backup successful. The timestamp for this backup image is: 20200715012801

Wed Jul 15 01:29:41 IDT 2020

 *Using 8 sessions, with the database configured with 8 containers, backups run at 1.2GB/s reads on a single 10GbE Link.  

The "options" path statement is limited to 30 characters (including @)

Example of successful Restore with a single 10GbE connection.

db2 restore db test load /opt/INFINIDAT/Db2/libINFINIDATdb2.so open 2 sessions

The options” parameter is only required on the command line when “VENDOROPT” is not defined in the database cfg.


Wed Jul 15 01:35:19 IDT 2020
SQL2539W The specified name of the backup image to restore is the same as the 
name of the target database. Restoring to an existing database that is the 
same as the backup image database will cause the current database to be 
overwritten by the backup version.

Do you want to continue ? (y/n) y

DB20000I The RESTORE DATABASE command completed successfully.
Wed Jul 15 01:41:18 IDT 2020

*Restore ran in 7 minutes @ 300MB/s writes

Restore of regular db (non-redirected restore):

db2 restore db <dbname> load /opt/INFINIDAT/Db2/libINFINIDATdb2.so taken at <timestamp>

Roll Forward:

db2 rollforward db <dbname> to end of logs and complete

  • By default, restores will roll forward to end and complete.

Restore of redirected db name (redirected restore):

db2 restore db <original db name> load /opt/INFINIDAT/Db2/libINFINIDATdb2.so taken at <timestamp> into <newdb>

*Update the config file when restoring to a new db name:

Add the following line to the config file:

log_source = <original db name>

*Update the config file when restoring to a new db instance name:

Add the following lines to the config file:

log_source = <original db name>

db_instance_override = <source instance>

*Update the config file when restoring to a new db server name:

Add the following lines to the config file:

log_source = <original db name>

server_id_global_override = <new server ID>
server_id_restore_override = <source server ID>

*After rollforward is completed to a new db

Remove the line from the config file:

log_source = <original db name>

DB2 Limitations

InfiniGuard Limitations

Backup format outlay

  • The absolute path should not be used when specifying the forrmat location.  The InfiniGuard will not create recursive directories from a plug-in invoked backup.
  • Filename must not exceed 255 characters (including the share name).

Plug-ins

  • An OST plug-in and a DB2 plug-in cannot reside on the same client. 

Replication

  • Only directory/file-based replication is currently supported for application-specific shares.
  • Target must support application-specific shares.

DB2 Client Side Compression

  • Not prohibited, but a performance/deduplication penalty may occur.

Number of Application Specific (NetBoost) shares per Active DDE is limited to 128.


Troubleshooting

  • Validate InfiniGuard DDE Health State
    • Expected result - All in “Peak Health”


  • Validate Network access between Client Host and DDE Data IP
    • Expected result - Ping, Traceroute, FW, Filters, HOPs, VLAN’s, Routes, DNS, MTU, etc.


  • Validate that TCP Network Ports are open between Host and DDE
    • Expected results - *   Firewall ports 3095 - 3102, or 4095 - 4102, 10002, 1062 should be open between host and InfiniGuard DDE Data IPs

  • Additional tasks
    • Validate “managed user” on the InfiniGuard DDE and in db2netboost.conf file
    • Review DB2 Trace log for errors
    • Review InfiniGuard Plugin logs for errors
    • Review Server Log file for System/OS errors
    • Contact IBM Support for DB2 Troubleshooting assistance
    • Contact INFINIDAT for Storage Access Troubleshooting assistance

Monitoring Backup Performance in the InfiniGuard UI

The InfiniGuard and the InfiniGuard DDE UI will allow for some near-real-time indicators for monitoring.

To get the top level performance and capacity monitoring in the InfiniGuard Dashboard:

  1. Log into the InfiniGuard.
  2. The top-level dashboard reports inline-concurrent performance, of both DDE(s) and overall DDE capacity consumption with aggregate space reduction rates (updated and averaged every 60 seconds).

DDE level performance and capacity monitoring

  1. Click on the Deduplication icon and navigate to the Deduplication Engine (App-A AKA DDE1, or App-B AKA DDE2).
  2. The DDE Dashboard reports inline-concurrent performance, of both DDE(s), as well as the NetBoost performance.
    You can see the following metrics reported with 60-second updates:
    1. reduction rates andprotocol statistics (inline aggregates
    2. the actual Ethernet.
    3. NetBoost metrics.

Monitoring for the InfiniGuard with InfiniMetrics

The InfiniMetrics UI tracks and displays the InfiniGuard metrics for near real-time monitoring over-time.

It displays the top level “System” performance and capacity monitoring of the InfiniGuard as a whole.

  1. Log into the InfiniMetrics.
  2. Select InfiniGuard’s
  3. Select the specific InfiniGuard you wish to review

The top-level dashboard reports InfiniGuard aggregate inline-concurrent performance and overall DDE capacity consumption with space reduction rates.

Drill down to the DDE to see DDE aggregated metrics:

Drill down to the share level to see Share-level Metrics:

DB2 Trace Logging

INFINIDAT service can access DB2 logs contained in: /home/<db2inst-user>/.local/share/INFINIDAT-db2-backup/log

Log level control is located in the /opt/INFINDIAT/INFINIDATPlugin.conf file.

There will also be a db2diag.log under the DB2 instance owner's home directory (ex. /home/<db2-instance-user>/data/log/).

If there are no errors the log may be empty.

Example Trace Logging

/db2/data/log/db2diag.log

Output.

$ pwd
/db2/data/log
$ ls -l
total 5784-rw-r--r--    1 db2inst1 db2iadm1        503 May 14 23:52 commandLineTools0.log
-rw-r--r--    1 db2inst1 db2iadm1    2954595 May 28 22:17 db2diag.log

Similarly, the INFINIDAT Plugin also has a db2*.log file in a predictable location.

  • If there are no errors, this file may also be empty.

           /home/<db2-instance-user>/.local/share/INFINIDAT-db2-backup/logs/*.log

Example :

bash-5.0# ls -ltr

Output

total 401616

-rw-r--r--    1 db2inst1 db2iadm1          2 Jul 14 13:02 INDEX

-rw-r--r--    1 db2inst1 db2iadm1  104860621 Jul 14 13:02 Db22.log

-rw-r--r--    1 db2inst1 db2iadm1  100754876 Jul 15 01:41 Db23.log


Example

bash-5.0# tail -f /db2/data/log/db2diag.log

Output

2020-05-28-22.11.04.939586-300 E2954080A515         LEVEL: Event

PID     : 6029724              TID : 14048          PROC : db2sysc 0

INSTANCE: db2inst1             NODE : 000           DB   : SAMPLE

APPHDL  : 0-453                APPID: *LOCAL.db2inst1.200529031046

AUTHID  : DB2INST1             HOSTNAME: aix01

EDUID   : 14048                EDUNAME: db2agent (idle) 0

FUNCTION: DB2 UDB, base sys utilities, sqeLocalDatabase::FreeResourcesOnDBShutdown, probe:16479

STOP    : DATABASE: SAMPLE   : DEACTIVATED: NO

Example:

bash-5.0# tail -f /home/db2inst1/.local/share/INFINIDAT-db2-backup/log/Db2?.log

Output

DEBUG    - 20200716 13:49:00.161 8389016 db2_milieu.cpp:204 Milieu::find_backups: Found a matching file FULL_BACKUP.20200716131049.7
DEBUG    - 20200716 13:49:00.162 8389016 ost_mi.cpp:355 ost_mi_xdr_req ok
DEBUG    - 20200716 13:49:00.163 8389016 ost_mi.cpp:355 ost_mi_xdr_req ok
DEBUG    - 20200716 13:49:00.163 8389016 ost_mi.cpp:355 ost_mi_xdr_req ok
DEBUG    - 20200716 13:49:00.163 8389016 db2_milieu.cpp:204 Milieu::find_backups: Found a matching file FULL_BACKUP.20200716131049.3
DEBUG    - 20200716 13:49:00.163 8389016 ost_mi.cpp:355 ost_mi_xdr_req ok
DEBUG    - 20200716 13:49:00.163 8389016 db2_milieu.cpp:230 Milieu::find_backups: Found 9 matching files
DEBUG    - 20200716 13:49:00.163 8389016 db2_pgn_api.cpp:238 sqluvint: Setting output pointers
DEBUG    - 20200716 13:49:00.163 8389016 db2_pgn_api.cpp:419 sqluvend: Handle found, taking ownership
INFO     - 20200716 13:49:00.163 8389016 db2_pgn_api.cpp:429 sqluvend: action == SQLUV_COMMIT; committing transaction.


                          When InfiniGuard Logs are required the “storage admin” will open a support tunnel for the INFINIDAT Support

                             resource to logon and collect all storage side logs. Customers can reach out to their assigned TA for assistance.

This section is pending more information on DB2 Log Management.

Configurable Options

The DB2 plug-in /opt/INFINDIAT/INFINDIATDb2Plugin.conf supports the DEBUG_LEVEL Linux/Unix/AIX configurable debugging option. The following values can be set in DEBUG_LEVEL to help define the log message output level:

  • EMERGENCY
  • ALERT
  • CRITICAL
  • ERROR
  • WARNING
  • NOTICE
  • INFO
    • TRACE
  • DEBUG

By default, the DEBUG_LEVEL is set to INFO.

Enabling Verbose Logging

DB2 Plug-in Log

The DB2 Plug-in logs various messages to log files under the /opt/INFINIDAT/Db2/log directory on a Linux or Unix database server. To enable verbose logging, in the /opt//INFINIDAT/Db2/INFINIDATPDb2lugin.conf file, set the DEBUG_LEVEL value to DEBUG.  

Useful CLI Tools

iguard_ls 

In systems running InfiniGuard code level 3.3.x and above, there is an added feature in NetBoost devices' service monitoring. This feature provides  Backup Admins with the ability to use the Linux Tool “iguard_ls” to list and sort NetBoost Share contents.

The tool is available at https://repo.infinidat.com/home/custom-solutions#infiniguard_ls

This feature allows Backup Admins to monitor the data stored on the Shares for capacity consumption.  The tool provides a long list of  content reports including:

  • content owner
  • age
  • data size on the NetBoost Shares.

Until the tool is officially available for download from the Infinidat support site, contact your TA to obtain it. It will then be installed as an rpm on any AIX 7.2, Redhat or Centos Linux server.

Once installed, the script-based tools allow for authenticated access to any InfiniGuard system, 3.3.x or above, to list and sort contents of the Deduplication Engine and the NetBoost Shares.

The InfiniGuard_LS RPM should be installed on the system you wish to use to list data on the Shares. The correct RPM for your operating system can be obtained from Infinidat Support or your TA.

  • Install the rpm using “rpm –ivh INFINIDAT_InfiniGuard_ls.rpm
  • Update using “rpm –Uvh INFINIDAT_InfiniGuard_ls.rpm

Examples are provided below:

[root@io-wt-11 ~]# iguard_ls --help

Usage:

iguard_ls --hostname=<hostname> [--username=<username>] [--password=<password>] --dde=<dde_id> 
[--age=<age>][--share=<share>][--long][--time|--size][--reverse][--human-readable]
iguard_ls --hostname=<hostname> [--username=<username>] [--password=<password>] --dde=<dde_id> --list
iguard_ls --hostname=<hostname> --username=<username> --password=<password> --save
iguard_ls --delete
iguard_ls --help
iguard_ls --version

Options: - sort by DDE, Share, Size, and find files older than a specified Age (in days)

   -H hostname --hostname=<hostname>   DNS name/IP  of InfiniGuard

   -u username --username=<username>   Administrator's username

   -p password --password=<password>   Administrator's password

   -d dde_id, --dde=<dde_id>           DDE ID (1/2)

   -s share, --share=<share>           Display only share name <share>

   -a age, --age=<age>                 Only display files older than <age> days

   -D, --delete                        Delete all stored credentials

   -S, --save                          Save credentials for hostname

   -L, --list                          List all share names

   -l, --long                          Use long display format

   -t, --time                          Sort by time

   --size                              Sort by size

   -r, --reverse                       Sort in reverse order

   -h, --human-readable                Display size in human readable format

   --help                              Show this screen

   -V, --version                       Show iguard_ls version

 

The iguard_ls command will use the –H (or - –hostname) and point to the InfiniGuard DNS-hostname or IP address.

This requires “http” access to the ibox floating IP (the System Management IP), and a Read-Only user on the iGuard.


# iguard_ls --hostname=ibox1593 --username=admin --password=secret-password --dde=2 –lt

-rw------- 0    0    Fri Jul 17 18:17:57 2020 12750848     zzz/FULL_BACKUP.20200717211859.9

-rw------- 0    0    Fri Jul 17 18:17:57 2020 12527312896  zzz/FULL_BACKUP.20200717211859.8

-rw------- 0    0    Fri Jul 17 18:17:57 2020 12578185216  zzz/FULL_BACKUP.20200717211859.3

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12654493696  zzz/FULL_BACKUP.20200717211859.6

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12667211776  zzz/FULL_BACKUP.20200717211859.2

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12603621376  zzz/FULL_BACKUP.20200717211859.5

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12743520256  zzz/FULL_BACKUP.20200717211859.1

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12807110656  zzz/FULL_BACKUP.20200717211859.4

-rw------- 0    0    Fri Jul 17 18:17:56 2020 12603621376  zzz/FULL_BACKUP.20200717211859.7

-rw------- 0    0    Fri Jul 17 18:12:17 2020 0            zzz/FULL_BACKUP.20200717211456.8

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.2

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.6

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.1

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.5

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.4

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.20200717211456.7

-rw------- 0    0    Fri Jul 17 18:12:16 2020 0            zzz/FULL_BACKUP.2020071721145

Iguard_db2  

INFINIDATs “iguard_ls” is a new tool for DBAs that helps manage DB2 Logs

The tool is available at  https://repo.infinidat.com/home/custom-solutions#infiniguard-db2

This tool helps DBAs list or retrieve logs from the backup set. It uses the db2netboost.conf file to access the InfiniGuard Deduplication Engine NetBoost devices.

  • Install the rpm using “rpm –ivh INFINIDAT_InfiniGuard_db2.rpm
  • Update using “rpm –Uvh INFINIDAT_InfiniGuard_db2.rpm

List logs by node and specify retrieval to specified path.

Retrieve single logs or a range of logs.

bash-5.0# iguard_db2  iguard_db2:

Enable listing and retrieval of DB2 logs located on an InfiniGuard system.

Usage:

iguard_db2 -c <config> -a <alias> [-n <node>] list
iguard_db2 -c <config> -a <alias> [-n <node>] get <name> [--path <path>]
iguard_db2 -c <config> -a <alias> [-n <node>] mget <start> <end> [--path <path>]
iguard_db2 --help


Arguments:

list                       list backup logs

get <name>                 retrieve log file with specific name

mget <start> <end>         retrieve log sequence from start to end

Options:

  -c <config>, --config <config>           config file path

  -a <alias>, --alias <alias>              database alias

  -n <node>, --nodenum <node>              node number [default: 0]

  -p <path>, --path <path>                 log files retrieval location [default: ./]

  -h, --help                               show this help


Example

$ iguard_ls –c db2netboost.conf –a testdb list
S00000012.log
S00000013.log
S00000014.log
S00000015.log
$ iguard_ls –c db2netboost.conf –a testdb get S00000012.log
writing ./S00000012.log
$ iguard_ls –c db2netboost.conf –a testdb mget 2 4

Writing
./S00000012.log
./S00000013.log
./S00000014.log
$ iguard_ls –c db2netboost.conf –a testdb –p /tmp mget 2 4

Writing
/tmp/S00000012.log
/tmp/S00000013.log
/tmp/S00000014.log

InfiniGuard DB2 for AIX Plugin Error Codes

# cat db2_reason_code.hpp

/**

 * This is provided for beta release testing only. No license has been given to use this file beyond simple error code identification.

 */

/*============================================================================*/

#define DB2Q_OK 0

/*============================================================================*/

/* Reason codes for sqluvint. */


/* An Error occured while setting up logging facilities. */

#define DB2Q_ERROR_OPEN_LOGS -1001


/* A null pointer was passed to the plugin by Db2. */

#define DB2Q_NULL_INPUT 1002


/* An error occured while creating the session context. */

#define DB2Q_CONTEXT_ERROR 1003


/* The plugin failed while attempting to get backups from the server. */

#define DB2Q_FIND_BACKUP_FAILED 1007


/* The plugin did not find any matching backups on the server. */

#define DB2Q_NO_BACKUPS 1008


/* The plugin failed to open a file. */

#define DB2Q_OPEN_FILE_FAILURE 1005


/* Plugin recieved an invalid action. */

#define DB2Q_ACTION_INVALID 1010


/* Plugin recieved an unsupported action. */

#define DB2Q_ACTION_UNSUPPORTED 1011


/* The plugin encountered an unknown error */

#define DB2Q_UNKNOWN_ERROR 1100

/*============================================================================*/

/* Reason codes for sqluvget and sqluvput. */


/* No logging facility was found. */

#define DB2Q_ERROR_NO_LOG -2001


/* The plugin was not in the correct state for the current function. */

#define DB2Q_ERROR_BAD_CALL_SEQUENCE 2003


/* A file was open when it should not have been. */

#define DB2Q_ERROR_FILE_OPEN 2004


/* Could not find the correct filename. */

#define DB2Q_ERROR_NO_FILENAME 2005


/* No file was open for the current operation. */

#define DB2Q_ERROR_NO_FILE 2007


/* Failed to read data from the server. */

#define DB2Q_ERROR_READ 2008


/* Failed to write data to the server. */

#define DB2Q_ERROR_WRITE 2009

/*============================================================================*/

/* Reason codes for sqluvend. */


/* No handle found. */

#define DB2Q_NO_HANDLE 4001


/* Failed to flush data to the server. */

#define DB2Q_ERROR_FLUSH 4002


/* Failed to close file. */

#define DB2Q_ERROR_CLOSE_FILE 4003

/*============================================================================*/

/* Reason codes for sqluvdel. */


Contacting INFINIDAT

For information on how to contact INFINIDAT support, see: https://support.infinidat.com/hc/en-us/articles/202341652-Contact-Us.









Was this article helpful?
0 out of 0 found this helpful

0 out of 0 found this helpful

Comments