Skip to content

Commit fa72989

Browse files
committed
formatting
1 parent ea2a1dc commit fa72989

1 file changed

Lines changed: 16 additions & 20 deletions

File tree

docs/database-engine/availability-groups/windows/monitor-performance-for-always-on-availability-groups.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ The below queries create stored procedures to estimate RTO and RPO without relyi
143143

144144
1. On the target secondary replica, create stored procedure **proc_calculate_RTO**. If this stored procedure already exists, drop it first, and then recreate it.
145145

146-
```sql
146+
```sql
147147
if object_id(N'proc_calculate_RTO', 'p') is not null
148148
drop procedure proc_calculate_RTO
149149
go
@@ -174,8 +174,7 @@ The below queries create stored procedures to estimate RTO and RPO without relyi
174174
declare @group_database_id uniqueidentifier
175175
declare @group_id uniqueidentifier
176176
declare @RTO float
177-
178-
177+
179178
select
180179
@is_primary_replica = dbr.is_primary_replica,
181180
@is_failover_ready = dbcs.is_failover_ready,
@@ -186,7 +185,7 @@ The below queries create stored procedures to estimate RTO and RPO without relyi
186185
@group_id = dbr.group_id
187186
from sys.dm_hadr_database_replica_states dbr join sys.dm_hadr_database_replica_cluster_states dbcs on dbr.replica_id = dbcs.replica_id and
188187
dbr.group_database_id = dbcs.group_database_id where dbcs.database_name = @secondary_database_name
189-
188+
190189
if @is_primary_replica is null or @is_failover_ready is null or @redo_queue_size is null or @replica_id is null or @group_database_id is null or @group_id is null
191190
begin
192191
print 'RTO of Database '+ @secondary_database_name +' is not available'
@@ -197,7 +196,7 @@ The below queries create stored procedures to estimate RTO and RPO without relyi
197196
print 'You are visiting wrong replica';
198197
return
199198
end
200-
199+
201200
if @redo_queue_size = 0
202201
set @RTO = 0
203202
else if @redo_rate is null or @redo_rate = 0
@@ -213,7 +212,7 @@ The below queries create stored procedures to estimate RTO and RPO without relyi
213212
print 'replica_id of Database '+ @secondary_database_name +' is ' + convert(nvarchar(50), @replica_id)
214213
print 'group_database_id of Database '+ @secondary_database_name +' is ' + convert(nvarchar(50), @group_database_id)
215214
end
216-
```
215+
```
217216

218217
2. Execute **proc_calculate_RTO** with the target secondary database name:
219218
```sql
@@ -230,7 +229,7 @@ group_database_id of Database DB4 is 39F7942F-7B5E-42C5-977D-02E7FFA6C392
230229
### Create a stored procedure to estimate RPO
231230
1. On the primary replica, create stored procedure **proc_calculate_RPO**. If it already exists, drop it first, and then recreate it.
232231

233-
```sql
232+
```sql
234233
if object_id(N'proc_calculate_RPO', 'p') is not null
235234
drop procedure proc_calculate_RPO
236235
go
@@ -261,39 +260,36 @@ group_database_id of Database DB4 is 39F7942F-7B5E-42C5-977D-02E7FFA6C392
261260
declare @is_failover_ready bit
262261
declare @is_local bit
263262
declare @last_commit_time_sec datetime
264-
declare @last_commit_time_pri datetime
265-
266-
263+
declare @last_commit_time_pri datetime
267264
declare @RPO nvarchar(max)
268-
265+
269266
-- secondary database's last_commit_time
270267
select
271268
@db_name = dbcs.database_name,
272269
@is_failover_ready = dbcs.is_failover_ready,
273270
@last_commit_time_sec = dbr.last_commit_time
274271
from sys.dm_hadr_database_replica_states dbr join sys.dm_hadr_database_replica_cluster_states dbcs on dbr.replica_id = dbcs.replica_id and
275272
dbr.group_database_id = dbcs.group_database_id where dbr.group_id = @group_id and dbr.replica_id = @replica_id and dbr.group_database_id = @group_database_id
276-
277-
273+
278274
-- correlated primary database's last_commit_time
279275
select
280276
@last_commit_time_pri = dbr.last_commit_time,
281277
@is_local = dbr.is_local
282278
from sys.dm_hadr_database_replica_states dbr join sys.dm_hadr_database_replica_cluster_states dbcs on dbr.replica_id = dbcs.replica_id and
283279
dbr.group_database_id = dbcs.group_database_id where dbr.group_id = @group_id and dbr.is_primary_replica = 1 and dbr.group_database_id = @group_database_id
284-
280+
285281
if @is_local is null or @is_failover_ready is null
286282
begin
287283
print 'RPO of database '+ @db_name +' is not available'
288284
return
289285
end
290-
286+
291287
if @is_local = 0
292288
begin
293289
print 'You are visiting wrong replica'
294290
return
295-
end
296-
291+
end
292+
297293
if @is_failover_ready = 1
298294
set @RPO = '00:00:00'
299295
else if @last_commit_time_sec is null or @last_commit_time_pri is null
@@ -313,15 +309,15 @@ group_database_id of Database DB4 is 39F7942F-7B5E-42C5-977D-02E7FFA6C392
313309
end
314310
print 'RPO of database '+ @db_name +' is ' + @RPO
315311
end
316-
```
312+
```
317313

318314
2. Execute **proc_calculate_RPO** with the target secondary database's *group_id*, *replica_id*, and *group_database_id*.
319315

320-
```sql
316+
```sql
321317
exec proc_calculate_RPO @group_id= 'F176DD65-C3EE-4240-BA23-EA615F965C9B',
322318
@replica_id = '405554F6-3FDC-4593-A650-2067F5FABFFD',
323319
@group_database_id = '39F7942F-7B5E-42C5-977D-02E7FFA6C392'
324-
```
320+
```
325321
3. The output displays the RPO value of the target secondary replica database.
326322

327323

0 commit comments

Comments
 (0)