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

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

AWSEC2-SQLServerDBRestore

描述

AWSEC2-SQLServerDBRestore 运行手册将存储在 Amazon S3 中的 Microsoft SQL Server 数据库备份还原到在 Amazon Elastic Compute Cloud (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 实例。

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

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

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

限制

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

参数

此自动化具有以下参数:

  • DatabaseNames

    类型:字符串

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

  • DataDirectorySize

    类型:字符串

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

    默认值:100

  • KeyPair

    类型:字符串

    说明:(可选)要在创建新 EC2 实例时使用的密钥对。

  • IamInstanceProfileName

    类型:字符串

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

  • InstanceId

    类型:字符串

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

  • InstanceType

    类型:字符串

    说明:(可选)要启动的 EC2 实例的实例类型。

  • IsS3PresignedUrl

    类型:字符串

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

    默认值:No

    有效值:是 | 否

  • LogDirectorySize

    类型:字符串

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

    默认值:100

  • S3Input

    类型:字符串

    说明:(必需)包含要还原的 SQL 备份文件的 S3 存储桶名称、S3 对象键的逗号分隔列表或预签名的 S3 URL 的逗号分隔列表。

  • SQLServerEdition

    类型:字符串

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

    有效值:Standard | Enterprise | Web | Express

  • SubnetId

    类型:字符串

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

  • TempDbDirectorySize

    类型:字符串

    说明:(可选)所需的新 EC2 实例的 SQL Server TempDB 目录的卷大小 (GiB)。

    默认值: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 - 在 Powershell 中运行 SQL Server 还原脚本。

对于现有 EC2 实例:

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

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

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

  4. aws:runCommand - 在 Powershell 中运行 SQL Server 还原脚本。

输出

getInstance.InstanceId

restoreToNewInstance.Output

restoreToExistingInstance.Output