AG Status Report in SQL

 Declare @cmd Varchar (1000),@profile_name Varchar(1000), @description Varchar (500)

DECLARE @xml NVARCHAR(MAX), @body NVARCHAR(MAX)

SET @xml = CAST(( SELECT @@Servername As 'td',' ',Name AS 'td' ,'' ,role_desc as 'td' ,'',operational_state_desc as 'td'

from Sys.availability_groups_cluster AS AGC  Inner Join Sys.dm_hadr_availability_replica_cluster_states As RCS

on RCS.group_id=AGC.group_id Inner Join Sys.dm_hadr_availability_replica_states As ARS on ARS.replica_id=RCS.replica_id

Inner Join Sys.availability_group_listeners AS AGL

ON AGL.group_id=ARS.group_id

Where operational_state_desc is not NULL

order by 3  FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

SET @body ='<html><body><H3> Availability Groups status </H3>

<table border = 1> 

<tr>

<th> Server Name </th> <th> Availability Groups </th> <th> Role </th> <th>Status </th> </tr>'    


SET @body = @body + @xml +'</table></body></html>'


Set @cmd= @@SERVERNAME + ': Availability Groups status'


SELECT Top 1 @profile_name=name  FROM msdb.dbo.sysmail_profile


EXEC msdb.dbo.sp_send_dbmail

@profile_name = @profile_name, -- replace with your SQL Database Mail Profile 

@body = @body,

@body_format ='HTML',

--@recipients =  'ajeyudu@sqldbanow.com', -- replace with your email address

@recipients =  'IT.ESA-DBA@sqldbanow.com', -- replace with your email address

@subject = @cmd

Troubleshooting master database corrupted in SQL Server

 One of an instance master database data file was corrupted and I was unable to start the server. How to troubleshoot this scenario?

Possible Scenarios

If the master files are corrupted or damaged, instance cannot be started. We have to rebuild master database then by running the server in single user mode we have to restore latest backup to get previous settings.

Steps

1.      Check the error log for exact reason.

2.      Rebuild master database as follows by running setup from

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release

For windows authentication:

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance
name> /SQLSYSADMINACCOUNTS=<accounts>

 

For mixed mode:

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<instance
name> /SQLSYSADMINACCOUNTS=<accounts> /SAPWD=password

3.      Once rebuilding is completed then run the server in single user mode

4.   Restore master database by replacing existing one.

Restart the server in multi user mode.

Troubleshooting host name changes in SQL Server

 When the machine name is changed where we have installed SQL Server, all the instances services are started but replication, Jobs, Alerts, Maintenance plans causes errors. Hence we have to rename the instance.

To rename instance we can use the following SP

Steps:

1.      Check the old server name as follows

SELECT @@servername

2.      Drop the server and add the new server name

             SP_DROPSERVER   <oldName>

           SP_ADDSERVER <newName>, local

3.      Restart the instance

4.      Check the server name again

SELECT @@servername

How to apply patches in SQL Server SQL Cluster Environment:

 SQL Cluster Environment:

Apply a SQL Service Pack or hot-fix in a 2 node Active/Passive SQL Cluster environment.

Active SQL Server: SQLDBANOWDBALABS

Passive SQL Server: SQLDBANOWDBALABS-DR

1. First apply the SQL Service Pack on Passive Server. (SQLDBANOWDBALABS-DR)

2. Post SP/hot-fix installation completion, restart the Passive Server if prompted.

3. Failover the SQL Cluster Service/Instance from Active to Passive Server.

Post Failover:

New Active Server: SQLDBANOWDBALABS-DR

New Passive Server: SQLDBANOWDBALABS

4. Now apply the SQL Service pack on New Passive Server. (SQLDBANOWDBALABS)

5. Post SP/hot-fix installation completion, restart the New Passive Server if prompted.

6. Failback the SQL Cluster Service/Instance from Active to Passive Server.

Post Failback:

Active Server: SQLDBANOWDBALABS

Passive Server: SQLDBANOWDBALABS-DR

7. Finally verify the SQL Cluster Services and Cluster Disk Health Check in Failover Cluster Manager.

How to apply patches in SQL Server Always On Environment

 SQL Always On Environment:

Apply a SQL Service Pack or hot-fix in SQL Server Always-On environment.

Primary SQL Replica: SQLDBANOWDBALABS

Secondary SQL Replica: SQLDBANOWDBALABS-DR

Apply SP/Hot-fix on all Secondary AG Replica's 

Finally Apply SP/Hot-fix on Primary AG Replica.

1. On Secondary AG Replica: (SQLDBANOWDBALABS-DR)

Ensure AG Databases are in Synchronized Status.

Apply the SQL Service Pack on Secondary Replica Server. (SQLDBANOWDBALABS-DR)

Post SP/hot-fix installation completion, restart the Secondary Replica Server if prompted.

2. On Primary AG Replica: (SQLDBANOWDBALABS)

Failover the SQL AG Group from Primary Replica to Secondary Replica.

3. Post AG Group Failover:

New Primary Replica : SQLDBANOWDBALABS-DR

New Secondary Replica: SQLDBANOWDBALABS

4. On New Secondary AG Replica: (SQLDBANOWDBALABS)

Apply the SQL Service pack on New Secondary Replica Server. (SQLDBANOWDBALABS)

Post SP/hot-fix installation completion, restart the New Secondary Replica Server if prompted.

5. On New Primary AG Replica: (SQLDBANOWDBALABS-DR)

Failback the SQL AG Group from Primary to Secondary Replica.

6. Post AG Group Failback:

Primary Replica : SQLDBANOWDBALABS

Secondary Replica: SQLDBANOWDBALABS-DR

7. Finally verify the SQL AG Group Health Check in AG DashBoard Reports.