Skip to main content

Posts

Total IPs Required for fail-over clustering in SQL

How many Total ip's required build win&SQL Failover clustering Active/Active & Active/Passive? Ans. In a 2 node cluster each ip for each node and one ip for win cluster and one for msdtc and one for each cluster group .. If u use private network for heartbeat then 2 more ip .. So total of 5-7 In a two node cluster 7ip's are needed two private ip's for connecting to quarum. one for node A and other for node B, two public ip's one for node A and other one For node B and one for msdic and one for msclust and one ip for switch for connecting to san drives in which data is stored.  Total 7ip's are needed.

Script to apply any user permission to the all databases of SQL

/* It is a new feature and it has ability to create user defined server roles and assign server level/scope permissions. */ /* - Following actions are performed to implement this new feature: - Created Server role - Created Login and made member of server role - Granted Standard view permission After completion above steps the login has ability to make connection any database with data reader permission. */ USE master GO CREATE SERVER ROLE ALLDBREADER Go CREATE LOGIN [DBREADER] WITH PASSWORD=N'123', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO ALTER SERVER ROLE ALLDBREADER ADD MEMBER [DBREADER] GO GRANT CONNECT SQL TO ALLDBREADER GRANT VIEW ANY DATABASE TO ALLDBREADER GRANT VIEW ANY DEFINITION TO ALLDBREADER GRANT VIEW SERVER STATE to ALLDBREADER GRANT CONTROL SERVER TO ALLDBREADER DENY SHUTDOWN TO ALLDBREADER Go USE master GO CREATE SERVER ROLE ALLDBREADER Go GRANT CONTROL SERVER TO ALLDBREADER DENY ALTER ANY DATABASE TO

Script or query for FAILED JOBS Details with error Messages in SQL

You can use following Script or query for FAILED JOBS Details with error Messages in SQL. I hope it will help you. USE Msdb Declare @lastRunDate int =replace(CAST(getdate()as date),'-','') SELECT Sj.name as JobName ,CASE SJH.run_status WHEN 0 THEN 'Failed' WHEN 1 THEN 'Succeded' WHEN 2 THEN 'Retry' WHEN 3 THEN 'Canceled' END AS JobStatus,SJH.message from sysjobhistory SJH inner join sysjobs SJ ON SJH.job_id = SJ.job_id where SJH.step_id = 0 and sjh.run_date =@lastRunDate and SJH.run_status =0

What is SQL Server Profile

SQL Server Profiler. It is a graphical based tool provided by SQL Server. It enables you to trace a query. For example.you have a SP which you wish to trace. you can execute the SP and start a profiler trace on it. It will show you row by row execution of the SP SQL Server Profiler is used to trace and analyze the SQL Server running processes and queries in the cases of performance issue. It is taken high memory so not used in main server. It is have so many events for trace. so your select desired event and filter it. It can use to find the blocking by applying trace and catch everythng runing on the server

How to Get historical data of blocked process in SQL

WITH [Blocking]AS (SELECT w.[session_id] ,s.[original_login_name] ,s.[login_name] ,w.[wait_duration_ms] ,r.[scheduler_id] ,w.[wait_type] ,r.[status] ,r.[wait_resource] ,w.[resource_description] ,s.[program_name] ,w.[blocking_session_id] ,s.[host_name] ,r.[command] ,r.[percent_complete] ,r.[cpu_time] ,r.[total_elapsed_time] ,r.[reads] ,r.[writes] ,r.[logical_reads] ,r.[row_count] ,q.[text] ,q.[dbid] ,p.[query_plan] ,r.[plan_handle] FROM [sys].[dm_os_waiting_tasks] w INNER JOIN [sys].[dm_exec_sessions] s ON w.[session_id] = s.[session_id] INNER JOIN [sys].[dm_exec_requests] r ON s.[session_id] = r.[session_id] CROSS APPLY [sys].[dm_exec_sql_text](r.[plan_handle]) q CROSS APPLY [sys].[dm_exec_query_plan](r.[plan_handle]) p WHERE w.[session_id] > 50 ) Insert into Blocking_v1 ([session_id] ,[blocking_session_id] ,[WaitingUserSessionLogin] ,[BlockingUserSessionLogin] ,[scheduler_id]

What is Covering Index in SQL

A covering index is a non-clustered index which includes all columns referenced in the query and therefore, the optimizer does not have to perform an additional look-up to the table in order to retrieve the data requested. As the data requested is all indexed by the covering index, it is a faster operation. covering index is a non-clustered index which stores additional columns at leaf level to avoid bookmark lookup to heap/clustered index.this is typically created using INCLUDE clause. Let say we have a table tab1 and we have columns starts from column 1 to 10. and we have clustered index on column1 and non clustered index on column 2 . for example you written a query select * from tab1 where column 2=200. this query first will go and look for the matching data in non clustered index and because of our query want to retrieve all the columns it will perform key look up , not helathy. this time i had one more non clustered index on column3 and column4 ,composite.in this case our query