AWSEC2-SQLServerDBRestore - AWS Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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 用户密码。

运行此自动化(控制台)

文档类型

Automation

Owner

Amazon

平台

Linux

先决条件

  • 此运行手册仅与运行 SQL Server 的 Linux EC2 实例一起使用。

  • 运行此运行手册的用户必须至少具有在所需的 IAM 权限部分。

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

    • 使用 AWS Identity and Access Management (IAM) 实例配置文件配置文件配置文件配置文件配置文件配配置AmazonSSMManagedInstanceCore已连接托管策略。有关更多信息,请参阅 。为创建 IAM 实例配置文件

    • 验证 EC2 实例上是否安装了 SSM 代理。有关更多信息,请参阅 在适用于 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

    类型: 字符串

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

  • InstanceId

    类型: 字符串

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

  • InstanceType

    类型: 字符串

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

  • IsS3PresignedUrl

    类型: 字符串

    描述:(可选)如果 S3Input 是预签名 S3 URL,表示yes

    默认值:否

    有效值:是 | 否

  • LogDirectorySize

    类型: 字符串

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

    默认值:100

  • S3Input

    类型: 字符串

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

  • SQLServerEdition

    类型: 字符串

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

    有效值:标准 | 企业 | 网页 | 快递

  • SubnetId

    类型: 字符串

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

  • TempDbDirectorySize

    类型: 字符串

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

    默认值:100

所需的 IAM 权限

这些区域有:AutomationAssumeRole需要执行以下操作才能成功使用 Runbook。

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

文档步骤

对于新 EC2 实例:

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

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

  3. aws:runInstances - 等待新创建的 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