Skip to content

Remote backup storage options

Common options

storage.type

Type: string
Required: YES

Remote backup storage type. Supported values: s3, filesystem, azure.

S3 type storage options

storage:
  type: s3
  s3:
    region: <string>
    bucket: <string>
    prefix: <string>
    endpointUrl: <string>
    endpointUrlMap: 
      "node01:2017": <string>
      "node02:2017": <string>
    credentials:
      access-key-id: <your-access-key-id-here>
      secret-access-key: <your-secret-key-here>
      session-token: <string>
    uploadPartSize: <int>
    maxUploadParts: <int>
    storageClass: <string>
    serverSideEncryption:
      sseAlgorithm: aws:kms
      kmsKeyID: <your-kms-key-here>
      sseCustomerAlgorithm: AES256
      sseCustomerKey: <your_encryption_key>
    retryer:
      numMaxRetries: 3
      minRetryDelay: 30ms
      maxRetryDelay: 5m

storage.s3.provider

Type: string
Required: NO

The storage provider’s name.

Supported values: aws, gcs

storage.s3.bucket

Type: string
Required: YES

The name of the storage bucket. See the AWS Bucket naming rules and GCS bucket naming guidelines for bucket name requirements.

storage.s3.region

Type: string
Required: YES (for AWS and GCS)

The location of the storage bucket. Use the AWS region list and GCS region list to define the bucket region

storage.s3.prefix

Type: string
Required: NO

The path to the data directory on the bucket. If undefined, backups are stored in the bucket root directory

storage.s3.endpointUrl

Type: string
Required: YES (for MinIO and GCS)

The URL to access the bucket. The default value for GCS is https://storage.googleapis.com

storage.s3.endpointUrlMap

Type: array of strings
Required: NO

The list of custom paths for pbm-agents on different servers to the same storage. Use this option if pbm-agents reside on servers hidden behind different network configurations. Read more in the Support of multiple endpoints to the same S3 storage section. Supported for Amazon S3 and Microsoft Azure Blob storages. Available with version 2.8.0.

storage.s3.forcePathStyle

Type: boolean
Required: NO

By default, PBM uses the path-style URLs for accessing the S3 bucket. Setting this option to false instructs PBM to send virtual-hosted–style requests instead.

storage.s3.credentials.access-key-id

Type: string
Required: YES

Your access key to the storage bucket. This option can be omitted when you run Percona Backup for MongoDB using an EC2 instance profile. To learn more, refer to Automate access to S3 buckets for Percona Backup for MongoDB

storage.s3.credentials.secret-access-key

Type: string
Required: YES

The key to sign your programmatic requests to the storage bucket. This option can be omitted when you run Percona Backup for MongoDB using an EC2 instance profile. To learn more, refer to Automate access to S3 buckets for Percona Backup for MongoDB

storage.s3.credentials.session-token

Type: string
Required: NO

The AWS session token used to validate the temporary security credentials for accessing the S3 storage.

storage.s3.uploadPartSize

Type: int
Required: NO

The size of data chunks in bytes to be uploaded to the storage bucket. Default: 10MB

Percona Backup for MongoDB automatically increases the uploadPartSize value if the size of the file to be uploaded exceeds the max allowed file size. (The max allowed file size is calculated with the default values of uploadPartSize * maxUploadParts and is appr. 97,6 GB).

The uploadPartSize value is printed in the pbm-agent log.

By setting this option, you can manually adjust the size of data chunks if Percona Backup for MongoDB failed to do it for some reason. The defined uploadPartSize value overrides the default value and is used for calculating the max allowed file size

storage.s3.maxUploadParts

Type: int
Required: NO
Default: 10,000

The maximum number of data chunks to be uploaded to the storage bucket. Default: 10,000

By setting this option, you can override the value defined in the AWS SDK.

It can be useful when using an S3 provider that supports a smaller number of chunks for multipart uploads.

The maxUploadParts value is printed in the pbm-agent log.

storage.s3.storageClass

Type: string
Required: NO

The storage class assigned to objects stored in the S3 bucket. If not provided, the STANDARD storage class will be used. This option is available in Percona Backup for MongoDB as of v1.7.0.

storage.s3.debugLogLevels

Type: string
Required: NO

Enables S3 debug logging for different types of S3 requests. S3 log messages are printed in the pbm logs output.

Supported values are: LogDebug, Signing, HTTPBody, RequestRetries, RequestErrors, EventStreamBody.

To specify several event types, separate them by comma. To lean more about the event types, see the documentation

When undefined, no S3 debug logging is performed.

storage.s3.insecureSkipTLSVerify

Type: bool
Required: NO
Default: False

Disables the TLS verification of the S3 storage. This allows Percona Backup for MongoDB to upload data to S3-like storages that use self-issued TLS certificates. Available in Percona Backup for MongoDB as of version 1.7.0.

Warning

Use this option with caution as it might leave a hole for man-in-the-middle attacks.

Server-side encryption options

serverSideEncryption.sseAlgorithm

Type: string
Required: NO

The key management mode used for server-side encryption with the encryption keys stored in AWS KMS.

Supported value: aws:kms

serverSideEncryption.kmsKeyID

Type: string
Required: NO

Your customer-managed key stored in the AWS KMS.

serverSideEncryption.sseCustomerAlgorithm

Type: string
Required: NO

The key management mode for server-side encryption with customer-provided keys (SSE-C).

Supported value: AES256

serverSideEncryption.sseCustomerKey

Type: string
Required: NO

Your custom encryption key. This key is not stored on the S3 storage side. Thus, it is your responsibility to track what data is encrypted with what key and for storing the key.

Upload retry options

retryer.numMaxRetries

Type: int
Required: NO
Default: 3

The maximum number of retries to upload data to S3 storage. A zero value means no retries will be performed. Available in Percona Backup for MongoDB as of 1.7.0.

retryer.minRetryDelay

Type: time.Duration
Required: NO
Default: 30ms

The minimum time to wait before the next retry, specified as a time.Duration. Units like ms, s, etc., are supported. Defaults to nanoseconds if no unit is provided. Available in Percona Backup for MongoDB as of 1.7.0.

retryer.maxRetryDelay

Type: time.Duration
Required: NO
Default: 5m

The maximum time to wait before the next retry, specified as a time.Duration. Units like ms, s, etc., are supported. Defaults to nanoseconds if no unit is provided. Available in Percona Backup for MongoDB as of 1.7.0.

Filesystem storage options

storage:
  type: filesystem
  filesystem:
    path: <string>

storage.filesystem.path

Type: string
Required: YES

The path to the backup directory

Microsoft Azure Blob storage options

storage:
  type: azure
  azure:
    account: <string>
    container: <string>
    endpointUrl: <string>
    prefix: <string>
    credentials:
      key: <your-access-key>

storage.azure.account

Type: string
Required: YES

The name of your storage account.

storage.azure.container

Type: string
Required: YES

The name of the storage container. See the Container names for naming conventions.

storage.azure.endpointUrl

Type: string
Required: NO

The URL to access the data in Microsoft Azure Blob Storage. The default value is https://<storage-account>.blob.core.windows.net.

storage.azure.prefix

Type: string
Required: NO

The path (sub-folder) to the backups inside the container. If undefined, backups are stored in the container root directory.

storage.azure.credentials.key

Type: string
Required: YES

Your access key to authorize access to data in your storage account.

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.


Last update: December 12, 2024
Created: December 12, 2024