Skip to content

Commit 879d30a

Browse files
committed
Updating Small Details
Updating Small Details
1 parent 33b43ea commit 879d30a

18 files changed

+876
-31
lines changed
-5.5 KB
Binary file not shown.

LogShipping/LogShipping.ssmssqlproj

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
<Items>
44
<LogicalFolder Name="Connections" Type="2" Sorted="true">
55
<Items>
6+
<ConnectionNode Name="BAN-2ADWIVEDI-L:sa">
7+
<Created>2018-04-09T09:49:55.5214712+05:30</Created>
8+
<Type>SQL</Type>
9+
<Server>BAN-2ADWIVEDI-L</Server>
10+
<UserName>sa</UserName>
11+
<Authentication>SQL</Authentication>
12+
<InitialDB />
13+
<LoginTimeout>30</LoginTimeout>
14+
<ExecutionTimeout>0</ExecutionTimeout>
15+
<ConnectionProtocol>NotSpecified</ConnectionProtocol>
16+
<ApplicationName>Microsoft SQL Server Management Studio - Query</ApplicationName>
17+
</ConnectionNode>
618
<ConnectionNode Name="SQL-A:sa">
719
<Created>2018-04-02T07:53:24.6936396+05:30</Created>
820
<Type>SQL</Type>
@@ -50,8 +62,8 @@
5062
<FullPath>PerformRestore.sql</FullPath>
5163
</FileNode>
5264
<FileNode Name="usp_DBAApplyTLogs.sql">
53-
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:SQL-B:False:sa</AssociatedConnectionMoniker>
54-
<AssociatedConnSrvName>SQL-B</AssociatedConnSrvName>
65+
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:BAN-2ADWIVEDI-L:False:sa</AssociatedConnectionMoniker>
66+
<AssociatedConnSrvName>BAN-2ADWIVEDI-L</AssociatedConnSrvName>
5567
<AssociatedConnUserName>sa</AssociatedConnUserName>
5668
<FullPath>usp_DBAApplyTLogs.sql</FullPath>
5769
</FileNode>

LogShipping/usp_DBAApplyTLogs.sql

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
USE [master]
22
GO
3-
-- EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_Verbose = 1 ,@p_DryRun = 1
3+
/* Examples:-
4+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_Verbose = 1 ,@p_DryRun = 1
5+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles'
6+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_Verbose = 1
7+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_TakeExclusiveLocksForRestore = 1
8+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_TakeExclusiveLocksForRestore = 0
9+
10+
-- Run job with Exclusive access Once Every 2 Hours
11+
IF (DATEPART(hour,GETDATE())%2 = 0
12+
AND DATEPART(MINUTE,GETDATE()) <= 5
13+
)
14+
BEGIN
15+
--PRINT 'Even Hours, and 1st 5 minutes'
16+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_TakeExclusiveLocksForRestore = 1
17+
END
18+
ELSE
19+
BEGIN
20+
--PRINT 'Odd Hours'
21+
EXEC master..[usp_DBAApplyTLogs] 'LSTesting', 'LSTesting', '\\DC\Backups\SQL-A\', @p_TUFLocation = 'E:\LS_UndoFiles' ,@p_TakeExclusiveLocksForRestore = 0
22+
END
23+
*/
424

