Поделиться через


Управление псевдонимом DNS для Базы данных SQL Azure с помощью PowerShell

Область применения: База данных SQL AzureAzure Synapse Analytics

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

Использование псевдонима DNS в строке подключения

Чтобы подключить логический сервер SQL Server, клиент, например SQL Server Management Studio (SSMS), может предоставить псевдоним DNS вместо имени истинного сервера. В следующем примере псевдоним any-unique-alias-name заменяет имя первого узла с разделителями-точками в строке сервера с четырьмя узлами.

<yourServer>.database.windows.net

Необходимые компоненты

Чтобы выполнить пример скрипта PowerShell, приведенный в этой статье, потребуются следующие компоненты:

  • Подписка и учетная запись Azure для бесплатной пробной версии см. в статье Пробная версия Azure.
  • Два логических сервера SQL Azure
  • Установите модуль Azure PowerShell или Azure CLI.

Пример

Следующий пример кода начинается с присвоения литеральных значений нескольким переменным.

Чтобы запустить код, отредактируйте значения заполнителей, чтобы они соответствовали реальным значениям в вашей системе.

Используются следующие командлеты:

  • New-AzSqlServerDNSAlias: создает псевдоним DNS в системе службы "База данных SQL Azure". Псевдоним относится к серверу 1.
  • Get-AzSqlServerDNSAlias: получить и добавить в список все псевдонимы присвоенные серверу 1.
  • Set-AzureRMSqlServerDNSAlias: изменяет имя сервера базы данных SQL, на который ссылается псевдоним, с "Сервер 1" на "Сервер 2".
  • Remove-AzSqlServerDNSAlias: удалите псевдоним с сервера 2, используя имя псевдонима.

Чтобы выполнить установку или обновление, см. статью Установка и настройка Azure PowerShell.

Используйте Get-Module -ListAvailable Az в файле powershell_ise.exe, чтобы узнать версию.

$subscriptionName = '<subscriptionName>';
$sqlServerDnsAliasName = '<aliasName>';
$resourceGroupName = '<resourceGroupName>';  
$sqlServerName = '<sqlServerName>';
$resourceGroupName2 = '<resourceGroupNameTwo>'; # can be same or different than $resourceGroupName
$sqlServerName2 = '<sqlServerNameTwo>'; # must be different from $sqlServerName.

# login to Azure
Connect-AzAccount -SubscriptionName $subscriptionName;
$subscriptionId = Get-AzSubscription -SubscriptionName $subscriptionName;

Write-Host 'Assign an alias to server 1...';
New-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName -ServerName $sqlServerName `
    -Name $sqlServerDnsAliasName;

Write-Host 'Get the aliases assigned to server 1...';
Get-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName -ServerName $sqlServerName;

Write-Host 'Move the alias from server 1 to server 2...';
Set-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -TargetServerName $sqlServerName2 `
    -Name $sqlServerDnsAliasName `
    -SourceServerResourceGroup $resourceGroupName -SourceServerName $sqlServerName `
    -SourceServerSubscriptionId $subscriptionId.Id;

Write-Host 'Get the aliases assigned to server 2...';
Get-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -ServerName $sqlServerName2;

Write-Host 'Remove the alias from server 2...';
Remove-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -ServerName $sqlServerName2 `
    -Name $sqlServerDnsAliasName;