备份和还原 Amazon RDS Custom for SQL Server 数据库实例
与 Amazon RDS 相同,RDS Custom 会在数据库实例的备份时段中,创建并保存 RDS Custom for SQL Server 数据库实例的自动备份。您还可以手动备份数据库实例。
此过程与拍摄 Amazon RDS 数据库实例的快照相同。RDS Custom 数据库实例的第一个快照包含完整数据库实例的数据。后续快照为增量快照。
使用 Amazon Web Services Management Console 或 Amazon CLI 还原数据库快照。
主题
创建 RDS Custom for SQL Server 快照
RDS Custom for SQL Server 可创建数据库实例的存储卷快照,并备份整个数据库实例而不仅仅是单个数据库。创建快照时,请指定要备份哪个 RDS Custom for SQL Server 数据库实例。为您的快照命名,以便稍后通过它进行还原。
当您创建快照时,RDS Custom for SQL Server 会为附加到数据库实例的每个卷创建 Amazon EBS 快照。RDS Custom for SQL Server 使用根卷的 EBS 快照注册新的 Amazon Machine Image(AMI)。为了使快照轻松与特定数据库实例关联,请使用 DBSnapshotIdentifier
、DbiResourceId
和 VolumeType
标记它们。
创建数据库快照会导致短暂的输入/输出暂停。此暂停可持续数秒到几分钟,具体取决于数据库实例的大小和类。快照创建时间因数据库的大小而异。由于快照包含整个存储卷,因此,文件(如临时文件)的大小也会影响创建快照创建时间。要了解创建快照的更多信息,请参阅 创建数据库快照。
使用控制台或 Amazon CLI 创建 RDS Custom for SQL Server 快照。
创建 RDS Custom 快照
-
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库)。
-
在 RDS Custom 数据库实例列表中,选择您想拍摄快照的实例。
-
对于操作,选择拍摄快照。
将显示 Take DB snapshot (拍摄数据库快照) 窗口。
-
在 Snapshot name(快照名称)框中,请输入快照的名称。
-
选择 Take snapshot (拍摄快照)。
您可以通过使用 create-db-snapshot Amazon CLI 命令创建 RDS Custom 数据库实例的快照。
指定以下选项:
-
--db-instance-identifier
– 标识要备份的 RDS Custom 数据库实例 -
--db-snapshot-identifier
– 命名 RDS Custom 快照,以便以后通过它进行还原
在此示例中,您将给名为
的 RDS Custom 数据库实例创建名为 my-custom-instance
的数据库快照。my-custom-snapshot
对于 Linux、macOS 或 Unix:
aws rds create-db-snapshot \ --db-instance-identifier
my-custom-instance
\ --db-snapshot-identifiermy-custom-snapshot
对于 Windows:
aws rds create-db-snapshot ^ --db-instance-identifier
my-custom-instance
^ --db-snapshot-identifiermy-custom-snapshot
从 RDS Custom for SQL Server 数据库快照还原
在还原 RDS Custom for SQL Server 数据库实例时,需要提供数据库快照的名称以及新实例的名称。您不能从快照还原到现有的 RDS Custom 数据库实例。还原时将新建一个 RDS Custom for SQL Server 数据库实例。
该还原过程与 Amazon RDS 中的还原有以下方式不同:
-
还原快照之前,RDS Custom for SQL Server 会备份现有配置文件。这些文件提供在目录
/rdsdbdata/config/backup
中的还原实例上。RDS Custom for SQL Server 使用原定设置参数还原数据库快照,并用现有参数覆盖以前的数据库配置文件。因此,还原的实例不会保留自定义参数和对数据库配置文件的更改。 -
还原的数据库的名称与快照中的名称相同。您不能指定不同的名称。
要从数据库快照还原 RDS Custom 数据库实例
-
登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择快照。
-
选择要从其还原的数据库快照。
-
对于操作,选择还原快照。
-
请在 Restore DB instance(还原数据库实例)页面上,为 DB instance identifier(数据库实例标识符)输入还原的 RDS Custom 数据库实例的名称。
-
选择还原数据库实例。
您可以通过使用 restore-db-instance-from-db-snapshot Amazon CLI 命令还原 RDS Custom 数据库快照。
如果要从中还原的快照适用于私有数据库实例,请务必同时指定正确的 db-subnet-group-name
和 no-publicly-accessible
。否则,数据库实例原定设置为可公开访问。以下选项为必填:
-
db-snapshot-identifier
– 标识要从中进行还原的快照 -
db-instance-identifier
– 指定要从数据库快照创建的 RDS Custom 数据库实例的名称 -
custom-iam-instance-profile
– 指定与 RDS Custom 数据库实例的基础 Amazon EC2 实例关联的实例配置文件。
以下代码为 my-custom-instance
还原名为 my-custom-snapshot
的快照。
对于 Linux、macOS 或 Unix:
aws rds restore-db-instance-from-db-snapshot \ --db-snapshot-identifier
my-custom-snapshot
\ --db-instance-identifiermy-custom-instance
\ --custom-iam-instance-profileAWSRDSCustomInstanceProfileForRdsCustomInstance
\ --no-publicly-accessible
对于 Windows:
aws rds restore-db-instance-from-db-snapshot ^ --db-snapshot-identifier
my-custom-snapshot
^ --db-instance-identifiermy-custom-instance
^ --custom-iam-instance-profileAWSRDSCustomInstanceProfileForRdsCustomInstance
^ --no-publicly-accessible
将 RDS Custom for SQL Server 实例还原到某个时间点
您可以将数据库实例还原到某个特定时间点 (PITR),以创建新数据库实例。要支持 PITR,您的数据库实例必须将备份保留期设置为非零值。
RDS Custom for SQL Server 数据库实例的最近可还原时间取决于多个因素,但通常为当前时间的 5 分钟内。要查看某个数据库实例的最近可还原时间,请使用 Amazon CLI describe-db-instances 命令,并查看该数据库实例的 LatestRestorableTime
字段中返回的值。要在 Amazon RDS 控制台中查看每个数据库实例的最近可还原时间,请选择自动备份。
您可以还原至备份保留期内的任何时间点。要查看每个数据库实例的最早可还原时间,请在 Amazon RDS 控制台中选择自动备份。
有关 PITR 的一般信息,请参阅将数据库实例还原到指定时间。
RDS Custom for SQL Server 的 PITR 注意事项
在 RDS Custom for SQL Server 中,PITR 与 Amazon RDS 中的 PITR 有以下重要的区别:
-
PITR 仅还原数据库实例中的数据库。它不会还原操作系统或 C: 驱动器上的文件。
-
对于 RDS Custom for SQL Server 数据库实例,数据库将自动备份,并且只有在以下条件下才有资格用于 PITR:
-
数据库处于联机状态。
-
它的还原模式设置为
FULL
。 -
它是可写的。
-
它的物理文件放在 D: 驱动器上。
-
它未在
rds_pitr_blocked_databases
表中列出。有关更多信息,请参阅使数据库不符合 PITR 资格。
-
-
RDS Custom for SQL Server 允许每个数据库实例最多 5000 个数据库。不过,针对 RDS Custom for SQL Server 数据库实例,PITR 操作还原的数据库的最大数量为 100 个。这 100 个数据库由其数据库 ID 的顺序决定。
其他不属于 PITR 的数据库可以从数据库快照中还原,包括用于 PITR 的自动备份。
-
添加新数据库、重命名数据库或还原符合 PITR 条件的数据库将启动数据库实例的快照。
-
还原的数据库的名称与源数据库实例中的名称相同。您不能指定不同的名称。
-
AWSRDSCustomSQLServerIamRolePolicy
需要新的权限。有关更多信息,请参阅将访问策略添加到 AWSRDSCustomSQLServerInstanceRole。 -
RDS Custom for SQL Server 不支持时区更改。如果更改操作系统或数据库实例时区,PITR(和其他自动化)将无法正常工作。
使数据库不符合 PITR 资格
您可以指定某些 RDS Custom for SQL Server 数据库不属于自动备份和 PITR 的一部分。要做到这一点,请将其 database_id
值放入 rds_pitr_blocked_databases
表中。使用以下 SQL 脚本创建表。
要创建 rds_pitr_blocked_databases 表
-
请运行以下 SQL 脚本。
create table msdb..rds_pitr_blocked_databases ( database_id INT NOT NULL, database_name SYSNAME NOT NULL, db_entry_updated_date datetime NOT NULL DEFAULT GETDATE(), db_entry_updated_by SYSNAME NOT NULL DEFAULT CURRENT_USER, PRIMARY KEY (database_id) );
有关符合条件和不符合条件的数据库的列表,请参阅 Amazon S3 存储桶 do-not-delete-rds-custom-
中的 $ACCOUNT_ID
-$REGION
-unique_identifier
RDSCustomForSQLServer/Instances/
目录中的 DB_instance_resource_ID
/TransactionLogMetadataRI.End
文件。有关 RI.End
文件的更多信息,请参阅Amazon S3 中的事务日志。
Amazon S3 中的事务日志
备份保留期决定了 RDS Custom for SQL Server 数据库实例的事务日志是否会自动提取并上传到 Amazon S3。非零值表示创建了自动备份,且 RDS Custom 代理每 5 分钟将事务日志上传到 S3 一次。
S3 上的事务日志文件将使用您在创建数据库实例时提供的 Amazon KMS key 静态加密。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的使用服务器端加密保护数据。
每个数据库的事务日志将被上传到名为 do-not-delete-rds-custom-
的 S3 存储桶。S3 存储桶中的 $ACCOUNT_ID
-$REGION
-unique_identifier
RDSCustomForSQLServer/Instances/
目录包含两个子目录:DB_instance_resource_ID
-
TransactionLogs
– 包含每个数据库的事务日志及其各自的元数据。事务日志文件名称遵循模式
,例如:yyyyMMddHHmm
.database_id
.timestamp
202110202230.11.1634769287
带有后缀
_metadata
的相同文件名称包含有关事务日志的信息,例如日志序列号、数据库名称和RdsChunkCount
。RdsChunkCount
确定有多少个物理文件代表单个事务日志文件。您可能会看到带有后缀_0001
、_0002
等的文件,它们表示事务日志文件的物理数据块。如果要使用分块的事务日志文件,请确保在下载后合并这些数据块。考虑您拥有以下文件的情况:
-
202110202230.11.1634769287
-
202110202230.11.1634769287_0001
-
202110202230.11.1634769287_0002
-
202110202230.11.1634769287_metadata
RdsChunkCount
为3
。合并文件的顺序如下:202110202230.11.1634769287
、202110202230.11.1634769287_0001
、202110202230.11.1634769287_0002
。 -
-
TransactionLogMetadata
– 包含有关事务日志提取的每次迭代的元数据信息。RI.End
文件包含提取了事务日志的所有数据库的信息,以及所有存在但没有提取其事务日志的数据库的信息。RI.End
文件名称遵循模式
,例如:yyyyMMddHHmm
.RI.End.timestamp
202110202230.RI.End.1634769281
您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 将 RDS Custom for SQL Server 数据库实例还原到某个时间点。
要将 RDS Custom 数据库实例还原至指定时间
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Automated backups(自动备份)。
-
选择要还原的 RDS Custom 数据库实例。
-
对于 Actions (操作),选择 Restore to point in time (还原到时间点)。
此时会显示还原到时间点窗口。
-
选择最近可还原时间以还原到可能的最近时间,或选择自定义来选择时间。
如果您选择 Custom(自定义),请输入要将实例集群还原到的日期和时间。
时间以您的本地时区显示,表示为协调世界时 (UTC) 的偏移量。例如,UTC-5 是东部标准时间/中部夏令时。
-
对于 DB instance identifier(数据库实例标识符),请输入目标还原后的 RDS Custom 数据库实例的名称。名称必须唯一。
-
根据需要选择其他选项,例如数据库实例类。
-
选择还原到时间点。
通过使用 restore-db-instance-to-point-in-time Amazon CLI 命令创建新的 RDS Custom 数据库实例,将数据库实例还原到指定时间。
使用以下选项之一指定要从中恢复的备份:
-
--source-db-instance-identifier
mysourcedbinstance
-
--source-dbi-resource-id
dbinstanceresourceID
-
--source-db-instance-automated-backups-arn
backupARN
custom-iam-instance-profile
选项是必需的。
截至指定的时间,以下示例会将 my-custom-db-instance
还原到名为 my-restored-custom-db-instance
的新数据库实例。
对于 Linux、macOS 或 Unix:
aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier
my-custom-db-instance
\ --target-db-instance-identifiermy-restored-custom-db-instance
\ --custom-iam-instance-profileAWSRDSCustomInstanceProfileForRdsCustomInstance
\ --restore-time2022-10-14T23:45:00.000Z
对于 Windows:
aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier
my-custom-db-instance
^ --target-db-instance-identifiermy-restored-custom-db-instance
^ --custom-iam-instance-profileAWSRDSCustomInstanceProfileForRdsCustomInstance
^ --restore-time2022-10-14T23:45:00.000Z
删除 RDS Custom for SQL Server 快照
如果不再需要,您可以删除 RDS Custom for SQL Server 管理的数据库快照。对于 Amazon RDS 和 RDS Custom 数据库实例而言,删除过程是相同的。
二进制卷和根卷的 Amazon EBS 快照会在您的账户中保留更长时间,因为它们可能与您账户中运行的某些实例或其他 RDS Custom for SQL Server 快照关联。当这些 EBS 快照不再与任何现有 RDS Custom for SQL Server 资源(数据库实例或备份)相关后,将会被自动删除。
要删除 RDS Custom 数据库实例的快照
登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择快照。
-
选择要删除的数据库快照。
-
对于 Actions(操作),选择 Delete snapshot(删除快照)。
-
在确认页面上选择 Delete (删除)。
要删除 RDS Custom 快照,请使用 Amazon CLI 命令 delete-db-snapshot。
以下选项为必填项:
-
--db-snapshot-identifier
– 要删除的快照
以下示例将删除 my-custom-snapshot
数据库快照。
对于 Linux、macOS 或 Unix:
aws rds delete-db-snapshot \ --db-snapshot-identifier
my-custom-snapshot
对于 Windows:
aws rds delete-db-snapshot ^ --db-snapshot-identifier
my-custom-snapshot
删除 RDS Custom for SQL Server 自动备份
当不再需要 RDS Custom for SQL Server 的保留自动备份时,您可以删除它们。此过程与删除 Amazon RDS 备份的过程相同。
删除保留的自动备份
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Automated backups(自动备份)。
-
选择 Retained (保留)。
-
选择要删除的保留自动备份。
-
对于 Actions (操作),选择 Delete (删除)。
-
在确认页面上,输入
delete me
并选择 Delete (删除)。
可以通过使用 Amazon CLI 命令 delete-db-instance-automated-backup 删除保留的自动备份。
以下选项用于删除保留的自动备份:
-
--dbi-resource-id
– 源 RDS Custom 数据库实例的资源标识符。可以通过使用 Amazon CLI 命令 describe-db-instance-automated-backups 查找保留自动备份的源数据库实例的资源标识符。
以下示例删除具有源数据库实例资源标识符 custom-db-123ABCEXAMPLE
的保留自动备份。
对于 Linux、macOS 或 Unix:
aws rds delete-db-instance-automated-backup \ --dbi-resource-id
custom-db-123ABCEXAMPLE
对于 Windows:
aws rds delete-db-instance-automated-backup ^ --dbi-resource-id
custom-db-123ABCEXAMPLE