525
IF OBJECT_ID('dbo.usp_DBAApplyTLogs') IS NULL
626
EXEC ('CREATE PROCEDURE [dbo].[usp_DBAApplyTLogs] AS SELECT 1 AS [Dummy];')
@@ -9,7 +29,8 @@ ALTER PROCEDURE [dbo].[usp_DBAApplyTLogs]
929
@p_SourceDbName VARCHAR(125), -- Database name on the publisher
1030
@p_DestinationDbName VARCHAR(125), -- Database name on the subscriber
1131
@p_SourceBackupLocation VARCHAR(255), -- Location of the log backup files on the publisher; default Prod
12-
@p_TUFLocation VARCHAR(100) -- Location for TUF files on Subscriber
32+
@p_TUFLocation VARCHAR(100), -- Location for TUF files on Subscriber
33+
@p_TakeExclusiveLocksForRestore BIT = 1 -- When set to 1, then procedure will kill any connection on @p_DestinationDbName for Log Restore Activity
1334
,@p_Verbose INT = 0 -- SET it to 1 to run the procedure in Debugging Mode
1435
,@p_DryRun INT = 0
1536
AS
@@ -251,7 +272,7 @@ BEGIN
251272
WHILE @@FETCH_STATUS = 0
252273
BEGIN
253274
-- If restoring the first Log in sequence, then take exclusive access of database
254-
IF @id = 1
275+
IF (@id = 1 AND @p_TakeExclusiveLocksForRestore = 1)
255276
BEGIN
256277
SET @EXECstr = 'USE master;
257278

PermissionIssues/GetPermissions.sql

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-- https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql
2+
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
3+
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
4+
5+
select sys.schemas.name 'Schema'
6+
, sys.objects.name Object
7+
, sys.database_principals.name username
8+
, sys.database_permissions.type permissions_type
9+
, sys.database_permissions.permission_name
10+
, sys.database_permissions.state permission_state
11+
, sys.database_permissions.state_desc
12+
, state_desc + ' ' + permission_name + ' on ['+ sys.schemas.name + '].[' + sys.objects.name + '] to [' + sys.database_principals.name + ']' COLLATE LATIN1_General_CI_AS
13+
from sys.database_permissions join sys.objects on sys.database_permissions.major_id = sys.objects.object_id join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id join sys.database_principals on sys.database_permissions.grantee_principal_id = sys.database_principals.principal_id order by 1, 2, 3, 5
14+
15+
-- https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/xp-logininfo-transact-sql
16+
EXEC XP_LOGININFO 'corporate\adwivedi'
17+
EXEC XP_LOGININFO 'CORPORATE\SQL Admins' ,'members'
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0"?>
2+
<SqlWorkbenchSqlProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="PermissionIssues">
3+
<Items>
4+
<LogicalFolder Name="Connections" Type="2" Sorted="true">
5+
<Items>
6+
<ConnectionNode Name="TUL1DBAPMTDB1:CORPORATE\adwivedi">
7+
<Created>2018-04-09T15:59:53.0253255+05:30</Created>
8+
<Type>SQL</Type>
9+
<Server>TUL1DBAPMTDB1</Server>
10+
<UserName />
11+
<Authentication>Windows Authentication</Authentication>
12+
<InitialDB>SQLDBATools</InitialDB>
13+
<LoginTimeout>30</LoginTimeout>
14+
<ExecutionTimeout>0</ExecutionTimeout>
15+
<ConnectionProtocol>NotSpecified</ConnectionProtocol>
16+
<ApplicationName>Microsoft SQL Server Management Studio - Query</ApplicationName>
17+
</ConnectionNode>
18+
</Items>
19+
</LogicalFolder>
20+
<LogicalFolder Name="Queries" Type="0" Sorted="true">
21+
<Items>
22+
<FileNode Name="GetPermissions.sql">
23+
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:TUL1DBAPMTDB1:True</AssociatedConnectionMoniker>
24+
<AssociatedConnSrvName>TUL1DBAPMTDB1</AssociatedConnSrvName>
25+
<AssociatedConnUserName />
26+
<FullPath>GetPermissions.sql</FullPath>
27+
</FileNode>
28+
</Items>
29+
</LogicalFolder>
30+
<LogicalFolder Name="Miscellaneous" Type="3" Sorted="true">
31+
<Items />
32+
</LogicalFolder>
33+
</Items>
34+
</SqlWorkbenchSqlProject>

