MS_SQL 백업(BACKUP) 안될 때 방법(Agent 오류 등) DB

MS_SQL에서 Agent 문제 또는 오류

계정 문제에 따른 백업 작업 오류(예: netsend 등) 시 쿼리를 통하여 백업을 하고 윈도우일 경우 작업 스케줄러로

배치 파일을 만들어 백업 작업 진행을 하였다.


1. 해당 백업 쿼리는
================================================================================================================

USE DBName;
Go

declare @Path nvarchar(200)
declare @DBName nvarchar(100)
declare @FileName nvarchar(100)
declare @TXFileName nvarchar(100)
declare @FullFileName nvarchar(200)
declare @TXFullFileName nvarchar(200)

set @Path = 'D:\백업'
set @DBName = 'DBName'

set @Path = @Path + N'\'

set @FileName = @DBName + N'_Backup_' + CONVERT(varchar(10), getdate(),120)
--set @TXFileName = @DBName + N'_TX_' + CONVERT(varchar(10), getdate(),120) /* 트랜잭션 */

set @FullFileName = @Path + N'\' + @FileName + N'.Bak'
--set @TXFullFileName = @Path + N'\' + @TXFileName + N'.trn'/* 트랜잭션 */


backup database @dbname to disk = @FullFileName with noformat, noinit, name = @FileName , skip , rewind, nounload, stats = 10
--backup log @Dbname to disk = @TxFullFileName with noformat, noinit, name = @FileName , noskip, stats = 10 , noformat /* 트랜잭션 */
Go

==================================================================================================================

2. 윈도우 작업 스케줄 배치파일 작성 방법은
==============================================

@echo off

SQLCMD.EXE -E -i D:\backup.sql

exit

===============================================
위 내역을 메모장에 작성 후 *.bat 파일로 저장

3. 작업 스케줄러에 해당 파일 실행으로 스케줄 설정하면 끝

추가로 백업 파일 삭제 배치는

================================================

forfiles /p "D:\백업" /s /m *.* /d -14 /c "cmd /c del @path"

=================================================

로 똑같이 bat 파일로 만들어 작업 스케줄러에 등록하면 된다.(14일 이전 파일 삭제)