Menu
Amazon Relational Database Service
API Reference (API Version 2014-10-31)

RestoreDBInstanceFromDBSnapshot

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with the most of original configuration with the default security group and the default DB parameter group. By default, the new DB instance is created as a single-AZ deployment except when the instance is a SQL Server instance that has an option group that is associated with mirroring; in this case, the instance becomes a mirrored AZ deployment and not a single-AZ deployment.

If your intent is to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS does not allow two DB instances with the same name. Once you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you will replace the original DB instance with the DB instance created from the snapshot.

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

AutoMinorVersionUpgrade

Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window.

Type: Boolean

Required: No

AvailabilityZone

The EC2 Availability Zone that the DB instance is created in.

Default: A random, system-chosen Availability Zone.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Example: us-east-1a

Type: String

Required: No

CopyTagsToSnapshot

True to copy all tags from the restored DB instance to snapshots of the DB instance, and otherwise false. The default is false.

Type: Boolean

Required: No

DBInstanceClass

The compute and memory capacity of the Amazon RDS DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Default: The same DBInstanceClass as the original DB instance.

Type: String

Required: No

DBInstanceIdentifier

Name of the DB instance to create from the DB snapshot. This parameter isn't case-sensitive.

Constraints:

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

  • First character must be a letter

  • Cannot end with a hyphen or contain two consecutive hyphens

Example: my-snapshot-id

Type: String

Required: Yes

DBName

The database name for the restored DB instance.

Note

This parameter doesn't apply to the MySQL, PostgreSQL, or MariaDB engines.

Type: String

Required: No

DBSnapshotIdentifier

The identifier for the DB snapshot to restore from.

Constraints:

  • Must match the identifier of an existing DBSnapshot.

  • If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

Type: String

Required: Yes

DBSubnetGroupName

The DB subnet group name to use for the new instance.

Constraints: If supplied, must match the name of an existing DBSubnetGroup.

Example: mySubnetgroup

Type: String

Required: No

Domain

Specify the Active Directory Domain to restore the instance in.

Type: String

Required: No

DomainIAMRoleName

Specify the name of the IAM role to be used when making API calls to the Directory Service.

Type: String

Required: No

EnableIAMDatabaseAuthentication

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

  • For MySQL 5.6, minor version 5.6.34 or higher

  • For MySQL 5.7, minor version 5.7.16 or higher

  • Aurora 5.6 or higher.

Default: false

Type: Boolean

Required: No

Engine

The database engine to use for the new instance.

Default: The same as source

Constraint: Must be compatible with the engine of the source. You can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot.

Valid Values:

  • aurora

  • aurora-postgresql

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se2

  • oracle-se1

  • oracle-se

  • postgres

  • sqlserver-ee

  • sqlserver-se

  • sqlserver-ex

  • sqlserver-web

Type: String

Required: No

Iops

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter is not specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.

The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS Storage to Improve Performance.

Constraints: Must be an integer greater than 1000.

Type: Integer

Required: No

LicenseModel

License model information for the restored DB instance.

Default: Same as source.

Valid values: license-included | bring-your-own-license | general-public-license

Type: String

Required: No

MultiAZ

Specifies if the DB instance is a Multi-AZ deployment.

Constraint: You can't specify the AvailabilityZone parameter if the MultiAZ parameter is set to true.

Type: Boolean

Required: No

OptionGroupName

The name of the option group to be used for the restored DB instance.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group, and that option group can't be removed from a DB instance once it is associated with a DB instance

Type: String

Required: No

Port

The port number on which the database accepts connections.

Default: The same port as the original DB instance

Constraints: Value must be 1150-65535

Type: Integer

Required: No

PubliclyAccessible

Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether a VPC has been requested or not. The following list shows the default behavior in each case.

  • Default VPC: true

  • VPC: false

If no DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is publicly accessible. If a specific DB subnet group has been specified as part of the request and the PubliclyAccessible value has not been set, the DB instance is private.

Type: Boolean

Required: No

StorageType

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise standard

Type: String

Required: No

Tags.Tag.N

A list of tags. For more information, see Tagging Amazon RDS Resources.

Type: Array of Tag objects

Required: No

TdeCredentialArn

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

Type: String

Required: No

TdeCredentialPassword

The password for the given ARN from the key store in order to access the device.

Type: String

Required: No

Response Elements

The following element is returned by the service.

DBInstance

Contains the details of an Amazon RDS DB instance.

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

Type: DBInstance object

Errors

For information about the errors that are common to all actions, see Common Errors.

AuthorizationNotFound

Specified CIDRIP or EC2 security group is not authorized for the specified DB security group.

RDS may not also be authorized via IAM to perform necessary actions on your behalf.

