«Включить всегда при поддержке ...» для служб SSIS через C # или powershell - PullRequest
2 голосов
/ 26 марта 2019

Я хотел бы включить Всегда поддерживать SSIS. Я могу сделать это с помощью пользовательского интерфейса (щелкните правой кнопкой мыши на каталогах служб Integration Services, нажмите «Включить всегда при поддержке»). Я хотел бы посмотреть, есть ли способ сделать это в Power Shell или C #, используя microsoft.sqlserver.management.integrationservices

Это пользовательский интерфейс для включения всегда на поддержке

enter image description here

1 Ответ

0 голосов
/ 26 марта 2019

Решение Powershell

Сначала всегда включайте функцию групп доступности для экземпляра, который вы можете использовать:

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance

Затем необходимо создать группу доступности Always и добавить базу данных SSISDB в эту группу:

Из приведенных выше ссылок выполните следующие действия:

  1. Измените каталог (cd) на экземпляр сервера, на котором будет размещена первичная реплика.
  2. Создайте объект реплики доступности в памяти для первичной реплики.
  3. Создайте объект реплики доступности в памяти для каждой из вторичных реплик.
  4. Создайте группу доступности.
  5. Присоединиться к новой вторичной репликев группу доступности
  6. Для каждой базы данных в группе доступности создайте вторичную базу данных, восстановив последние резервные копии первичной базы данных, используя RESTORE WITH NORECOVERY.
  7. Присоедините каждую новую вторичную базу данных к доступностиgroup.
  8. При необходимости используйте команду dir Windows для проверки содержимого новой группы доступности.

Пример, приведенный в ссылке выше

# Backup my database and its log on the primary  
Backup-SqlDatabase `  
    -Database "SSISDB" `  
    -BackupFile "\\share\backups\SSISDB.bak" `  
    -ServerInstance "PrimaryComputer\Instance"  

Backup-SqlDatabase `  
    -Database "SSISDB" `  
    -BackupFile "\\share\backups\SSISDB.log" `  
    -ServerInstance "PrimaryComputer\Instance" `  
    -BackupAction Log   

# Restore the database and log on the secondary (using NO RECOVERY)  
Restore-SqlDatabase `  
    -Database "SSISDB" `  
    -BackupFile "\\share\backups\SSISDB.bak" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -NoRecovery  

Restore-SqlDatabase `  
    -Database "SSISDB" `  
    -BackupFile "\\share\backups\SSISDB.log" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -RestoreAction Log `  
    -NoRecovery  

# Create an in-memory representation of the primary replica.  
$primaryReplica = New-SqlAvailabilityReplica `  
    -Name "PrimaryComputer\Instance" `  
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  

# Create an in-memory representation of the secondary replica.  
$secondaryReplica = New-SqlAvailabilityReplica `  
    -Name "SecondaryComputer\Instance" `  
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  

# Create the availability group  
New-SqlAvailabilityGroup `  
    -Name "MyAG" `  
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `  
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `  
    -Database "SSISDB"  

# Join the secondary replica to the availability group.  
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "MyAG"  

# Join the secondary database to the availability group.  
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "SSISDB"
...