开始使用
此部分介绍用于数据库平台转换的 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 实例
以下示例演示如何从名为 AdventureDB
的 Microsoft SQL Server 实例,将名为 i-024689abcdef
的数据库移动到 Linux 上的 EC2 Microsoft SQL Server 实例,实例 ID 为 MSSQLSERVER
。要使用的备份目录为 D:\\Backup
,Amazon 区域为 us-east-2
。
PS C:\> ./MigrateSQLServerToEC2Linux.ps1 - SQLServerInstanceName
MSSQLSERVER
-EC2InstanceIdi- 024689abcdef
-DBNamesAdventureDB
-PathForBackupD:\\Backup
-AWSRegionus-east-2
- IamInstanceProfileNameAmazonSSMManagedInstanceCore
示例 2:使用 Amazon 凭证配置文件将数据库移动到 EC2 实例
以下示例演示如何使用以下 Amazon 凭证配置文件移动示例 1 中的数据库:DBMigration
。
PS C:\> ./MigrateSQLServerToEC2Linux.ps1 - SQLServerInstanceName
MSSQLSERVER
-EC2InstanceIdi- 024689abcdef
-DBNamesAdventureDB
-PathForBackupD:\\Backup
-AWSRegionus-east-2
-AWSProfileNameDBMigration
-IamInstanceProfileNameAmazonSSMManagedInstanceCore
示例 3:将数据库移动到新的 m5.large 类型实例
以下示例演示如何在 m5.large
中,使用密钥对 subnet-abc127
创建 customer-ec2-keypair
类型 EC2 Linux 实例,然后从示例 1 和 2 中使用的数据库移动 AdventureDB
和 TestDB
到新实例。
PS C:\> ./MigrateSQLServerToEC2Linux.ps1 -EC2InstanceType
m5.large
-SubnetIdsubnet-abc127
-EC2KeyPaircustomer-ec2-keypair
-DBNamesAdventureDB,TestDB
-PathForBackupD:\\Backup
-AWSRegionus-east-2
- AWSProfileNameDBMigration
-IamInstanceProfileNameAmazonSSMManagedInstanceCore
示例 4:将所有数据库移动到新的 m5.large 类型实例
以下示例演示如何在 m5.large
中,使用密钥对 subnet-abc127
创建 customer-ec2-keypair
类型 EC2 Linux 实例,然后从示例 1 和 2 中使用的数据库将所有数据库迁移到实例。
PS C:\> ./MigrateSQLServerToEC2Linux.ps1 -EC2InstanceType
m5.large
-SubnetIdsubnet-abc127
-EC2KeyPaircustomer-ec2-keypair
-MigrateAllDBs -PathForBackupD:\\Backup
-AWSRegionus-east-2
-AWSProfileNameDBMigration
-IamInstanceProfileNameAmazonSSMManagedInstanceCore
参数
以下参数由 PowerShell 脚本用于转换 Microsoft SQL Server 数据库的平台。
-SqlServerInstanceName
要备份的 Microsoft SQL Server 实例的名称。如果未提供 SqlServerInstanceName
的值,则默认使用 $env:ComputerName
。
类型:字符串
必需:否
-DBNames
要备份和还原的数据库的名称。使用逗号分隔的列表指定数据库的名称(例如,adventureDB
,universityDB
)。需要 DBNames
或 MigrateAllDBs
参数。
类型:对象
必需:否
-MigrateAllDBs
默认情况下此开关处于禁用状态。如果启用此开关,则自动化将迁移除了系统数据库之外的所有数据库(master、msdb、tempdb)。需要 DBNames
或 MigrateAllDBs
参数。
类型:SwitchParameter
必需:否
-PathForBackup
存储完整备份的路径。
类型:字符串
必需:是
-SetSourceDBModeReadOnly
默认情况下此开关处于禁用状态。如果启用此开关,则在迁移期间使数据库为只读。
类型:SwitchParameter
必需:否
-IamInstanceProfileName
输入有权代表您运行 Systems Manager Automation 的 Amazon IAM 实例角色。请参阅 Amazon Systems Manager 用户指南中的 Automation 入门。
类型:字符串
必需:是
-AWSRegion
输入创建 Amazon S3 存储桶的 Amazon 区域,该存储桶用于存储数据库备份。
类型:字符串
必需:是
-EC2InstanceId
要将 Microsoft SQL Server 数据库还原到运行 Microsoft SQL Server Linux 的现有 EC2 实例,请输入实例的实例 ID。请确保 EC2 实例已安装并运行了 Amazon Systems Manager SSM Agent。
类型:字符串
必需:否
-EC2InstanceType
要将 Microsoft SQL Server 数据库还原到新的 EC2 Linux 实例,请输入要启动的实例的实例类型。
类型:字符串
必需:否
-EC2KeyPair
要将 Microsoft SQL Server 数据库还原到新的 EC2 Linux 实例,请输入访问实例所用的 EC2 密钥对的名称。如果您创建新 EC2 Linux 实例,推荐使用此参数。
类型:字符串
必需:否
-SubnetId
创建新 EC2 Linux 实例时此参数为必需。创建新 EC2 Linux 实例时,如果未提供 SubnetId
,则使用 Amazon 用户默认子网来启动 EC2 Linux 实例。
类型:字符串
必需:否
-AWSProfileName
自动化在连接到 Amazon 服务时使用的 Amazon 配置文件的名称。有关所需用户权限的更多信息,请参阅《Amazon Systems Manager 用户指南》中的 Automation 入门。如果未输入配置文件,则自动化使用您的默认 Amazon 配置文件。
类型:字符串
必需:否
-AWSProfileLocation
Amazon 配置文件未存储在默认位置时,Amazon 配置文件的位置。
类型:字符串
必需:否
-GeneratePresignedUrls
此参数仅在将平台转换为非 EC2 实例时使用,例如转换为 Amazon 上的 VMware Cloud 或者本地 VM。
类型:SwitchParameter
必需:否
<CommonParameters>
此 cmdlet 支持公用参数:Verbose
、Debug
、ErrorAction
、ErrorVariable
、WarningAction
、WarningVariable
、OutBuffer
、PipelineVariable
和 OutVariable
。有关更多信息,请参阅 Microsoft PowerShell 文档中的关于公用参数
必需:否