PowerShell Commands/Ping Servers.sql

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
/* PowerShell Command */
22
$sizeThreshold_In_MB = 5;
3+
$pingResultPath = 'F:\PingMirroringPartners\';
4+
#$pingResultPath = '\\TUL1CORPWIT1\F$\PingMirroringPartners\';
35
$pingResultFile = 'F:\PingMirroringPartners\pingResult';
4-
$names = @('Server01','Server01');
6+
$names = @('TUL1CIPXIDB2','TUL1CIPXIDB3');
7+
8+
# Delete files older than 15 days
9+
$limit = (Get-Date).AddDays(-15);
10+
Get-ChildItem -Path $pingResultPath -Recurse -Force | Where-Object {$_.Name -like 'pingResult*' -and !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force;
511

612
if (Test-Path $pingResultFile -PathType Leaf)
713
{

PowerShell Commands/PowerShell Commands.ssmssqlproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444
<FullPath>Get-SqlResult2Excel.sql</FullPath>
4545
</FileNode>
4646
<FileNode Name="Ping Servers.sql">
47-
<AssociatedConnectionMoniker />
48-
<AssociatedConnSrvName />
49-
<AssociatedConnUserName />
47+
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:BAN-2ADWIVEDI-L:False:sa</AssociatedConnectionMoniker>
48+
<AssociatedConnSrvName>BAN-2ADWIVEDI-L</AssociatedConnSrvName>
49+
<AssociatedConnUserName>sa</AssociatedConnUserName>
5050
<FullPath>Ping Servers.sql</FullPath>
5151
</FileNode>
5252
<FileNode Name="QueryResults-2-Excel.sql">

SQL Jobs/SQL Jobs.ssmssqlproj

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,20 @@
22
<SqlWorkbenchSqlProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="SQL Jobs">
33
<Items>
44
<LogicalFolder Name="Connections" Type="2" Sorted="true">
5-
<Items />
5+
<Items>
6+
<ConnectionNode Name="BAN-2ADWIVEDI-L:sa">
7+
<Created>2018-04-09T17:54:20.9243255+05:30</Created>
8+
<Type>SQL</Type>
9+
<Server>BAN-2ADWIVEDI-L</Server>
10+
<UserName>sa</UserName>
11+
<Authentication>SQL</Authentication>
12+
<InitialDB />
13+
<LoginTimeout>30</LoginTimeout>
14+
<ExecutionTimeout>0</ExecutionTimeout>
15+
<ConnectionProtocol>NotSpecified</ConnectionProtocol>
16+
<ApplicationName>Microsoft SQL Server Management Studio - Query</ApplicationName>
17+
</ConnectionNode>
18+
</Items>
619
</LogicalFolder>
720
<LogicalFolder Name="Queries" Type="0" Sorted="true">
821
<Items>
@@ -12,6 +25,12 @@
1225
<AssociatedConnUserName />
1326
<FullPath>Find Running Jobs.sql</FullPath>
1427
</FileNode>
28+
<FileNode Name="usp_GetStepFailureData.sql">
29+
<AssociatedConnectionMoniker>8c91a03d-f9b4-46c0-a305-b5dcc79ff907:BAN-2ADWIVEDI-L:False:sa</AssociatedConnectionMoniker>
30+
<AssociatedConnSrvName>BAN-2ADWIVEDI-L</AssociatedConnSrvName>
31+
<AssociatedConnUserName>sa</AssociatedConnUserName>
32+
<FullPath>usp_GetStepFailureData.sql</FullPath>
33+
</FileNode>
1534
</Items>
1635
</LogicalFolder>
1736
<LogicalFolder Name="Miscellaneous" Type="3" Sorted="true">

SQL Jobs/usp_GetStepFailureData.sql

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
-- http://www.sqlservercentral.com/articles/SQL+Server+Agent/67726/
2+
USE [master]
3+
GO
4+
5+
IF OBJECT_ID('dbo.usp_GetStepFailureData') IS NULL
6+
EXEC ('CREATE PROCEDURE dbo.usp_GetStepFailureData AS RETURN 0;');
7+
GO
8+
9+
/*
10+
EXEC usp_GetStepFailureData 'Games Quarterly'
11+
*/
12+
ALTER PROCEDURE usp_GetStepFailureData (@JobName VARCHAR(250))
13+
AS
14+
/*
15+
This procedure gets failure log data for the failed step of a SQL Server Agent job
16+
*/
17+
DECLARE @job_id UNIQUEIDENTIFIER
18+
19+
SELECT @job_id = job_id
20+
FROM msdb..sysjobs
21+
WHERE [name] = @JobName
22+
23+
SELECT 'Step ' + CAST(JH.step_id AS VARCHAR(3)) + ' of ' + (
24+
SELECT CAST(COUNT(*) AS VARCHAR(5))
25+
FROM msdb..sysjobsteps
26+
WHERE job_id = @job_id
27+
) AS StepFailed
28+
,CAST(RIGHT(JH.run_date, 2) AS CHAR(2)) + '/' + CAST(SUBSTRING(CAST(JH.run_date AS CHAR(8)), 5, 2) AS CHAR(2)) + '/' + CAST(LEFT(JH.run_date, 4) AS CHAR(4)) AS DateRun
29+
,LEFT(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 2) + ':' + SUBSTRING(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 3, 2) + ':' + LEFT(RIGHT('0' + CAST(JH.run_time AS VARCHAR(6)), 6), 2) AS TimeRun
30+
,JS.step_name
31+
,JH.run_duration
32+
,CASE
33+
WHEN JSL.[log] IS NULL
34+
THEN JH.[Message]
35+
ELSE JSL.[log]
36+
END AS LogOutput
37+
FROM msdb..sysjobsteps JS
38+
INNER JOIN msdb..sysjobhistory JH ON JS.job_id = JH.job_id
39+
AND JS.step_id = JH.step_id
40+
LEFT OUTER JOIN msdb..sysjobstepslogs JSL ON JS.step_uid = JSL.step_uid
41+
WHERE INSTANCE_ID > (
42+
SELECT MIN(INSTANCE_ID)
43+
FROM (
44+
SELECT TOP (2) INSTANCE_ID
45+
,job_id
46+
FROM msdb..sysjobhistory
47+
WHERE job_id = @job_id
48+
AND STEP_ID = 0
49+
ORDER BY INSTANCE_ID DESC
50+
) A
51+
)
52+
AND JS.step_id <> 0
53+
AND JH.job_id = @job_id
54+
AND JH.run_status = 0
55+
ORDER BY JS.step_id ASC

SQLDBA-SSMS Solution.ssmssln

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "Misscellaneous Queries", "M
2525
EndProject
2626
Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "LogShipping", "LogShipping\LogShipping.ssmssqlproj", "{033BA5C7-B799-40F0-B8BE-741D0E02F34E}"
2727
EndProject
28+
Project("{4F2E2C19-372F-40D8-9FA7-9D2138C6997A}") = "PermissionIssues", "PermissionIssues\PermissionIssues.ssmssqlproj", "{B511A519-C45A-4122-995C-D82C3CF5BE9C}"
29+
EndProject
2830
Global
2931
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3032
Default|Default = Default|Default
@@ -40,8 +42,9 @@ Global
4042
{3EAD2BB5-CA7E-4D64-BEC9-A6E7C95B0CD3}.Default|Default.ActiveCfg = Default
4143
{819D9E21-3B8F-4503-B098-BE1FD5091B8B}.Default|Default.ActiveCfg = Default
4244
{77970B04-2242-40A2-98C1-A70538432873}.Default|Default.ActiveCfg = Default
43-
{9A4B5BD9-4EB7-4553-BE0A-9A55F03EEE79}.Default|Default.ActiveCfg = Default
4445
{033BA5C7-B799-40F0-B8BE-741D0E02F34E}.Default|Default.ActiveCfg = Default
46+
{E754ECDA-3EC3-4413-A4DC-364111C7B16F}.Default|Default.ActiveCfg = Default
47+
{B511A519-C45A-4122-995C-D82C3CF5BE9C}.Default|Default.ActiveCfg = Default
4548
EndGlobalSection
4649
GlobalSection(SolutionProperties) = preSolution
4750
HideSolutionNode = FALSE

0 commit comments

Comments
 (0)