Skip to content

Commit 1ab7a5b

Browse files
authored
Merge pull request #113153 from lrtoyou1223/editmidoc
Editmidoc
2 parents c6c9510 + 5cd12f2 commit 1ab7a5b

File tree

1 file changed

+111
-70
lines changed

1 file changed

+111
-70
lines changed

articles/data-factory/configure-bcdr-azure-ssis-integration-runtime.md

Lines changed: 111 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ms.date: 04/09/2020
1616

1717
# Configure the Azure-SSIS Integration Runtime with Azure SQL Database geo-replication and failover
1818

19-
[!INCLUDE[appliesto-adf-asa-md](includes/appliesto-adf-asa-md.md)]
19+
[!INCLUDE[appliesto-adf-asa-md](includes/appliesto-adf-xxx-md.md)]
2020

2121
This article describes how to configure the Azure-SSIS Integration Runtime with Azure SQL Database geo-replication for the SSISDB database. When a failover occurs, you can ensure that the Azure-SSIS IR keeps working with the secondary database.
2222

@@ -27,63 +27,123 @@ For more info about geo-replication and failover for SQL Database, see [Overview
2727
## Azure-SSIS IR failover with Azure SQL Database Managed Instance
2828

2929
### Prerequisites
30+
31+
Azure SQL Database Managed Instance uses **database master key (DMK)** to help secure data, credentials, and connection information that is stored in database. To enable the automatic decryption of DMK, a copy of the key is encrypted by using the **server master key (SMK)**. But SMK is not replicated in failover group, so you need to add an additional password on both primary and secondary instances for DMK decryption after failover.
32+
3033
1. Execute below command on the SSISDB on primary instance. This step is adding a new encryption password.
31-
```sql
32-
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = 'password'
33-
```
34+
35+
```sql
36+
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = 'password'
37+
```
3438

3539
2. Create failover group on Azure SQL Database Managed Instance.
3640

3741
3. Run **sp_control_dbmasterkey_password** on the secondary instance, using the new encryption password.
38-
```sql
39-
EXEC sp_control_dbmasterkey_password @db_name = N'SSISDB',
40-
@password = N'<password>', @action = N'add';
41-
GO
42-
```
43-
44-
### Solution
45-
When a failover occurs, if you want to use existing Azure-SSIS IR on primary region:
42+
43+
```sql
44+
EXEC sp_control_dbmasterkey_password @db_name = N'SSISDB',
45+
@password = N'<password>', @action = N'add';
46+
GO
47+
```
48+
49+
### Scenario 1 - Azure-SSIS IR is pointing to read-write listener endpoint
50+
51+
If you want Azure-SSIS IR point to read-write listener endpoint, you need to point to primary server endpoint first. After putting SSISDB to failover group, you can change to read-write listener endpoint and restart Azure-SSIS IR.
52+
53+
#### Solution
54+
55+
When failover occurs, you have to do the following things:
56+
57+
1. Stop Azure-SSIS IR on primary region.
58+
59+
2. Edit Azure-SSIS IR with new region, VNET and custom setup SAS URI information of secondary instance. As Azure-SSIS IR is pointing to read-write listener and the endpoint is transparent to Azure-SSIS IR, you don't need to edit the endpoint.
60+
61+
```powershell
62+
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
63+
-VNetId "new VNet" `
64+
-Subnet "new subnet" `
65+
-SetupScriptContainerSasUri "new custom setup SAS URI"
66+
```
67+
68+
3. Restart Azure-SSIS IR.
69+
70+
### Scenario 2 - Azure-SSIS IR is pointing to primary server endpoint
71+
72+
The scenario is suitable if Azure-SSIS IR is pointing to primary server endpoint.
73+
74+
#### Solution
75+
76+
When failover occurs, you have to do the following things:
77+
4678
1. Stop Azure-SSIS IR on primary region.
4779
4880
2. Edit Azure-SSIS IR with new region, endpoint and VNET information of secondary instance.
4981
50-
```powershell
51-
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
82+
```powershell
83+
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
5284
-CatalogServerEndpoint "Azure SQL Database server endpoint" `
5385
-CatalogAdminCredential "Azure SQL Database server admin credentials" `
5486
-VNetId "new VNet" `
5587
-Subnet "new subnet" `
5688
-SetupScriptContainerSasUri "new custom setup SAS URI"
57-
```
89+
```
5890
5991
3. Restart Azure-SSIS IR.
6092
61-
4. Change the server name in **ConnectionManager** of your SSIS packages with the secondary instance server name, then redeploy these packages and run.
93+
### Scenario 3 - Azure-SSIS IR is pointing to public endpoint of Azure SQL Database Managed Instance
94+
95+
The scenario is suitable if the Azure-SSIS IR is pointing to public endpoint of Azure SQL Database Managed Instance and it doesn't join to VNET. The only difference between scenario 2 and this scenarios is that you don't need to edit VNET information of Azure-SSIS IR after failover.
96+
97+
#### Solution
98+
99+
When failover occurs, you have to do the following things:
100+
101+
1. Stop Azure-SSIS IR on primary region.
102+
103+
2. Edit Azure-SSIS IR with new region and endpoint information of secondary instance.
104+
105+
```powershell
106+
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
107+
-CatalogServerEndpoint "Azure SQL Database server endpoint" `
108+
-CatalogAdminCredential "Azure SQL Database server admin credentials" `
109+
-SetupScriptContainerSasUri "new custom setup SAS URI"
110+
```
111+
112+
3. Restart Azure-SSIS IR.
113+
114+
### Scenario 4 - Attaching an existing SSISDB (SSIS catalog) to a new Azure-SSIS IR
115+
116+
This scenario is suitable if you want to provision a new Azure-SSIS IR on secondary region or you want your SSISDB to keep working with a new Azure-SSIS IR in a new region when an ADF or Azure-SSIS IR disaster occurs in current region.
117+
118+
#### Solution
119+
120+
When failover occurs, you have to do the following things:
62121
63-
If you want to provision a new Azure-SSIS IR on secondary region:
64122
> [!NOTE]
65123
> Step 4 (creation of IR) needs to be done via PowerShell. Azure portal will report an error stating that SSISDB already exists.
124+
66125
1. Stop Azure-SSIS IR on primary region.
67126
68127
2. Execute stored procedure to update metadata in SSISDB to accept connections from **\<new_data_factory_name\>** and **\<new_integration_runtime_name\>**.
69128
70-
```SQL
71-
EXEC [catalog].[failover_integration_runtime] @data_factory_name='<new_data_factory_name>', @integration_runtime_name='<new_integration_runtime_name>'
72-
```
129+
```sql
130+
EXEC [catalog].[failover_integration_runtime] @data_factory_name='<new_data_factory_name>', @integration_runtime_name='<new_integration_runtime_name>'
131+
```
73132
74133
3. Create a new data factory named **\<new_data_factory_name\>** in the new region. For more info, see Create a data factory.
75134
76-
```powershell
77-
Set-AzDataFactoryV2 -ResourceGroupName "new resource group name" `
135+
```powershell
136+
Set-AzDataFactoryV2 -ResourceGroupName "new resource group name" `
78137
-Location "new region"`
79138
-Name "<new_data_factory_name>"
80-
```
81-
For more info about this PowerShell command, see [Create an Azure data factory using PowerShell](quickstart-create-data-factory-powershell.md)
139+
```
140+
141+
For more info about this PowerShell command, see [Create an Azure data factory using PowerShell](quickstart-create-data-factory-powershell.md)
82142
83143
4. Create a new Azure-SSIS IR named **\<new_integration_runtime_name\>** in the new region using Azure PowerShell.
84144
85-
```powershell
86-
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName "new resource group name" `
145+
```powershell
146+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName "new resource group name" `
87147
-DataFactoryName "new data factory name" `
88148
-Name "<new_integration_runtime_name>" `
89149
-Description $AzureSSISDescription `
@@ -98,69 +158,51 @@ If you want to provision a new Azure-SSIS IR on secondary region:
98158
-Subnet "new subnet" `
99159
-CatalogServerEndpoint $SSISDBServerEndpoint `
100160
-CatalogPricingTier $SSISDBPricingTier
101-
```
161+
```
102162
103-
For more info about this PowerShell command, see [Create the Azure-SSIS integration runtime in Azure Data Factory](create-azure-ssis-integration-runtime.md)
104-
105-
5. Change the server name in **ConnectionManager** of your SSIS packages with the secondary instance server name, then redeploy these packages and run.
163+
For more info about this PowerShell command, see [Create the Azure-SSIS integration runtime in Azure Data Factory](create-azure-ssis-integration-runtime.md)
106164
107165
108166
109167
## Azure-SSIS IR failover with Azure SQL Database
110168
111169
### Scenario 1 - Azure-SSIS IR is pointing to read-write listener endpoint
112170
113-
#### Conditions
114-
115-
This section applies when the following conditions are true:
116-
117-
- The Azure-SSIS IR is pointing to the read-write listener endpoint of the failover group.
118-
119-
AND
120-
121-
- The SQL Database server is *not* configured with the virtual network service endpoint rule.
171+
This scenario is suitable Azure-SSIS IR is pointing to the read-write listener endpoint of the failover group and the SQL Database server is *not* configured with the virtual network service endpoint rule.
172+
If you want Azure-SSIS IR point to read-write listener endpoint, you need to point to primary server endpoint first. After putting SSISDB to failover group, you can change to read-write listener endpoint and restart Azure-SSIS IR.
122173
123174
#### Solution
124175
125-
When failover occurs, it is transparent to the Azure-SSIS IR. The Azure-SSIS IR automatically connects to the new primary of the failover group.
176+
When failover occurs, it is transparent to the Azure-SSIS IR. The Azure-SSIS IR automatically connects to the new primary of the failover group.
177+
If you want to update the region or other information in Azure-SSIS IR, you can stop it, edit and restart.
126178
127179
128180
### Scenario 2 - Azure-SSIS IR is pointing to primary server endpoint
129181
130-
#### Conditions
131-
132-
This section applies when one of the following conditions is true:
133-
134-
- The Azure-SSIS IR is pointing to the primary server endpoint of the failover group. This endpoint changes when failover occurs.
135-
136-
OR
137-
138-
- The Azure SQL Database server is configured with the virtual network service endpoint rule.
139-
182+
The scenario is suitable if Azure-SSIS IR is pointing to primary server endpoint.
140183
141184
#### Solution
142185
186+
When failover occurs, you have to do the following things:
187+
143188
1. Stop Azure-SSIS IR on primary region.
144189
145190
2. Edit Azure-SSIS IR with new region, endpoint, and VNET information of secondary instance.
146191
147-
```powershell
148-
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
192+
```powershell
193+
Set-AzDataFactoryV2IntegrationRuntime -Location "new region" `
149194
-CatalogServerEndpoint "Azure SQL Database server endpoint" `
150195
-CatalogAdminCredential "Azure SQL Database server admin credentials" `
151196
-VNetId "new VNet" `
152197
-Subnet "new subnet" `
153198
-SetupScriptContainerSasUri "new custom setup SAS URI"
154-
```
199+
```
155200
156201
3. Restart Azure-SSIS IR.
157202
158-
4. Change the server name in **ConnectionManager** of your SSIS packages with the secondary instance server name, then redeploy these packages and run.
159-
160-
161203
### Scenario 3 - Attaching an existing SSISDB (SSIS catalog) to a new Azure-SSIS IR
162204
163-
When an ADF or Azure-SSIS IR disaster occurs in current region, you can make your SSISDB keeps working with a new Azure-SSIS IR in a new region.
205+
This scenario is suitable if you want to provision a new Azure-SSIS IR on secondary region or you want your SSISDB to keep working with a new Azure-SSIS IR in a new region when an ADF or Azure-SSIS IR disaster occurs in current region.
164206
165207
#### Solution
166208
@@ -171,23 +213,24 @@ When an ADF or Azure-SSIS IR disaster occurs in current region, you can make you
171213
172214
2. Execute stored procedure to update metadata in SSISDB to accept connections from **\<new_data_factory_name\>** and **\<new_integration_runtime_name\>**.
173215
174-
```SQL
175-
EXEC [catalog].[failover_integration_runtime] @data_factory_name='<new_data_factory_name>', @integration_runtime_name='<new_integration_runtime_name>'
176-
```
216+
```sql
217+
EXEC [catalog].[failover_integration_runtime] @data_factory_name='<new_data_factory_name>', @integration_runtime_name='<new_integration_runtime_name>'
218+
```
177219
178220
3. Create a new data factory named **\<new_data_factory_name\>** in the new region. For more info, see Create a data factory.
179221
180-
```powershell
181-
Set-AzDataFactoryV2 -ResourceGroupName "new resource group name" `
222+
```powershell
223+
Set-AzDataFactoryV2 -ResourceGroupName "new resource group name" `
182224
-Location "new region"`
183225
-Name "<new_data_factory_name>"
184-
```
185-
For more info about this PowerShell command, see [Create an Azure data factory using PowerShell](quickstart-create-data-factory-powershell.md)
226+
```
227+
228+
For more info about this PowerShell command, see [Create an Azure data factory using PowerShell](quickstart-create-data-factory-powershell.md)
186229
187230
4. Create a new Azure-SSIS IR named **\<new_integration_runtime_name\>** in the new region using Azure PowerShell.
188231
189-
```powershell
190-
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName "new resource group name" `
232+
```powershell
233+
Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName "new resource group name" `
191234
-DataFactoryName "new data factory name" `
192235
-Name "<new_integration_runtime_name>" `
193236
-Description $AzureSSISDescription `
@@ -202,11 +245,9 @@ When an ADF or Azure-SSIS IR disaster occurs in current region, you can make you
202245
-Subnet "new subnet" `
203246
-CatalogServerEndpoint $SSISDBServerEndpoint `
204247
-CatalogPricingTier $SSISDBPricingTier
205-
```
206-
207-
For more info about this PowerShell command, see [Create the Azure-SSIS integration runtime in Azure Data Factory](create-azure-ssis-integration-runtime.md)
248+
```
208249
209-
5. Change the server name in **ConnectionManager** of your SSIS packages with the secondary instance server name, then redeploy these packages and run.
250+
For more info about this PowerShell command, see [Create the Azure-SSIS integration runtime in Azure Data Factory](create-azure-ssis-integration-runtime.md)
210251
211252
212253
## Next steps

0 commit comments

Comments
 (0)