开始使用
此部分介绍用于数据库平台转换的 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 - SQLServerInstanceNameMSSQLSERVER-EC2InstanceIdi- 024689abcdef-DBNamesAdventureDB-PathForBackupD:\\Backup-AWSRegionus-east-2- IamInstanceProfileNameAmazonSSMManagedInstanceCore
示例 2:使用 Amazon 凭证配置文件将数据库移动到 EC2 实例
以下示例演示如何使用以下 Amazon 凭证配置文件移动示例 1 中的数据库:DBMigration。
PS C:\> ./MigrateSQLServerToEC2Linux.ps1 - SQLServerInstanceNameMSSQLSERVER-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 -EC2InstanceTypem5.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 -EC2InstanceTypem5.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 配置文件的名称。有关所需 IAM 用户权限的更多信息,请参阅 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 文档中的关于公用参数
必需:否