반응형

데이터베이스 관리 – DB명 수정, 파일 크기 수정.

 

데이터베이스를 수정하는 방법과 데이터베이스의 복구 옵션을 알아보고 상황에 맞는 옵션이 어떤 것인지 생각해 보자.

 

DB 수정

 

데이터베에스를 수정하는 방법은 SSMS를 이용하거나 ALTER DATABSE 구문을 이용한다.

 

(MSDN참고

http://msdn.microsoft.com/ko-kr/library/ms174269.aspx)

 

1. DB 이름 변경하기.

현업에서는 거의 사용 할 일이 없지만 (지극히 주관적인 생각이다.) 프로젝트 진행시 테스트 용도 및 백업 용도로 이름을 바꾸어 많이 사용한다. SSMS와 쿼리를 이용하여 이름을 바꾸어 보자.

 

- SSMS 이용하기.

SSMS를 실행하여 이름을 바꿀 해당 DB를 선택한다. [이름 바꾸기] 선택하여 변경 하려는 이름을 입력하면 된다.

 

 

매우 간단하다. 하지만 주의해야 할 것이 있다. 우리가 일반 적으로 사용하는 파일공유의 경우에도 다른 사람이 해당 파일에 접속해 있으면 이름을 바꿀 수가 없다.

현업에서는 데이터베이스 또한 여러 사람이 사용하고 있을 수 있음으로 (여러 서버들의 접속) 이름 변경이 실패한다.

이 때 모든 사람들이 접속을 끊기만 기다리고 있을 것인가? 또한 새로운 사람이 다시 접속 할 수도 있다.

따라서 데이터베이스의 모드를 수정하여 이름 바꾸기를 한다.

[데이터베이스 선택] – [속성] – [옵션] – [Single User]

 

 

 

 

해당 데이터베이스가 [단일 사용자]로 변경된 것을 확인 할 수 있다. 이 상태가 되면 다른사용자가 접속을 할 수가 없음으로 모든 작업이 완료된 뒤에는 항상 [Multi User] 상태로 변경하여야 한다.

잊지 말자! 모든 실수는 사소한 것에서 비롯 된다. (괜히 여러 부서의 미움을 사는 경우가 있다.)

 

[단일 사용자] 모드에 접속이 되는지 확인 해 보자.

 

새 쿼리 창을 열고 해당 데이터베이스를 선택하여 보자. (필자의 경우는 TestDB 이다.)

경고창이 나타난다. 즉 [단일 사용자] 모드 이므로 다른 세션에서 접속을 할 수가 없다.

 

 

 

작업이 완료 되었으면 데이터베이스 상태를 변경하자.

여러 사람이 접속 할 수 있도록 변경한다.

방법은 [Single User]와 동일하나 선택 값을 [Multi_User]로 선택한다.

 

해당 데이터베이스에서 [단일 사용자] 글씨가 없어졌음을 확인 할 수있다.

 

- 쿼리 이용하기.

구문

ALTER DATABASE TestDB SET Single_User

GO

 

 

ALTER DATABASE TestDB

    MODIFY NAME = TestDB_Test

GO

 

 

ALTER DATABASE TestDB_Test set Multi_User

GO

 

 

 

2. DB 사이즈 늘리기.

지난 시간에 데이터베이스 축소에 대해서 알아 보았다. 그렇다면 이번에 사이즈를 늘리는 방법에 대해서 알아보자.

 

지난 번 데이터 베이스 생성 편에서 말 했듯이 초기 데이터베이스를 생성하고 데이터의 크기가 늘어 남에 따라 자동증가 한다고 배웠다. (물론 옵션이 자동증가로 선택되어 있는 경우 해당)

이때 디스크에서 데이터베이스에 디스크를 할당 하는 동안 I/O 이슈로 인한 성능 저하가 발생한다고 하였다.

그래서 정기 점검이나 기타 유휴시간에 디스크를 미리 늘려놓는 계획이 필요하다고 설명하였다.

이제 데이터베이스를 늘려보자.

 

- SSMS 이용하기.

 

현재 데이터베이스의 크기를 확인 해 보자.

필자는 현재 82MB로 되어 있다.

 

DB사이즈를 늘리는 방법은 간단하다. 빨간 색 박스의 숫자를 현재 보다 크게 입력하면 된다.

 

필자는 200MB로 수정하였다. 실제 물리적인 파일이 증가하였는지 알아 보자.

물리적인 파일이 증가한 것을 확인 할 수 있다.

데이터의 증가량을 모니터링 하여 적절한 크기로 변경하여 원할 한 서비스가 되도록 한다.

 

- 쿼리 이용하기.

 

구문

ALTER DATABASE TestDB

    MODIFY FILE (NAME = TestDB, SIZE = 200) –디폴트 단위 MB

GO

 

위와 명령어를 실행하면 200MB로 데이터베이스 사이즈가 늘어 난다.

 

하지만 위의 방법으로 축소를 진행하면 에러가 난다.

현재의 크기보다 작거나 동일 크기를 입력하면 에러가 발생한다.

 

데이터베이스 축소는 앞에서 설명하였던 SHRINK를 사용하여야 한다.

 

보통 서비스 중에는 DB명을 수정한다거나 DB사이즈를 수정하는 일이 많지는 않지만 개발을 하다 보면 많이 사용 될 것이다.

 

앞에서도 이야기 하였지만 데이터베이스의 변경은 항상 주의해서 하여야 한다.

꼭 명심하길 바란다.

반응형

+ Recent posts