forked from scriptrunner/ActionPacks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Set-AzDatabase.ps1
129 lines (107 loc) · 4.77 KB
/
Set-AzDatabase.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#Requires -Version 5.0
#Requires -Modules Az.Sql
<#
.SYNOPSIS
Sets properties for a database, or moves an existing database into an elastic pool
.DESCRIPTION
.NOTES
This PowerShell script was developed and optimized for ScriptRunner. The use of the scripts requires ScriptRunner.
The customer or user is authorized to copy the script from the repository and use them in ScriptRunner.
The terms of use for ScriptRunner do not apply to this script. In particular, ScriptRunner Software GmbH assumes no liability for the function,
the use and the consequences of the use of this freely available script.
PowerShell is a product of Microsoft Corporation. ScriptRunner is a product of ScriptRunner Software GmbH.
© ScriptRunner Software GmbH
.COMPONENT
Requires Module Az.Sql
Requires Library script AzureAzLibrary.ps1
.LINK
https://github.com/scriptrunner/ActionPacks/blob/master/Azure/SQL
.Parameter DBName
[sr-en] Specifies the name of the database to retrieve
[sr-de] Name der Datenbank
.Parameter ServerName
[sr-en] Specifies the name of the server to which the database is assigned
[sr-de] Name des Servers auf dem sich die Datenbank befindet
.Parameter ResourceGroupName
[sr-en] Specifies the name of the resource group to which the database server is assigned
[sr-de] Name der resource group die die Datenbank enthält
.Parameter Edition
[sr-en] Specifies the edition for the database
[sr-de] Edition der Datenbank
.Parameter ElasticPoolName
[sr-en] Specifies name of the elastic pool in which to move the database
[sr-de] Namen des Pools für elastische Datenbanken
.Parameter LicenseType
[sr-en] The license type for the Azure Sql database
[sr-de] Lizenztyp für die Azure Sql-Datenbank
.Parameter MaxSizeBytes
[sr-en] The maximum size of the Azure SQL Database in bytes
[sr-de] Maximale Größe der Azure SQL-Datenbank in Bytes
.Parameter ReadScale
[sr-en] The read scale option to assign to the Azure SQL Database
[sr-de] Verbindungen, deren Anwendungsabsicht in ihrer Verbindungszeichenfolge schreibgeschützt ist, an ein schreibgeschütztes sekundäres Replikat weiterleiten
.Parameter RequestedServiceObjectiveName
[sr-en] Specifies the name of the service objective to assign to the database
[sr-de] Namen des Dienstobjekts, dem der Datenbank zugewiesen werden soll
.Parameter ZoneRedundant
[sr-en] The zone redundancy to associate with the Azure Sql Database
[sr-de] Zonenredundanz, die der Azure Sql-Datenbank zugeordnet werden soll
#>
param(
[Parameter(Mandatory = $true)]
[string]$DBName,
[Parameter(Mandatory = $true)]
[string]$ResourceGroupName,
[Parameter(Mandatory = $true)]
[string]$ServerName,
[ValidateSet('Basic','Standard','Premium','DataWarehouse','Free','Stretch','GeneralPurpose','BusinessCritical')]
[string]$Edition ,
[string]$ElasticPoolName,
[ValidateSet('BasePrice','LicenseIncluded')]
[string]$LicenseType,
[int64]$MaxSizeBytes,
[ValidateSet('Enabled','Disabled')]
[string]$ReadScale,
[string]$RequestedServiceObjectiveName,
[switch]$ZoneRedundant
)
Import-Module Az.Sql
try{
[string[]]$Properties = @('DatabaseName','ResourceGroupName','ServerName','Location','DatabaseId','Edition','CollationName','Status','CreationDate','Tags')
[hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'
'Confirm' = $false
'ServerName' = $ServerName
'ResourceGroupName' = $ResourceGroupName
'DatabaseName' = $DBName
'ZoneRedundant' = $ZoneRedundant}
if([System.String]::IsNullOrWhiteSpace($Edition) -eq $false){
$cmdArgs.Add('Edition',$Edition)
}
if([System.String]::IsNullOrWhiteSpace($ElasticPoolName) -eq $false){
$cmdArgs.Add('ElasticPoolName',$ElasticPoolName)
}
if([System.String]::IsNullOrWhiteSpace($LicenseType) -eq $false){
$cmdArgs.Add('LicenseType',$LicenseType)
}
if([System.String]::IsNullOrWhiteSpace($ReadScale) -eq $false){
$cmdArgs.Add('ReadScale',$ReadScale)
}
if([System.String]::IsNullOrWhiteSpace($RequestedServiceObjectiveName) -eq $false){
$cmdArgs.Add('RequestedServiceObjectiveName',$RequestedServiceObjectiveName)
}
if($MaxSizeBytes -gt 0){
$cmdArgs.Add('MaxSizeBytes',$MaxSizeBytes)
}
$ret = Set-AzSqlDatabase @cmdArgs | Select-Object $Properties
if($SRXEnv) {
$SRXEnv.ResultMessage = $ret
}
else{
Write-Output $ret
}
}
catch{
throw
}
finally{
}