通过C#或Powershell为SSIS“启用Always on support ...”

时间:2019-03-26 03:53:39

标签: c# sql-server powershell ssis alwayson

我想打开始终对SSIS的支持。我可以使用UI来执行此操作(右键单击Integration Services目录,单击“始终启用支持”)。我想看看是否有一种方法可以使用microsoft.sqlserver.management.integrationservices

在Power Shell或C#中执行此操作

这是始终支持支持的用户界面

enter image description here

1 个答案:

答案 0 :(得分:0)

Powershell解决方案

首先在您可以使用的实例上启用始终在线可用性组功能:

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

然后,您应该创建一个Always on可用性组并将SSISDB数据库添加到该组:

在上面的链接中,您应该按照以下步骤操作:

  
      
  1. 将目录(cd)更改为承载主副本的服务器实例。
  2.   
  3. 为主副本创建一个内存中的可用性副本对象。
  4.   
  5. 为每个辅助副本创建一个内存中的可用性副本对象。
  6.   
  7. 创建可用性组。
  8.   
  9. 将新的辅助副本加入可用性组
  10.   
  11. 对于可用性组中的每个数据库,通过使用以下方法还原主数据库的最新备份来创建辅助数据库   恢复无恢复。
  12.   
  13. 将每个新的辅助数据库加入可用性组。
  14.   
  15. (可选)使用Windows dir命令验证新可用性组的内容。
  16.   

上面的链接中提供的示例

# 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"