必要なコマンドレットはAzureRM.Sql
モジュールバージョンでのみ使用できるように見えるため、バージョンの問題が発生していると思います4.7.0-preview
。
エラスティックプール内の多くのデータベースのPITR保持ポリシーを35日に設定したいと思います。デフォルトでは、私のvCoreプールには7日間の保持ポリシーがありますが、これでは不十分です。私は何百ものデータベースを持っているので、それらすべてをPowerShellで設定する必要があります。
更新するデータベースのリストを取得しGet-AzureRmSqlElasticPoolDatabase
て実行しようとするSet-AzureRmSqlDatabaseBackupShortTermRetentionPolicy
と、後者を実行すると次のエラーが発生します。
import-module : The following error occurred while loading the extended type data file: Error in TypeData "Microsoft.Azure.Commands.Sql.Replication.Model.AzureSqlDatabaseCopyModel": The member DefaultDisplayPropertySet is already present.
Error in TypeData "Microsoft.Azure.Commands.Sql.Replication.Model.AzureReplicationLinkModel": The member DefaultDisplayPropertySet is already present.
At line:1 char:1
+ import-module azurerm.sql
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand
私が試したこと
モジュールを削除して再インポートしてみました。同じエラー。モジュールの必要なバージョンをインポートし、最初のコマンドでデータベースリストを取得しようとしましたが、次のエラーが発生します。
Get-AzureRmSqlElasticPoolDatabase : The 'Get-AzureRmSqlElasticPoolDatabase' command was found in the module 'AzureRM.Sql', but the module could not be loaded. For more information, run 'Import-Module AzureRM.Sql'.
At line:1 char:8
+ $dbs = Get-AzureRmSqlElasticPoolDatabase -ElasticPoolName $settings.E ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-AzureRmSqlElasticPoolDatabase:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
AzureRmモジュールをインポートすると、次のimport-module azurerm.sql
エラーが発生します。
import-module : The following error occurred while loading the extended type data file: Error in TypeData "Microsoft.Azure.Commands.Sql.Replication.Model.AzureSqlDatabaseCopyModel": The member DefaultDisplayPropertySet is already present.
Error in TypeData "Microsoft.Azure.Commands.Sql.Replication.Model.AzureReplicationLinkModel": The member DefaultDisplayPropertySet is already present.
At line:1 char:1
+ import-module azurerm.sql
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand
モジュール
Get-Module AzureRm -ListAvailable | select Name, Version
:
Name Version
---- -------
AzureRM 6.10.0
Get-Module AzureRm.Sql -ListAvailable | select Name, Version
:
Name Version
---- -------
AzureRM.Sql 4.11.5
AzureRM.Sql 4.7.0
AzureRM.Sql 4.4.0
$PSVersionTable
:
Name Value
---- -----
PSVersion 5.1.17134.228
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17134.228
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
これを機能させる方法についてのアイデアはありますか?
モジュールの4.11.4-preview
バージョンをインストールしてみてAzureRM.Sql
ください。このリンクを参照しInstall-Module -Name AzureRM.Sql -RequiredVersion 4.11.4-preview -AllowPrerelease
て、PowerShell管理者環境で使用してください。
インストール後、モジュールをインポートする必要はなく、コマンドを直接実行できます。モジュールが正常にインストールされているかどうかを確認する場合は、に移動するC:\Program Files\WindowsPowerShell\Modules\AzureRM.Sql
と、4.11.4
フォルダが見つかります。
次に、サンプルコマンドを試して、Elastic Pool内のすべてのデータベースにPITRを設定します。これは、私の側では正常に機能Get-Help Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy
します(コマンドの使用法を取得するために実行できます)
$dbs = Get-AzureRmSqlElasticPoolDatabase -ResourceGroupName "joywebapp" -ServerName "joydb" -ElasticPoolName "joyelastic"
foreach($db in $dbs){
Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName $db.ResourceGroupName -ServerName $db.ServerName -DatabaseName $db.DatabaseName -RetentionDays 35
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加