本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWSEC2-SQLServerDBRestore
Description (描述)
AWSEC2-SQLServerDBRestore
執行手冊將存放在亞馬遜 S3 中的微軟 SQL 伺服器資料庫備份還原到在亞馬遜彈性運算雲端 (EC2) Linux 執行個體上執行的 SQL 伺服器 2017 年。您可以提供自己的執行 SQL Server 2017 Linux 的 EC2 執行個體。如果未提供 EC2 執行個體,自動化會啟動並設定新的 Ubuntu 16.04 EC2 執行個體與 SQL 伺服器 2017 年。自動化支援還原完整、差異和交易日誌備份。此自動化接受多個資料庫備份檔案,並可自動還原所提供檔案中每個資料庫最新有效的備份。
若要將現場部署 SQL Server 資料庫的備份和還原自動化到執行 SQL Server 2017 Linux 的 EC2 執行個體,您可以使用AWS已簽署的PowerShell指令碼MigrateSQLServerToEC2Linux
重要
此執行手冊會在每次自動化執行時重設 SQL Server 伺服器管理員 (SA) 使用者密碼。自動化完成之後,您必須再次設定自己的 SA 使用者密碼,才能連線到 SQL Server 執行個體。
文件類型
自動化
擁有者
Amazon
平台
Linux
先決條件
若要執行此自動化操作,您必須符合下列先決條件:
-
執行此自動化操作的 IAM 使用者或角色必須附加內嵌政策,其中列出了許可所需的 IAM 許可。
-
如果您提供自己的 EC2 執行個體:
-
您提供的 EC2 執行個體必須是執行微軟 SQL 伺服器 2017 年的 Linux 執行個體。
-
您提供的 EC2 執行個體必須使用附加
AmazonSSMManagedInstanceCore
受管政策的 AWS Identity and Access Management (IAM) 執行個體設定檔進行設定。如需詳細資訊,請參閱建立 Systems Manager 的 IAM 執行個體設定檔。 -
SSM 代理程式必須安裝在 EC2 執行個體上。如需詳細資訊,請參閱在適用於 Linux 的 EC2 執行個體上安裝和設定 SSM 代理程式。
-
EC2 執行個體必須有足夠的可用磁碟空間,才能下載和還原 SQL Server 備份。
-
限制
此自動化不支援還原至 Windows Server 的 EC2 執行個體上執行的 SQL Server。此自動化只能還原與 SQL Server Linux 2017 相容的資料庫備份。如需詳細資訊,請參閱 SQL Server 2017 在 Linux 上的版本和支援的功能
參數
此自動化操作具有下列參數:
-
DatabaseNames
類型:字串
描述:(選用) 要還原之資料庫的名稱逗號分隔清單。
-
DataDirectorySize
類型:字串
描述:(選用) SQL Server Data 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。
預設值:100
-
KeyPair
類型:字串
描述:(選用) 建立新 EC2 執行個體時要使用的鍵組。
-
IamInstanceProfileName
類型:字串
說明:(可選)要附加到新 EC2 執行個體的 IAM 執行個體設定檔。IAM 執行個體設定檔必須附加
AmazonSSMManagedInstanceCore
受管政策。 -
InstanceId
類型:字串
描述:(選用) 在 Linux 上執行 SQL Server 2017 的執行個體。如果沒InstanceId有提供,則自動化會使用提ServerEdition供的InstanceType和 SQL 啟動新的 EC2 執行個體。
-
InstanceType
類型:字串
描述:(選用) 要啟動之 EC2 執行個體的執行個體類型。
-
是 3 PresignedUrl
類型:字串
說明:(選擇性) 如果 S3Input 是預先簽署的 S3 URL,請指出。
yes
預設值:否
有效值:是 | 否
-
LogDirectorySize
類型:字串
描述:(選用) SQL Server Log 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。
預設值:100
-
輸入
類型:字串
描述:(必要) S3 儲存貯體名稱、S3 物件金鑰的逗號分隔清單,或包含要還原之 SQL 備份檔案的預先簽章 S3 URL 逗號分隔清單。
-
SQL ServerEdition
類型:字串
描述:(選用) 要在新建立的 EC2 執行個體上安裝的 SQL Server 2017 版本。
有效值:標準 | 企業 | 網頁 | 快速
-
SubnetId
類型:字串
描述:(選用) 要啟動新 EC2 執行個體的子網路。子網路必須擁有到 AWS 服務的對外連線。如果未提供的值,SubnetId則自動化會使用預設子網路。
-
TempDbDirectorySize
類型:字串
描述:(選用) SQL Server TempDB 目錄在新 EC2 執行個體上所需的磁碟區大小 (GiB)。
預設值:100
所需的 IAM 許可
此AutomationAssumeRole
參數需要下列動作才能成功使用 runbook。
{ "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 執行個體:
-
aws:executeAwsApi
-擷取 SQL 伺服器 2017 年的 AMI 識別碼。 -
aws:runInstances
-啟動適用於 Linux 的新 EC2 執行個體。 -
aws:waitForAwsResourceProperty
-等待新建立的 EC2 執行個體準備就緒。 -
aws:executeAwsApi
-如果執行個體尚未就緒,請重新啟動執行個體。 -
aws:assertAwsResourceProperty
-確認已安裝 SSM 代理程式。 -
aws:runCommand
-在中執行 SQL 伺服器還原指令碼PowerShell。
對於現有的 EC2 執行個體:
-
aws:waitForAwsResourceProperty
-確認 EC2 執行個體已準備就緒。 -
aws:executeAwsApi
-如果執行個體尚未就緒,請重新啟動執行個體。 -
aws:assertAwsResourceProperty
-確認已安裝 SSM 代理程式。 -
aws:runCommand
-在中執行 SQL 伺服器還原指令碼PowerShell。
輸出
獲取實例。 InstanceId
restoreToNew執行個體輸出
restoreToExisting執行個體輸出