HTTP Status Code: 404

DBInstanceAlreadyExists

User already has a DB instance with the given identifier.

HTTP Status Code: 400

DBSecurityGroupNotFound

DBSecurityGroupName does not refer to an existing DB security group.

HTTP Status Code: 404

DBSnapshotNotFound

DBSnapshotIdentifier does not refer to an existing DB snapshot.

HTTP Status Code: 404

DBSubnetGroupDoesNotCoverEnoughAZs

Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.

HTTP Status Code: 400

DBSubnetGroupNotFoundFault

DBSubnetGroupName does not refer to an existing DB subnet group.

HTTP Status Code: 404

DomainNotFoundFault

Domain does not refer to an existing Active Directory Domain.

HTTP Status Code: 404

InstanceQuotaExceeded

Request would result in user exceeding the allowed number of DB instances.

HTTP Status Code: 400

InsufficientDBInstanceCapacity

Specified DB instance class is not available in the specified Availability Zone.

HTTP Status Code: 400

InvalidDBSnapshotState

The state of the DB snapshot does not allow deletion.

HTTP Status Code: 400

InvalidRestoreFault

Cannot restore from vpc backup to non-vpc DB instance.

HTTP Status Code: 400

InvalidSubnet

The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.

HTTP Status Code: 400

InvalidVPCNetworkStateFault

DB subnet group does not cover all Availability Zones after it is created because users' change.

HTTP Status Code: 400

KMSKeyNotAccessibleFault

Error accessing KMS key.

HTTP Status Code: 400

OptionGroupNotFoundFault

The specified option group could not be found.

HTTP Status Code: 404

ProvisionedIopsNotAvailableInAZFault

Provisioned IOPS not available in the specified Availability Zone.

HTTP Status Code: 400

StorageQuotaExceeded

Request would result in user exceeding the allowed amount of storage available across all DB instances.

HTTP Status Code: 400

StorageTypeNotSupported

StorageType specified cannot be associated with the DB Instance.

HTTP Status Code: 400

Example

Sample Request

https://rds.us-east-1.amazonaws.com/ ?Action=RestoreDBInstanceFromDBSnapshot &DBInstanceIdentifier=mysqldb-restored &DBSnapshotIdentifier=rds%3Amysqldb-2014-04-22-08-15 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140428/us-east-1/rds/aws4_request &X-Amz-Date=20140428T232655Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=78ac761e8c8f54a8c0727f4e67ad0a766fbb0024510b9aa34ea6d1f7df52fe92

Sample Response

<RestoreDBInstanceFromDBSnapshotResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/"> <RestoreDBInstanceFromDBSnapshotResult> <DBInstance> <BackupRetentionPeriod>7</BackupRetentionPeriod> <MultiAZ>false</MultiAZ> <DBInstanceStatus>creating</DBInstanceStatus> <VpcSecurityGroups/> <DBInstanceIdentifier>mysqldb-restored</DBInstanceIdentifier> <PreferredBackupWindow>08:14-08:44</PreferredBackupWindow> <PreferredMaintenanceWindow>fri:04:50-fri:05:20</PreferredMaintenanceWindow> <ReadReplicaDBInstanceIdentifiers/> <Engine>mysql</Engine> <PendingModifiedValues/> <LicenseModel>general-public-license</LicenseModel> <EngineVersion>5.6.13</EngineVersion> <DBParameterGroups> <DBParameterGroup> <ParameterApplyStatus>in-sync</ParameterApplyStatus> <DBParameterGroupName>default.mysql5.6</DBParameterGroupName> </DBParameterGroup> </DBParameterGroups> <OptionGroupMemberships> <OptionGroupMembership> <OptionGroupName>default:mysql-5-6</OptionGroupName> <Status>pending-apply</Status> </OptionGroupMembership> </OptionGroupMemberships> <PubliclyAccessible>true</PubliclyAccessible> <DBSecurityGroups> <DBSecurityGroup> <Status>active</Status> <DBSecurityGroupName>default</DBSecurityGroupName> </DBSecurityGroup> </DBSecurityGroups> <DBName>mysqldb</DBName> <AutoMinorVersionUpgrade>true</AutoMinorVersionUpgrade> <AllocatedStorage>100</AllocatedStorage> <MasterUsername>myawsuser</MasterUsername> <DBInstanceClass>db.m1.medium</DBInstanceClass> </DBInstance> </RestoreDBInstanceFromDBSnapshotResult> <ResponseMetadata> <RequestId>863fd73e-be2b-11d3-855b-576787000e19</RequestId> </ResponseMetadata> </RestoreDBInstanceFromDBSnapshotResponse>

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: