Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 4건
  무엇을 Backup 받아야 하나 (시스템 데이터베이스 소개)? 
작성일시 : 2008.01.21 13:51 | 분류 : SQL Server/Administration | 태그 : master, model, msdb, SQL Server 2005, system database, tempdb

<참고 서적 :
Inside Microsoft SQL Server 2000,
전문가로 가는 지름길 SQL Server 2000/2005,
포켓 컨설턴트 SQL 2005
MOC 및 MSDN 자료들....
>
제 글의 메인은 Inside Microsoft SQL Server 2000를 기반으로 작성되고 있습니다...
거의 copy 하는 수준으로...^^;;
목차
DB 공부하기 1번째 : 선언적 데이터 무결성(Declarative Data Integrity) (http://maystyle.tistory.com/218)
DB 공부하기 2번째 : 트랜잭션 프로세싱 (http://maystyle.tistory.com/219)
DB 공부하기 3번째 : 데이터 파일과 트랜젝션 로그 파일
1. 왜 DB의 단편화가 일어나는 걸까? (http://maystyle.tistory.com/220)
2. 데이터 파일은 어떻게 쓰여질까? (Checkpoint) (http://maystyle.tistory.com/221)
3. 로그는 어떻게 쓰여질까? (http://maystyle.tistory.com/223)
4. 트랜잭션 로그의 기록과 복구 (http://maystyle.tistory.com/225)
5. 데이터 파일이 커질 때는 무슨일이 일어날까? (http://maystyle.tistory.com/231)
6. 데이터 파일은 어떻게 생겼을까? (http://maystyle.tistory.com/233)
7. 실제 Data 및 Log 파일 뜯어 보기 (예정 중)
DB 공부하기 4번째 : Backup 과 Restore
1. 무엇을 Backup 받아야 하나 (시스템 데이터베이스 소개)?

SQL Server를 설치하게 되면 사용자가 사용하는 DB (user data가 저장됨 아래 그림에서 userDB) 외에도 master, model, tempdb, msdb 등이 자동으로 생성된다. 물론 당연히 userDB는 백업 받아야 한다. 그럼 시스템 데이이터베이스는 어떻게 해야 할까?
 
이를 시스템 데이터베이스라 한다. 다음은 각 시스템 데이터베이스에 대한 설명이다.
master : 데이터베이스의 구성정보를 가지고 있다. 만약 사용자 추가 및 기타 데이터베이스의 추가 삭제 등의 데이터베이스에대한 변경작업이 있을 경우 항상 백업 받아야 한다.
model : model 데이터베이스는 새로운 데이터베이스를 만들기 위한 템플릿이다. 데이터베이스의 템플릿 변경이 없을 경우 굳이 백업 받을 필요성은 없다.
msdb : 데이터베이스에서 사용하는 예약 작업을 위해 SQL Server 에이전트 서비스에 의해 사용된다. 보통 '관리' 밑에서 만들어진 작업 등이 저장된다. 만약 해당 작업에 대한 변경이 발생한 경우 백업 받아야 한다.

tempdb : 사용자가 명시적으로 만든 임시테이블 혹은 SQL Server 내부에서 만들어진 중간 결과들을 보관하는 등을 위하여 사용된다. 시스템 재 시작시 삭제 되는 데이터 임으로 백업 받을 필요 없다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  tempdb가 최적화 되기를 원하신다면... 
작성일시 : 2007.11.18 03:24 | 분류 : SQL Server/Administration | 태그 : sql 성능 향상, t1118, tempdb, 동시성 강화, 최적화

1. 먼저 CPU 숫자 만큼 Temp DB의 파일들을 만들어 줍니다.
2. 해당 Temp DB의 파일의 크기는 모두 동일하게 맞춰 줍니다.
3. CPU가 Temp DB를 잘 쓸 수 있도록 -T1118 옵션을 준다.
4. DISK 분산 효과를 위하여 서로 다른 DISK 파티션에 위치 시켜 줍니다.

의외로 1, 2, 3번은 잘 지켜 주시지만 4번은 잘 않지키는 곳이 상당히 있더군요...;;
관련 문서 : http://support.microsoft.com/kb/328551/ko

PS. 젠장... 오늘 잠은 다 잤넹... 종종 반말 했다가 존대말 했다가... 내가 왜이러는지... 참...

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  tempdb의 ndf가 삭제가 되지 않는다. 
작성일시 : 2007.11.18 03:14 | 분류 : SQL Server/Administration | 태그 : Delete, error, Level 16, Msg 5042, ndf, Remove, State 1, tempdb, TroubleShooting

[에러 메세지]
Server: Msg 5042, Level 16, State 1, Line 1
The file 'tempdev4' cannot be removed because it is not empty.
File 'E:\Microsoft SQL Server\MSSQL\data\tempdev4.ndf' modified in
sysaltfiles. Delete old file after restarting SQL Server.

tempdb의 ndf 파일이 삭제가 않된다는 애기를 듣는 경우가 있다.
원인은 해당 ndf에 table이 존제하기 때문인데, 간단한 쿼리를 통하여 해당 ndf를 삭제하는 방법을 공유하도록 하겠다.

[Action Item]
먼저  Tempdb의 file 구성을 확인 한다.
use tempdb
go
sp_helpfile

위의 커멘드를 통하여 Name 및 Filename을 확인 했으면 직접 삭제 해 보도록 하겠다.
dbcc shrinkfile(tempdev_1, emptfle) //  TempDB 내부 데이터를 삭제
go
alter database tempdb
remove file tempdev_1 // tempdb의 첫번째 ndf 삭제


이제 손쉽게 tempdb의 ndf를 삭제하도록 하자.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  tempdb 이동 하기 
작성일시 : 2007.11.18 03:07 | 분류 : SQL Server/Administration | 태그 : MOVE, tempdb, tempdb move, TroubleShooting

tempdb는 이동 시키기가 아주 쉽습니다.
masterdb 같은 경우에는 시작 파라미터에서 위치 바꿔주는 쌩~~~ 쇼를 해야 하지만
tempdb는 간단한 alter 구문으로 이동이 가능하죠...^^

[Action Item]

1. Query Analyzer를 구동하여 원하는 SQL Server에 Login합니다.

2. Tempdb 데이터베이스의 Logical File Name을 확인합니다.
Use tempdb
Go
Sp_helpfile
Go

위 문장을 수행하면 Tempdb가 사용 중인 파일에 대한 정보가 리턴되며 컬럼 이름 "Name"에 나타나는 내용이 Logical File Name에 대한 것입니다. 디폴트로 Tempdev와 Templog가 리턴됩니다.

3. Logical File Name의 물리적인 위치를 변경합니다. 즉, Logical File Name을 동일하게 유지하면서 물리적인 파일의 위치나 이름을 변경하는 것입니다.
Alter database tempdb modify file (name=tempdev, filename='e:\data\tempdata.mdf')
Go
Alter database tempdb modify file (name=templog, filename='e:\data\templog.ldf')
Go

4. 위 문장을 수행하면 다음의 메시지가 나타납니다.
" File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server. "
" File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server. "
즉, Alter Database 문장을 사용하여 Sysaltfiles 시스템 테이블에 정보를 갱신하였으나 SQL Server를 재시작 해야 이 정보가 반영되며 이전에 Tempdb가 사용했던 파일들은 수동으로 삭제해야 합니다.

5. SQL Server Service를 Stop한 후 Start합니다.

6. Tempdb가 지정한 폴더의 새로운 파일을 사용하는 지 확인합니다.
Use tempdb
Go
Sp_helpfile
Go

(결과)
Name  fileid  filename                                                                             
---------------------------------------------------------------
tempdev  1  e:\data\tempdata.mdf        
templog  2  e:\data\templog.mdf         
위 결과에서 filename 컬럼에 해당하는 값들을 보면 위치가 변경된 것을 알 수 있습니다.

7. 이전에 Tempdb가 사용했던 파일들을 Del 명령어나 탐색기를 이용하여 삭제합니다.

자세한 내용은 다음의 KB에서 확인 하시면 됩니다.
http://support.microsoft.com/kb/601429/ko

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
 Prev   1   Next 

티스토리 툴바