DB (데이터베이스)/MS-SQL

[MS-SQL] MS-SQL 백업 성공/실패 여부 확인 (UI, sql, csv)

뜽배 2024. 8. 27. 23:28
728x90
반응형

MS-SQL에서 간단하게 백업 성공 실패 여부를 확인할 수 있다.


1. UI로 확인하기


위 사진 처럼
SQL Server 에이전트 -> 작업 -> <backup jobs>(마우스 우클릭) -> 기록보기

위와 같이 기록을 볼 수 있다.


2. SQL로 확인하기

use msdb;

select
	job.name,
	job.description,
	case job_hist.run_status
		when 0 then 'Faild'
		when 1 then 'Succeeded'
		when 2 then 'Retry'
		when 3 then 'Canceled'
		when 4 then 'In progress'
	end as  ExecutionStatus,
	job_hist.run_date,
	job_hist.run_time,
	job_hist.run_duration as run_durations_sec,
	job_hist.step_id,
	job_hist.message
from sysjobs job, sysjobhistory job_hist
where job.job_id = job_hist.job_id
and job.job_id = '573A3DD4-3FE1-49DE-9864-C96F4462411E'	  --> 조회하고자 하는 jobs
order by job_hist.run_date desc, job_hist.step_id;

 

위와 같이 sql문을 통해 결과를 얻을 수 있다.


3. powershell로 작성 후 csv로 확인하기


우선 powershell script로 작성하면

# backup 성공/실패 여부 

$ServerInstance = "MSSQLSERVER"
$Database = "msdb"
$Query = "select
			job.name,
			job.description,
			case job_hist.run_status
				when 0 then 'Faild'
				when 1 then 'Succeeded'
				when 2 then 'Retry'
				when 3 then 'Canceled'
				when 4 then 'In progress'
			end as  ExecutionStatus,
			job_hist.run_date,
			job_hist.run_time,
			job_hist.run_duration as run_durations_sec,
			job_hist.step_id,
			job_hist.message
		from sysjobs job, sysjobhistory job_hist
		where job.job_id = job_hist.job_id
		and job.job_id = '573A3DD4-3FE1-49DE-9864-C96F4462411E'  --> 조회하고자 하는 jobs
		order by job_hist.run_date desc, job_hist.step_id;"

$OutputFile = "C:\test\test.csv"

# sql execute & export csv file
$queryResult = Invoke-Sqlcmd -Database $Database -Query $Query

$queryResult | Export-Csv -Path $OutputFile -NoTypeInformation -Encoding UTF8


## 기존 파일에 append 하는 옵션 (선택사항)
<#
if(Test-Path $OutputFile)
{
	# exists -> append data
	$queryResult | Export-Csv -Path $OutputFile -NoTypeInformation -Append -Encoding UTF8
}
else
{
	# non exists -> create file include header
	$queryResult | Export-Csv -Path $OutputFile -NoTypeInformation -Encoding UTF8
}
#>



위와 같이 코드를 작성할 수 있다.

이 코드를 SSMS에 등록하여 job으로 만들 수 있다.

SQL Server 에이전트 -> 작업(마우스 우클릭) -> 새 작업


위와 같이 이름을 정하고 

'단계' 탭에서 '새로 만들기'를 누른다.

유형을 PowerShell로 변경하고 PowerShell script를 입력해준다.


일정에서 적절하게 일정을 설정해주면 된다.

728x90
반응형