2007~2011/SQL Server2009. 10. 27. 09:42

SQL Server Management Studio(이하 SSMS)를 사용하지 않고 데이터베이스를 백업 받으려면 어떤 방법이 있을까요? SQL Server Command line tool 을 사용하여 데이터베이스를 백업하고 간단히 T-SQL 쿼리를 수행하는 방법에 대해서 아래와 같이 정리하였습니다.


1. SQL Server 데이터베이스 연결
 - 아래 그림은 SA 계정과 Windows 인증을 통한 두 가지 방법에 대한 예제입니다.




2. 데이터베이스 백업
 - localhost 에 위치한 SQL Server 에 윈도우 인증으로 연결하여 데이터베이스 백업을 수행합니다.



3. 조회 결과 Text file 파일로 내보내기
 - sqlcmd -o 스위치를 사용하여 쿼리 수행 결과를 text 파일로 내보내기 할 수 있습니다. 좁은 command 화면에서 많은 양의 데이터는 보기 힘들기 때문에 이 방법을 사용할 수도 있습니다.


Query.txt 파일을 notepad 로 열어보면 아래와 같이 쿼리 수행 결과가 저장되어 있습니다.

NAME                                DBID   SID                                                                                   
--------------------------------------------------------------------------------------------------------
master                                1 0x01                                                                                  
tempdb                               2 0x01                                                                                  
model                                 3 0x01                                                                                  
msdb                                  4 0x01                                                                                  
AdventureWorks                    5 0x010100000000000512000000                                                            
AdventureWorksDW               6 0x010100000000000512000000                                                            
AdventureWorksLT                 7 0x010100000000000512000000                                                            
AdventureWorks2008              8 0x010100000000000512000000                                                            
AdventureWorksDW2008         9 0x010100000000000512000000                                                            
AdventureWorksLT2008          10 0x010100000000000512000000                                                            
LAIGO_FULL                         11 0x010500000000000515000000EECED709A49479F270770942E8030000                            
SupernaturalDB                     12 0x010500000000000515000000EECED709A49479F270770942E8030000                            

(12 rows affected)


추가로 SQLCMD 명령의 도움말은 아래와 같습니다.

usage: Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w screen width]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-c cmdend]            [-L[c] list servers[clean output]]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces]
  [-u unicode output]    [-r[0|1] msgs to stderr]
  [-i inputfile]         [-o outputfile]        [-z new password]
  [-f <codepage> | i:<codepage>[,o:<codepage>]] [-Z new password and exit]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting]
  [-b On error batch abort]
  [-v var = "value"...]  [-A dedicated admin connection]
  [-X[1] disable commands, startup script, enviroment variables [and exit]]
  [-x disable variable substitution]
  [-? show syntax summary]



[참고자료]
sqlcmd 유틸리티 사용
http://msdn.microsoft.com/ko-kr/library/ms180944.aspx

다중 인스턴스 연결을 위한 SQLCMD 명령 :CONNECT
http://laigo.kr/273


작성자 : Lai Go / 작성일자 : 2009.10.27

Posted by Lai Go