AWSEC2-SQLServerDBRestore - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSEC2-SQLServerDBRestore

描述

AWSEC2-SQLServerDBRestore运行手册将存储在亚马逊 S3 中的微软 SQL Server 数据库备份恢复到在亚马逊弹性计算云 (EC2) Linux 实例上运行的 SQL Server 2017。你可以自己提供运行 SQL Server 2017 Linux 的 EC2 实例。如果未提供 EC2 实例,则自动启动并使用 SQL Server 2017 配置一个新的 Ubuntu 16.04 EC2 实例。自动化支持还原完整、差异和事务日志备份。此自动化将接收多个数据库备份并自动还原所提供的文件中每个数据库的最近的有效备份。

要自动将本地 SQL Server 数据库备份和恢复到运行 SQL Server 2017 Linux 的EC2 实例,您可以使用 AWS签名的 PowerShell脚本MigrateSQLServerToEC2Linux

重要

自动化每次运行时,此运行手册将重置 SQL Server 服务器管理员 (SA) 用户密码。自动化完成后,在连接到 SQL Server 实例之前,您必须重新设置您自己的 SA 用户密码。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux

先决条件

要运行此自动化,您必须满足以下先决条件:

  • 运行此自动化的 IAM 用户或角色必须拥有内联策略,并附有 所需的 IAM 权限 中概述的权限。

  • 如果您提供自己的 EC2 实例:

    • 您提供的 EC2 实例必须是运行微软 SQL Server 2017 的 Linux 实例。

    • 您提供的 EC2 实例必须使用附加AmazonSSMManagedInstanceCore托管策略的 AWS Identity and Access Management (IAM) 实例配置文件进行配置。有关更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件

    • SSM 代理必须安装在您的 EC2 实例上。有关更多信息,请参阅在 Linux EC2 实例上安装和配置 SSM 代理

    • 该 EC2 实例必须有足够的可用磁盘空间来下载和恢复 SQL Server 备份。

限制

此自动化不支持恢复到在 EC2 实例上运行的 SQL Server Windows Server。 此自动化仅恢复与 SQL Server Linux 2017 兼容的数据库备份。有关更多信息,请参阅 Linux 上的 SQL Server 2017 的版本和支持功能

参数

此自动化具有以下参数:

  • DatabaseNames

    类型:字符串

    说明:(可选)要还原的数据库的名称的逗号分隔列表。

  • DataDirectorySize

    类型:字符串

    描述:(可选)新 EC2 实例的 SQL Server 数据目录所需的卷大小 (GiB)。

    默认值:100

  • KeyPair

    类型:字符串

    描述:(可选)创建新 EC2实例时使用的密钥对。

  • IamInstanceProfileName

    类型:字符串

    描述:(可选)要附加到新实例的 IAM EC2 实例配置文件。IAM 实例配置文件必须附加了 AmazonSSMManagedInstanceCore 托管策略。

  • InstanceId

    类型:字符串

    说明:(可选)Linux 上的运行 SQL Server 2017 的实例。如果未 InstanceId 提供,则自动化会使用提供的 InstanceType 和 SQLServer版本启动新 EC2 实例。

  • InstanceType

    类型:字符串

    描述:(可选)要启动的 EC2 实例的实例类型。

  • iss3 PresignedUrl

    类型:字符串

    说明:(可选)如果 S3Input 是预签名 S3 URL,则表示 yes

    默认值:No

    有效值:是 | 否

  • LogDirectorySize

    类型:字符串

    描述:(可选)新 EC2 实例的 SQL Server 日志目录所需的卷大小 (GiB)。

    默认值:100

  • S3Input

    类型:字符串

    描述:(必填)S3 存储桶名称、以逗号分隔的 S3 对象密钥列表,或 URLs 包含要还原的 SQL 备份文件的以逗号分隔的预签名 S3 列表。

  • SQLServer版本

    类型:字符串

    描述:(可选)要在新创建的 EC2 实例上安装的 SQL Server 2017 版本。

    有效值:Standard | Enterprise | Web | Express

  • SubnetId

    类型:字符串

    描述:(可选)启动新 EC2实例的子网。子网必须与 AWS 服务有出站连接。如果未提供值, SubnetId 则自动化将使用默认子网。

  • TempDbDirectorySize

    类型:字符串

    描述:(可选)新实例的 SQL Server tempDB 目录所需的卷大小 (GiB)。 EC2

    默认值:100

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:RebootInstances", "ec2:RunInstances", "ssm:DescribeInstanceInformation", "ssm:GetAutomationExecution", "ssm:ListCommandInvocations", "ssm:ListCommands", "ssm:SendCommand", "ssm:StartAutomationExecution" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNTID:role/ROLENAME" } ] }

文档步骤

要使用此自动化,请按照适用于实例类型的步骤进行操作:

对于新 EC2 实例:

  1. aws:executeAwsApi - 在 Ubuntu 16.04 上检索 SQL Server 2017 的 AMI ID。

  2. aws:runInstances-启动适用于 Linux 的新 EC2 实例。

  3. aws:waitForAwsResourceProperty-等待新创建的 EC2 实例准备就绪。

  4. aws:executeAwsApi - 如果实例未准备就绪,将重启实例。

  5. aws:assertAwsResourceProperty - 验证安装了 SSM 代理。

  6. aws:runCommand-在中运行 SQL Server 恢复脚本 PowerShell。

对于现有 EC2 实例:

  1. aws:waitForAwsResourceProperty-验证 EC2 实例是否已准备就绪。

  2. aws:executeAwsApi - 如果实例未准备就绪,将重启实例。

  3. aws:assertAwsResourceProperty - 验证安装了 SSM 代理。

  4. aws:runCommand-在中运行 SQL Server 恢复脚本 PowerShell。

输出

获取实例。 InstanceId

restoreToNew实例. 输出

restoreToExisting实例. 输出