added powershell jobs deployed on prodDB to execute sync and production
This commit is contained in:
118
HCI - BAG symmetricDS/sl2007 production.ps1
Normal file
118
HCI - BAG symmetricDS/sl2007 production.ps1
Normal file
@@ -0,0 +1,118 @@
|
||||
# Variables
|
||||
$tenantId = "7844775a-a9cc-4c33-a5ae-36dcf6660f45" #Galenica
|
||||
$clientId = "d28076dd-2108-4718-802e-cd3c35fd5505" #pcpl-BAGSpezListePrd-DBBackup
|
||||
$vaultName="kv-BAGSpezListePrd-bkp"
|
||||
$secretName="superuser"
|
||||
|
||||
$maxRetries = 5
|
||||
$retryInterval = 10 # seconds
|
||||
$retryCount = 0
|
||||
$success = $false
|
||||
|
||||
#Managed instance related
|
||||
$MILogin='superuser'
|
||||
$MIPwd=$null #fetched from key vault later
|
||||
$MIInstance="sqlmi-bagspezlisteprd-sqlinstance.75ff9425ac13.database.windows.net"
|
||||
|
||||
function log-out{
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string] $msg
|
||||
)
|
||||
Write-Output "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") :: $msg"
|
||||
}
|
||||
|
||||
# Log in to Azure
|
||||
$retryCount = 0
|
||||
$success = $false
|
||||
|
||||
while (-not $success -and $retryCount -lt $maxRetries) {
|
||||
try{
|
||||
$null = Connect-AzAccount -ServicePrincipal -ApplicationId $clientId -Tenant $tenantId -Subscription BAGSpezListePrd -CertificateThumbprint 7bd45f67999015c7742db25efc86bae97590c57d
|
||||
$success=$true
|
||||
}
|
||||
catch{
|
||||
$retryCount++
|
||||
Start-Sleep -Seconds $retryInterval
|
||||
}
|
||||
}
|
||||
|
||||
if(-not $success){
|
||||
write-error "Error auhthenticating to azure"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#fetch the Managed Instance password
|
||||
$retryCount = 0
|
||||
$success = $false
|
||||
|
||||
while (-not $success -and $retryCount -lt $maxRetries) {
|
||||
try{
|
||||
$MIPwd = Get-AzKeyVaultSecret -VaultName $vaultName -Name $secretName -AsPlainText
|
||||
$success=$true
|
||||
}
|
||||
catch{
|
||||
$retryCount++
|
||||
Start-Sleep -Seconds $retryInterval
|
||||
}
|
||||
}
|
||||
|
||||
if(-not $success){
|
||||
write-error "Error fetching password from key vault"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#craft credential for MI connection
|
||||
$securePassword = ConvertTo-SecureString $MIPwd -AsPlainText -Force
|
||||
$credentialMI = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $MILogin, $securePassword
|
||||
|
||||
#start sl2007.daily_batch_update
|
||||
log-out -msg "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") starting sl2007 daily update"
|
||||
$query="
|
||||
exec sl2007.dbo.usp_Daily_Batch_Update
|
||||
"
|
||||
$retryCount = 0
|
||||
$success = $false
|
||||
|
||||
while (-not $success -and $retryCount -lt $maxRetries) {
|
||||
try{
|
||||
Invoke-Sqlcmd -ServerInstance $MIInstance -Query $query -Credential $credentialMI
|
||||
log-out -msg "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") sl2007 daily update done"
|
||||
$success=$true
|
||||
}
|
||||
catch{
|
||||
$retryCount++
|
||||
Start-Sleep -Seconds $retryInterval
|
||||
}
|
||||
}
|
||||
|
||||
if(-not $success){
|
||||
write-error "Error starting usp_Daily_Batch_Update"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#start sl2007_superset generation
|
||||
log-out -msg "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") starting sl2007_superset generation"
|
||||
$query="
|
||||
exec sl2007_superset.dbo.p_Fill__BAG__SL2007_Superset
|
||||
"
|
||||
$retryCount = 0
|
||||
$success = $false
|
||||
|
||||
while (-not $success -and $retryCount -lt $maxRetries) {
|
||||
try{
|
||||
Invoke-Sqlcmd -ServerInstance $MIInstance -Query $query -Credential $credentialMI
|
||||
log-out -msg "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") sl2007_superset generation done"
|
||||
$success=$true
|
||||
}
|
||||
catch{
|
||||
$retryCount++
|
||||
Start-Sleep -Seconds $retryInterval
|
||||
}
|
||||
}
|
||||
|
||||
if(-not $success){
|
||||
write-error "Error starting sl2007_suèerset production"
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user