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
--------------------------------------------------------------------------------------------------------
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]
[-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