RDS / Client / create_db_snapshot

create_db_snapshot#

RDS.Client.create_db_snapshot(**kwargs)#

Creates a snapshot of a DB instance. The source DB instance must be in the available or storage-optimization state.

See also: AWS API Documentation

Request Syntax

response = client.create_db_snapshot(
    DBSnapshotIdentifier='string',
    DBInstanceIdentifier='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
Parameters:
  • DBSnapshotIdentifier (string) –

    [REQUIRED]

    The identifier for the DB snapshot.

    Constraints:

    • Can’t be null, empty, or blank

    • Must contain from 1 to 255 letters, numbers, or hyphens

    • First character must be a letter

    • Can’t end with a hyphen or contain two consecutive hyphens

    Example: my-snapshot-id

  • DBInstanceIdentifier (string) –

    [REQUIRED]

    The identifier of the DB instance that you want to create the snapshot of.

    Constraints:

    • Must match the identifier of an existing DBInstance.

  • Tags (list) –

    A list of tags. For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

    • (dict) –

      Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

      For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

      • Key (string) –

        A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can’t be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, ‘_’, ‘.’, ‘:’, ‘/’, ‘=’, ‘+’, ‘-’, ‘@’ (Java regex: “^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$”).

      • Value (string) –

        A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can’t be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, ‘_’, ‘.’, ‘:’, ‘/’, ‘=’, ‘+’, ‘-’, ‘@’ (Java regex: “^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$”).

Return type:

dict

Returns:

Response Syntax

{
    'DBSnapshot': {
        'DBSnapshotIdentifier': 'string',
        'DBInstanceIdentifier': 'string',
        'SnapshotCreateTime': datetime(2015, 1, 1),
        'Engine': 'string',
        'AllocatedStorage': 123,
        'Status': 'string',
        'Port': 123,
        'AvailabilityZone': 'string',
        'VpcId': 'string',
        'InstanceCreateTime': datetime(2015, 1, 1),
        'MasterUsername': 'string',
        'EngineVersion': 'string',
        'LicenseModel': 'string',
        'SnapshotType': 'string',
        'Iops': 123,
        'OptionGroupName': 'string',
        'PercentProgress': 123,
        'SourceRegion': 'string',
        'SourceDBSnapshotIdentifier': 'string',
        'StorageType': 'string',
        'TdeCredentialArn': 'string',
        'Encrypted': True|False,
        'KmsKeyId': 'string',
        'DBSnapshotArn': 'string',
        'Timezone': 'string',
        'IAMDatabaseAuthenticationEnabled': True|False,
        'ProcessorFeatures': [
            {
                'Name': 'string',
                'Value': 'string'
            },
        ],
        'DbiResourceId': 'string',
        'TagList': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'OriginalSnapshotCreateTime': datetime(2015, 1, 1),
        'SnapshotDatabaseTime': datetime(2015, 1, 1),
        'SnapshotTarget': 'string',
        'StorageThroughput': 123,
        'DBSystemId': 'string',
        'DedicatedLogVolume': True|False,
        'MultiTenant': True|False
    }
}

Response Structure

  • (dict) –

    • DBSnapshot (dict) –

      Contains the details of an Amazon RDS DB snapshot.

      This data type is used as a response element in the DescribeDBSnapshots action.

      • DBSnapshotIdentifier (string) –

        Specifies the identifier for the DB snapshot.

      • DBInstanceIdentifier (string) –

        Specifies the DB instance identifier of the DB instance this DB snapshot was created from.

      • SnapshotCreateTime (datetime) –

        Specifies when the snapshot was taken in Coordinated Universal Time (UTC). Changes for the copy when the snapshot is copied.

      • Engine (string) –

        Specifies the name of the database engine.

      • AllocatedStorage (integer) –

        Specifies the allocated storage size in gibibytes (GiB).

      • Status (string) –

        Specifies the status of this DB snapshot.

      • Port (integer) –

        Specifies the port that the database engine was listening on at the time of the snapshot.

      • AvailabilityZone (string) –

        Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot.

      • VpcId (string) –

        Provides the VPC ID associated with the DB snapshot.

      • InstanceCreateTime (datetime) –

        Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.

      • MasterUsername (string) –

        Provides the master username for the DB snapshot.

      • EngineVersion (string) –

        Specifies the version of the database engine.

      • LicenseModel (string) –

        License model information for the restored DB instance.

      • SnapshotType (string) –

        Provides the type of the DB snapshot.

      • Iops (integer) –

        Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.

      • OptionGroupName (string) –

        Provides the option group name for the DB snapshot.

      • PercentProgress (integer) –

        The percentage of the estimated data that has been transferred.

      • SourceRegion (string) –

        The Amazon Web Services Region that the DB snapshot was created in or copied from.

      • SourceDBSnapshotIdentifier (string) –

        The DB snapshot Amazon Resource Name (ARN) that the DB snapshot was copied from. It only has a value in the case of a cross-account or cross-Region copy.

      • StorageType (string) –

        Specifies the storage type associated with DB snapshot.

      • TdeCredentialArn (string) –

        The ARN from the key store with which to associate the instance for TDE encryption.

      • Encrypted (boolean) –

        Indicates whether the DB snapshot is encrypted.

      • KmsKeyId (string) –

        If Encrypted is true, the Amazon Web Services KMS key identifier for the encrypted DB snapshot.

        The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

      • DBSnapshotArn (string) –

        The Amazon Resource Name (ARN) for the DB snapshot.

      • Timezone (string) –

        The time zone of the DB snapshot. In most cases, the Timezone element is empty. Timezone content appears only for snapshots taken from Microsoft SQL Server DB instances that were created with a time zone specified.

      • IAMDatabaseAuthenticationEnabled (boolean) –

        Indicates whether mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled.

      • ProcessorFeatures (list) –

        The number of CPU cores and the number of threads per core for the DB instance class of the DB instance when the DB snapshot was created.

        • (dict) –

          Contains the processor features of a DB instance class.

          To specify the number of CPU cores, use the coreCount feature name for the Name parameter. To specify the number of threads per core, use the threadsPerCore feature name for the Name parameter.

          You can set the processor features of the DB instance class for a DB instance when you call one of the following actions:

          • CreateDBInstance

          • ModifyDBInstance

          • RestoreDBInstanceFromDBSnapshot

          • RestoreDBInstanceFromS3

          • RestoreDBInstanceToPointInTime

          You can view the valid processor values for a particular instance class by calling the DescribeOrderableDBInstanceOptions action and specifying the instance class for the DBInstanceClass parameter.

          In addition, you can use the following actions for DB instance class processor information:

          • DescribeDBInstances

          • DescribeDBSnapshots

          • DescribeValidDBInstanceModifications

          If you call DescribeDBInstances, ProcessorFeature returns non-null values only if the following conditions are met:

          • You are accessing an Oracle DB instance.

          • Your Oracle DB instance class supports configuring the number of CPU cores and threads per core.

          • The current number CPU cores and threads is set to a non-default value.

          For more information, see Configuring the Processor of the DB Instance Class in the Amazon RDS User Guide.

          • Name (string) –

            The name of the processor feature. Valid names are coreCount and threadsPerCore.

          • Value (string) –

            The value of a processor feature name.

      • DbiResourceId (string) –

        The identifier for the source DB instance, which can’t be changed and which is unique to an Amazon Web Services Region.

      • TagList (list) –

        A list of tags. For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

        • (dict) –

          Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

          For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

          • Key (string) –

            A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can’t be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, ‘_’, ‘.’, ‘:’, ‘/’, ‘=’, ‘+’, ‘-’, ‘@’ (Java regex: “^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$”).

          • Value (string) –

            A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can’t be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, ‘_’, ‘.’, ‘:’, ‘/’, ‘=’, ‘+’, ‘-’, ‘@’ (Java regex: “^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$”).

      • OriginalSnapshotCreateTime (datetime) –

        Specifies the time of the CreateDBSnapshot operation in Coordinated Universal Time (UTC). Doesn’t change when the snapshot is copied.

      • SnapshotDatabaseTime (datetime) –

        The timestamp of the most recent transaction applied to the database that you’re backing up. Thus, if you restore a snapshot, SnapshotDatabaseTime is the most recent transaction in the restored DB instance. In contrast, originalSnapshotCreateTime specifies the system time that the snapshot completed.

        If you back up a read replica, you can determine the replica lag by comparing SnapshotDatabaseTime with originalSnapshotCreateTime. For example, if originalSnapshotCreateTime is two hours later than SnapshotDatabaseTime, then the replica lag is two hours.

      • SnapshotTarget (string) –

        Specifies where manual snapshots are stored: Amazon Web Services Outposts or the Amazon Web Services Region.

      • StorageThroughput (integer) –

        Specifies the storage throughput for the DB snapshot.

      • DBSystemId (string) –

        The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. The Oracle SID is also the name of your CDB.

      • DedicatedLogVolume (boolean) –

        Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      • MultiTenant (boolean) –

        Indicates whether the snapshot is of a DB instance using the multi-tenant configuration (TRUE) or the single-tenant configuration (FALSE).

Exceptions

  • RDS.Client.exceptions.DBSnapshotAlreadyExistsFault

  • RDS.Client.exceptions.InvalidDBInstanceStateFault

  • RDS.Client.exceptions.DBInstanceNotFoundFault

  • RDS.Client.exceptions.SnapshotQuotaExceededFault

Examples

This example creates a DB snapshot.

response = client.create_db_snapshot(
    DBInstanceIdentifier='mymysqlinstance',
    DBSnapshotIdentifier='mydbsnapshot',
)

print(response)

Expected Output:

{
    'DBSnapshot': {
    },
    'ResponseMetadata': {
        '...': '...',
    },
}