Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

开始使用

此部分介绍用于数据库平台转换的 PowerShell 参数定义和脚本。有关如何使用 PowerShell 脚本的更多信息,请参阅 PowerShell

为 Microsoft SQL Server 脚本运行从 Windows 到 Linux 的平台转换助手

以下常见场景和示例 PowerShell 脚本演示了如何使用 Microsoft SQL Server 数据库从 Windows 到 Linux 的平台转换助手,转换您 Microsoft SQL Server 数据库的平台。

重要

Microsoft SQL Server 数据库从 Windows 到 Linux 的平台转换助手每次运行时,重置目标实例上的 SQL Server 服务器管理员 (SA) 用户密码。平台转换流程完成后,在连接到目标 SQL Server 实例之前,您必须设置您自己的 SA 用户密码。

语法

Microsoft SQL Server 数据库从 Windows 到 Linux 的平台转换助手脚本遵循下例中所示的语法:

PS C:\> C:\MigrateSQLServerToEC2Linux.ps1 [[-SqlServerInstanceName] <String>] [[-DBNames]<Object[]>] [- MigrateAllDBs] [PathForBackup] <String> [-SetSourceDBModeReadOnly] [-IamInstanceProfileName] <String>[- AWSRegion] <String> [[-EC2InstanceId] <String>] [[-EC2InstanceType] <String>] [[-EC2KeyPair] <String>] [[- SubnetId] <String>] [[-AWSProfileName] <String>] [[-AWSProfileLocation] <String>] [-GeneratePresignedUrls] [<CommonParameters>]

示例 1:将数据库移动到 EC2 实例

以下示例演示如何从名为 MSSQLSERVER 的 Microsoft SQL Server 实例,将名为 AdventureDB 的数据库移动到 Linux 上的 EC2 Microsoft SQL Server 实例,实例 ID 为 i-024689abcdef。要使用的备份目录为 D:\\Backup,AWS 区域为 us-east-2

PS C:\> ./MigrateSQLServerToEC2Linux.ps1 - SQLServerInstanceName MSSQLSERVER -EC2InstanceId i- 024689abcdef -DBNames AdventureDB -PathForBackup D:\\Backup -AWSRegion us-east-2 - IamInstanceProfileName AmazonSSMManagedInstanceCore

示例 2:使用 AWS 凭证配置文件将数据库移动到 EC2 实例

以下示例演示如何使用以下 AWS 凭证配置文件移动示例 1 中的数据库:DBMigration

PS C:\> ./MigrateSQLServerToEC2Linux.ps1 - SQLServerInstanceName MSSQLSERVER -EC2InstanceId i- 024689abcdef -DBNames AdventureDB -PathForBackup D:\\Backup -AWSRegion us-east-2 -AWSProfileName DBMigration -IamInstanceProfileName AmazonSSMManagedInstanceCore

示例 3:将数据库移动到新的 m5.large 类型实例

以下示例演示如何在 subnet-abc127 中,使用密钥对 customer-ec2-keypair 创建 m5.large 类型 EC2 Linux 实例,然后从示例 1 和 2 中使用的数据库移动 AdventureDBTestDB 到新实例。

PS C:\> ./MigrateSQLServerToEC2Linux.ps1 -EC2InstanceType m5.large -SubnetId subnet-abc127 -EC2KeyPair customer-ec2-keypair -DBNames AdventureDB,TestDB -PathForBackup D:\\Backup -AWSRegion us-east-2 - AWSProfileName DBMigration -IamInstanceProfileName AmazonSSMManagedInstanceCore

示例 4:将所有数据库移动到新的 m5.large 类型实例

以下示例演示如何在 subnet-abc127 中,使用密钥对 customer-ec2-keypair 创建 m5.large 类型 EC2 Linux 实例,然后从示例 1 和 2 中使用的数据库将所有数据库迁移到实例。

PS C:\> ./MigrateSQLServerToEC2Linux.ps1 -EC2InstanceType m5.large -SubnetId subnet-abc127 -EC2KeyPair customer-ec2-keypair -MigrateAllDBs -PathForBackup D:\\Backup -AWSRegion us-east-2 -AWSProfileName DBMigration -IamInstanceProfileName AmazonSSMManagedInstanceCore

参数

以下参数由 PowerShell 脚本用于转换 Microsoft SQL Server 数据库的平台。

-SqlServerInstanceName

要备份的 Microsoft SQL Server 实例的名称。如果未提供 SqlServerInstanceName 的值,则默认使用 $env:ComputerName

类型:字符串

必需:否

-DBNames

要备份和还原的数据库的名称。使用逗号分隔的列表指定数据库的名称(例如,adventureDB,universityDB)。需要 DBNamesMigrateAllDBs 参数。

类型:对象

必需:否

-MigrateAllDBs

默认情况下此开关处于禁用状态。如果启用此开关,则自动化将迁移除了系统数据库之外的所有数据库(master、msdb、tempdb)。需要 DBNamesMigrateAllDBs 参数。

类型:SwitchParameter

必需:否

-PathForBackup

存储完整备份的路径。

类型:字符串

必需:是

-SetSourceDBModeReadOnly

默认情况下此开关处于禁用状态。如果启用此开关,则在迁移期间使数据库为只读。

类型:SwitchParameter

必需:否

-IamInstanceProfileName

输入有权代表您运行 Systems Manager Automation 的 AWS IAM 实例角色。请参阅 AWS Systems Manager 用户指南 中的 Automation 入门

类型:字符串

必需:是

-AWSRegion

输入创建 Amazon S3 存储桶的 AWS 区域,该存储桶用于存储数据库备份。

类型:字符串

必需:是

-EC2InstanceId

要将 Microsoft SQL Server 数据库还原到运行 Microsoft SQL Server Linux 的现有 EC2 实例,请输入实例的实例 ID。请确保 EC2 实例已安装并运行了 AWS Systems Manager SSM 代理。

类型:字符串

必需:否

-EC2InstanceType

要将 Microsoft SQL Server 数据库还原到新的 EC2 Linux 实例,请输入要启动的实例的实例类型。

类型:字符串

必需:否

-EC2KeyPair

要将 Microsoft SQL Server 数据库还原到新的 EC2 Linux 实例,请输入访问实例所用的 EC2 密钥对的名称。如果您创建新 EC2 Linux 实例,推荐使用此参数。

类型:字符串

必需:否

-SubnetId

创建新 EC2 Linux 实例时此参数为必需。创建新 EC2 Linux 实例时,如果未提供 SubnetId,则使用 AWS 用户默认子网来启动 EC2 Linux 实例。

类型:字符串

必需:否

-AWSProfileName

自动化在连接到 AWS 服务时使用的 AWS 配置文件的名称。有关所需 IAM 用户权限的更多信息,请参阅 AWS Systems Manager 用户指南 中的 Automation 入门。如果未输入配置文件,则自动化使用您的默认 AWS 配置文件。

类型:字符串

必需:否

-AWSProfileLocation

AWS 配置文件未存储在默认位置时,AWS 配置文件的位置。

类型:字符串

必需:否

-GeneratePresignedUrls

此参数仅在将平台转换为非 EC2 实例时使用,例如转换为 AWS 上的 VMware Cloud 或者本地 VM。

类型:SwitchParameter

必需:否

<CommonParameters>

此 cmdlet 支持公用参数:VerboseDebugErrorActionErrorVariableWarningActionWarningVariableOutBufferPipelineVariableOutVariable。有关更多信息,请参阅 Microsoft PowerShell 文档中的关于公用参数

必需:否