Instance Üzerindeki Veritabanlarından Sadece Standalone Olanları Listelemek

17 Tem by NURULLAH ÇAKIR

Instance Üzerindeki Veritabanlarından Sadece Standalone Olanları Listelemek

Özellikle Always On kullanıyorsanız ve bazı veritabanlarınızı always on yapısına geçirmediyseniz bazı durumlarda instance üzerinden bulunan ve ag’ye dahil olmayan veritabanlarının listesine ihtiyacınız oluyor.

 

Aşağıdaki 2 script’te instance üzerindeki veritabanlarından sadece standalone olanların listesini veriyor. İkincisini ilkini bulamadığımda yazdım. 🙂 Dilediğinizi kullanabilirsiniz.

1)

select name from sys.sysdatabases where name not in( SELECT DISTINCT dbcs.database_name AS name
FROM master.sys.availability_groups AS AG
LEFT OUTER JOIN master.sys.dm_hadr_availability_group_states as agstates
   ON AG.group_id = agstates.group_id
INNER JOIN master.sys.availability_replicas AS AR
   ON AG.group_id = AR.group_id
INNER JOIN master.sys.dm_hadr_availability_replica_states AS arstates
   ON AR.replica_id = arstates.replica_id AND arstates.is_local = 1
INNER JOIN master.sys.dm_hadr_database_replica_cluster_states AS dbcs
   ON arstates.replica_id = dbcs.replica_id
LEFT OUTER JOIN master.sys.dm_hadr_database_replica_states AS dbrs
   ON dbcs.replica_id = dbrs.replica_id AND dbcs.group_database_id = dbrs.group_database_id
WHERE ISNULL(arstates.role, 3) = 1 OR ISNULL(dbcs.is_database_joined, 0) = 1
)and dbid >4 order by name asc

2)

SELECT name FROM sys.sysdatabases where dbid>4 and name not in(
SELECT  DB_NAME(dr_state.database_id) as name
FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id )
JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id)
JOIN sys.dm_hadr_database_replica_states dr_state on ag.group_id = dr_state.group_id
and dr_state.replica_id = ar_state.replica_id
where ar_state.role_desc='PRIMARY' OR ar_state.role_desc='SECONDARY')

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir