블로그 이미지
프로그램을 가장 훌륭하게 작성하는 방법은 상태가 변경되는 오브젝트들과 수학적인 값을 나타내는 오브젝트들의 조합으로 표현하는 것이다. -Kent Beck 초초초보

카테고리

Programming (184)
ASP.NET (9)
Silverlight (2)
Javascript (20)
C# (8)
java (25)
SQL (14)
Oracle (3)
MyBatis (3)
기타 (52)
개발방법론 (1)
trouble shooting (2)
Linux (5)
스칼라 (5)
html (2)
grails & gradle (3)
Spring (2)
rabbitmq (1)
(3)
spark (0)
docker (3)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

MS-SQL DB 백업 스크립트

SQL / 2010. 3. 19. 17:49

귀찮은 디비 백업 스크립트로 간단히 백업


--SQL 에서 폴더 생성 가능하게 셋팅
 --SP_CONFIGURE XP_CMDSHELL ,1
 --RECONFIGURE


--날짜에 맞게 폴더 생성
DECLARE @COMMAND NVARCHAR(100)
declare @folderName NVARCHAR(100)
set @folderName = N'D:\백업\DB백업\'  +  CONVERT(VARCHAR(10),GETDATE(), 121)
SET @COMMAND=N'MD ' + @folderName
 EXEC MASTER..XP_CMDSHELL @COMMAND
GO
--적당히 쓸 변수들
DECLARE @QUERY NVARCHAR(MAX)
DECLARE @PARAMS NVARCHAR(100)
DECLARE @DBNAME2 NVARCHAR(100)
DECLARE @PATH2 NVARCHAR(200)
DECLARE @ROWCOUNT INT;
DECLARE @COUNT INT;
--백업할 디비명들 저장
DECLARE @TABLE TABLE(TABLENAME NVARCHAR(100))

INSERT INTO @TABLE VALUES ('디비명');

....
..
.

 

SET @COUNT =1
SELECT @ROWCOUNT =  COUNT( TABLENAME) FROM @TABLE

-- 테이블변수에서 디비명 읽어와서 백업
WHILE @COUNT<@ROWCOUNT +1
BEGIN
 SELECT TOP 1  @DBNAME2 = TABLENAME FROM @TABLE
 WHERE TABLENAME IN (
 SELECT TABLENAME
  FROM(
   SELECT TABLENAME, ROW_NUMBER() OVER (ORDER BY TABLENAME) NUM FROM  @TABLE
   ) t1 WHERE NUM = @COUNT
  )
 
 
 
--D:\백업\DB백업\2010-03-19\ACDDYN_2010-03-19.BAK
SELECT @PATH2  = N'D:\백업\DB백업\'  +  CONVERT(VARCHAR(10),GETDATE(), 121) +'\'+ @DBNAME2 +N'_' +CONVERT(VARCHAR(10),GETDATE(), 121)+ N'.BAK'
SET @QUERY = N'BACKUP DATABASE @DBNAME TO DISK=@PATH'
SET @PARAMS = N' @DBNAME NVARCHAR(100),@PATH NVARCHAR(200)'
EXEC sp_executesql @QUERY,@PARAMS, @DBNAME =@DBNAME2, @PATH = @PATH2

SET @COUNT = @COUNT +1;
 
END

 


끝.

Posted by 초초초보
, |