Remote storage requirements

Remote storage aliases are supported by a select number of Db2® commands for accessing data on the Azure Blob Storage, IBM® Cloud Object Storage, the Amazon Simple Storage Service (S3), or other object storage providers using the S3 protocol.

Supported platforms and prerequisites

All currently supported versions of Linux on x86-64, System Z, and POWER Little Endian architecture.

The following software packages must be installed:
  • libcURL, version 7.76.1 or later.
  • libxml2, version 2.9.13 or later. This package is needed for REST mode only.
The following software packages are optional:
  • Unzip version 6.0 or later. Required for decompression of .zip input files. For more information, see Compressed input data.

Supported remote storage providers

The following remote storage providers are supported:

  • The IBM Cloud® Object Storage, Amazon S3, and Microsoft Azure Blob Storage providers are supported for all commands that are enabled for remote storage.
  • Other object storage providers that can be access using the S3 protocol are supported for all commands that are enabled for remote storage.
  • The Microsoft Azure Blob Storage is only supported on LinuxAMD64 RHEL9.4 or later.

Limitations

In all configurations, the following limitations exist for Amazon S3:

  • AWS Key Management Services (KMS) are not supported.
  • AWS role-based (IAM) or token-based (STS) credentials are not supported.

When the DB2_ENABLE_COS_SDK registry variable is set to OFF, remote storage access uses the legacy libcurl method. This method has numerous additional limitations for Amazon S3:

  • The Object Lock feature is not supported.
  • Encrypted buckets are not supported.

You are encouraged to use secure endpoints in all configurations as the data sent to insecure endpoints is not encrypted. Secure endpoints are secured with a SSL certificate chain that can be validated. If this is not feasible, the endpoint can be used in insecure mode.

Local staging path

Communication with remote storage uses a local staging path to hold temporary files in some situations.

When the DB2_ENABLE_COS_SDK registry variable is set to OFF, remote storage communication with cloud object storage uses the legacy libcurl method, which requires a local staging path to hold temporary files in the following situations:
  • Downloading an object from a remote storage server
  • Uploading an object from a local file system to a remote storage server
Note: In Db2 12.1.2 and later, the legacy libcurl method is deprecated and might be removed in a future release.
When the DB2_ENABLE_COS_SDK registry variable is set to ON, the local staging path is used in the following cases:
  • The local staging space is not needed for BACKUP and LOAD COPY operations. The maximum size of each session is determined by multiplying the value of the database manager configuration parameter MULTIPARTSIZEMB by the maximum number of parts that are allowed by the Cloud Object Storage provider.
  • The local staging path is needed for RESTORE operations. This location is needed to temporarily store the downloaded backup image.
  • The local staging path is needed for log archive and retrieve operations. This location is used to temporarily store the log files being uploaded or downloaded.
You can configure the default local staging path with the DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH registry variable. Changes to this registry variable are not immediate and require an instance restart. The size of the file system for this staging path must be sufficient to hold temporary files, such as the source files for LOAD operations, images for BACKUP, RESTORE, and LOAD COPY operations, and log files for log archive and log retrieve operations.
Note: For Db2 12.1.2 and later installations, log archive operations do not require a staging file.
  • For BACKUP operations, each backup session to the remote storage has a maximum size of 5 GB, which can produce a total database backup image size of 5 TB.
  • For LOAD COPY operations, each LOAD COPY is restricted to a maximum size of 5 GB.

Compressed input data

Users are able to load directly from compressed input data files stored in the supported remote storage.

When the DB2_ENABLE_COS_SDK registry variable is set to OFF, the following common compression formats are supported:
  • *.gz - created by gzip utility
  • *.zip - created by zip utility
Note: support for .zip is deprecated and will be removed in a future release
When the DB2_ENABLE_COS_SDK registry variable is set to ON, the following common compression formats are supported:
  • *.gz - created by gzip utility

It is required that the compressed file name has the same name as the original file, with the additional .zip or .gz file extension. For example, if a file has the name db2load.txt, it is expected that the compressed file name is db2load.txt.zip or db2load.txt.gz.