Альтернативный подход в Azure для администрирования SQL Server с несколькими серверами? - PullRequest
1 голос
/ 01 апреля 2019

В настоящее время в моей организации имеется 15 сред QA и 5 UAT SQL. На данный момент мы управляем всеми заданиями агента SQL с помощью функции многосерверного администрирования сервера SQL на одном из целевых серверов. Теперь мы планируем перенести эти базы данных всех сред SQL в Azure. В Azure мы используем службу базы данных SQL, а не любую виртуальную машину. Итак, есть ли какая-либо функция или альтернативное решение для управления всеми заданиями всей среды в одном из центральных мест в Azure. Все задания SQL относятся только к типу T-SQL.

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете использовать Azure Automation для централизации всех ваших заданий базы данных SQL Azure в одном месте.

Вы можете использовать следующий Рабочий процесс PowerShell в Azure Automation, чтобы запланировать выполнение любой хранимой процедуры в любой базе данных SQL Azure независимо от того, на каком логическом сервере Azure они находятся.

workflow SQL_Agent_SprocJob
{
[cmdletbinding()]
param
(
# Fully-qualified name of the Azure DB server
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $SqlServerName,
# Name of database to connect and execute against
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $DBName,
# Name of stored procedure to be executed
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $StoredProcName,
# Credentials for $SqlServerName stored as an Azure Automation credential asset
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[PSCredential] $Credential
)
inlinescript
{
Write-Output “JOB STARTING”
# Setup variables
$ServerName = $Using:SqlServerName
$UserId = $Using:Credential.UserName
$Password = ($Using:Credential).GetNetworkCredential().Password
$DB = $Using:DBName
$SP = $Using:StoredProcName
# Create & Open connection to Database
$DatabaseConnection = New-Object System.Data.SqlClient.SqlConnection
$DatabaseConnection.ConnectionString = “Data Source = $ServerName; Initial Catalog = $DB; User ID = $UserId; Password = $Password;”
$DatabaseConnection.Open();
Write-Output “CONNECTION OPENED”
# Create & Define command and query text
$DatabaseCommand = New-Object System.Data.SqlClient.SqlCommand
$DatabaseCommand.CommandType = [System.Data.CommandType]::StoredProcedure
$DatabaseCommand.Connection = $DatabaseConnection
$DatabaseCommand.CommandText = $SP
Write-Output “EXECUTING QUERY”
# Execute the query
$DatabaseCommand.ExecuteNonQuery()
# Close connection to DB
$DatabaseConnection.Close()
Write-Output “CONNECTION CLOSED”
Write-Output “JOB COMPLETED”
}
}

Используйте это пошаговое руководство для начала работы.

...