데이터베이스

Total 205
Today 0
profile_image
최고관리자
07-06-11 07:58 0개 539회
MSSQL
MS SQL2005 DB백업/복원하는 방법과 스케줄백업하는 방법
1. 백업하는 sql문은 대략 아래와 같습니다.

backup database db명 to disk='백업파일경로' with init , name='백업명'

상당히 많은 백업 옵션이 있으므로 이런것들 도움말을 참조 하시는 것이 좋을 듯 합니다.

 

2. 복원하는 방법은 아래와 같습니다.

restore database db명  from disk= '백업파일경로'  recovery

이것도 상당히 많은 옵션들이 있습니다. 이것도 도움말을 참조하는 것이 좋을 듯 합니다.

 

3. sql서버에 job이란 것이 있습니다.

여기에 새로운 job 만들기를 하고

작업 단계를 만들어 작업단계에서 작업형태를 t-sql로 선택하고

backup database 구문을 적습니다.

그리고 실행 일정을 잡아 주면 됩니다.

 

또 다른 방법은

backup database 구문을 적어서 파일을 저장을 합니다.

그리고 osql이라는 프로그램을 이용하여 이 sql문 파일을 실행만 하면 됩니다.

osql사용법은  sql서버가 깔린 컴에서 실행시 아래와 같습니다. (관리자 계정으로 실행해야 통합인증으로 sql서버에 접근이 되겠죠)

OSQL -E -i sql파일경로 -o 로그파일경로

 

그리고 스케줄링은 시작->프로그램->보조프로그램->예약된작업 이용하면 되겠죠

 

 

그러나 저는 개인적으로

서버관리를 할때는 스크립트를 사용하기를 권장합니다.

vb스크립트는 윈도서버를 관리하기에는 아주 좋은 방법입니다.

 

간단한 sql서버 스크립트를 올려 드리겠습니다.

아래 소스를 메모장에 붙여 넣고 (조금의 수정은 필요합니다.) 

sqlbackup.vbs 라 파일로 저장하세요

 - 기본적으로 스크립트가 있는 디렉토리에 data라는 디렉토리를 만들어 주세요(요기에 백업 파일이 저장될 겁니다.

명령프롬프트에서 cscript sqlbackup.vbs 이렇게 하면 백업이 실행이 될겁니다.

주기적으로 이 프로그램을 실행할려면 시작->프로그램->보조프로그램->예약된작업 을 이용하여 스케줄링 하시면 됩니다.

그리고 이것도 위와 마찬가지로 관리자 계정으로 실행해야 됩니다.

 

'-------------------------------------------------

' 이하 sql서버 백업 스크립트 소스

'------------------------------------------------

 

const ConStr = "Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"
const dbSQL = "select name from sysdatabases"
const backupSQLFile = "backup.sql"
const backupPath = "data"
Dim curPath, CmdStr, backupdt
Dim WshShell, fso, con, sqlf, rec

Set WshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set con = CreateObject("Adodb.Connection")

'현재 경로 구하기
tmp = Wscript.scriptFullName
curPath = mid(tmp, 1,  instrrev(tmp, "\") - 1) & "\"

Set sqlf = fso.CreateTextFile(curPath & backupSQLFile, True)


backupdt = date & "h" & hour(now) & "m" & minute(now) '백업날짜표기용

'백업 대상 구하기
con.Open ConStr
set rec = con.Execute(dbSQL)
while Not rec.EOF
 str = "backup database " & rec("name") & " to disk='" & curPath & backupPath & "\" + rec("name") & "(" & backupdt & ").bak' with init , name='" & rec("name") & "(" & backupdt & ")_Full'"
 Wscript.Echo str
 sqlf.WriteLine Str
 sqlf.WriteLine "go"
 rec.MoveNext
wend
sqlf.Close
con.Close
set con = nothing
set rec = nothing
set fso = nothing

CmdStr = "OSQL -E -i " & curPath & backupSQLFile & " -o " & curPath &  "backuplog(" & backupdt & ").log"
Set oExec = WshShell.Exec(CmdStr)
Wscript.echo CmdStr
Wscript.echo "백업실행중..."
[이 게시물은 최고관리자님에 의해 2007-08-07 16:28:35 홈페이지에서 이동 됨]

추천 0 비추천 0

댓글목록

등록된 댓글이 없습니다.