'데이터베이스 파일 변경'에 해당되는 글 1건

  1. 2013.05.15 SQL Server Database 이름 변경
MS SQL2013.05.15 09:17

 

[내용]

 

기존에 있던 데이터베이스의 이름을 변경하고 싶습니다.

 

[환경]

 

SQL Server 2008 R2 Ent 64bit

대상: stepDB -> newstepDB

 

[ACTION]

 

1.  UI 이용한 방법

먼저 데이터베이스를 단일 사용자 모드로 변경합니다. 해당 DB 우클릭 , 속성을 클릭합니다. 

 

[옵션] 옵션페이지에서 '액세스 제한' SINGLE_USER 선택하고 확인을 클릭합니다.

 

 

예를 클릭합니다.

 

 

이름을 변경할 데이터베이스를 우클릭 하여, 이름 바꾸기를 선택합니다.

 

 

변경하고자 하는 이름을 입력합니다.

 

 

앞서 변경했던, '액세스 제한' 다시 MULTI_USER 바꿔줍니다.

 

 

정상적으로 변경이 되었습니다.

 

 

2. T-SQL 이용한 방법

-- '액세스 제한' SINGLE_USER 바꿔줍니다.

ALTER DATABASE stepDB

SET SINGLE_USER

GO

 

-- 데이터베이스의 이름 바꿔줍니다.

ALTER DATABASE stepDB

MODIFY NAME = newstepDB

GO

 

-- '액세스 제한' 기본값인 MULTI_USER 바꿔줍니다.

ALTER DATABASE newstepdb

SET MULTI_USER

GO

 

 

(공통)

1,2 경우 모두 파일의 논리적 이름이나 파일명에는 영향을 미치지 않습니다. 그래서 다음과 같은 추가적인 작업이 필요합니다.

 

SP_HELPDB newstepDB 실행하여 논리적인 이름과 파일이름을 확인합니다.

 

 

 

아래 스크립트를 통해서 논리적인 이름을 변경합니다.

ALTER DATABASE newstepDB

MODIFY FILE

( NAME = stepDB,

  NEWNAME = newstepDB

)

 

ALTER DATABASE newstepDB

MODIFY FILE

( NAME = stepDB_log,

  NEWNAME = newstepDB_log

)

 

 

데이터베이스 파일의 경로 파일 이름을 바꾸기 위해 해당 데이터베이스를 오프라인 시킵니다.

ALTER DATABASE newstepDB

SET OFFLINE

 

 

물리적 파일의 이름을 변경합니다.

 

 

물리적 파일명 경로를 변경합니다.

ALTER DATABASE newstepDB

MODIFY FILE

( NAME = newstepDB,

  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newstepDB.mdf'

)

 

ALTER DATABASE newstepDB

MODIFY FILE

( NAME = newstepDB_log,

  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newstepDB_log.ldf'

)

 

 

데이터베이스를 다시 온라인 시킵니다.

ALTER DATABASE newstepDB

SET ONLINE

 

 

변경이 제대로 됐는지 확인합니다.

SP_HELPDB newstepDB

 

 

[추가 내용]

 

데이터베이스 이름을 변경하는 것은 어려운 일은 아니지만 되도록이면 변경하지 않는 것이 바람직하다. 데이터베이스 이름을 변경하게 되면 응용프로그램, 명령어 바꿔줘야 부분이 많이 생기고 복잡한 실무에서는 쉬운 작업이 아니기 때문이다.

 

[참고]

 

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

신고
Posted by TM ~ing