안녕하세요
제가 지금 하려는작업이
DB하나를 기본으로 구축해서 MDF를 백업해두고
신규 디비 설치할때마다 MDF를 연결만해서 쉽게 구축하려고 하는데 잘안되서 질문드릅니다.
1. 제가 기본적으로 데이터베이스를 만들고 테이블들을 생성해 놓았습니다.
그리고나서 데이터베이스를 분리후 MDF를 복사하여 저장해두었습니다.
그리고 나서
sp_attach_single_file_db 'AAA','C:\AAA\AAA.mdf'
이 명령어로 DB연결에 성공했습니다.
근데 문제는 이상태에서
AAA 디비를 삭제하고
다시
sp_attach_single_file_db 'RECORD_DB','C:\RECORD_DB\RECORD_DB.mdf'
이명령어를 치니까
메시지 3906, 수준 16, 상태 2, 프로시저 sp_MScleandbobjectsforreplication, 줄 21
데이터베이스 "AAA"은(는) 읽기 전용이므로 업데이트할 수 없습니다.
이 메세지가 뜨면서... 이후로 이 MDF는 연결할수가 없다고하네요..
작업환경은 MSSQL2012에서 MSSQL2008DB로 접속하여 진행했습니다.
이 문제를 해결하는 방법이나
다른방법 있으면 답변부탁드리겠습니다.
감사합니다.
Comment 3
-
Sinlay
2015.03.23 11:31
답변 항상 감사합니다.
제 얕은 지식으로는 이해가 잘 되지않네요 ㅠㅠ
-
제가 질문을 이해하기로는...
새로운 DB를 만드는데 매번 똑같은 오브젝트들이 들어 있는 DB를 만들건데
이걸 편하게 하기 위해서 DB하나를 MDF, LDF를 백업해놓고 ATTACH하신다는 거잖아요?
그런 과장에서 발생하는 에러는 어떻게 해결해야 할지 잘 모르겠고...
거기에 대한 대안으로...
model이라는 db에 테이블과 뷰, 프로시저 등등을 만들어 놓는 겁니다.
그렇게 해 놓으면
create db 해보면.... model db랑 똑같은 DB가 만들어집니다.
또 하나의 대안은...
LDF, MDF를 백업하지 마시고 전체백업을 하신 다음 Restore하시는것도 좋겠네요.
시스템 데이터베이스 중에 model 이라는 DB가 있습니다.
여기에 테이블 프로시져.... 등등 막 만들어 놓으면
CREATE DATABASE 할때 이 DB를 템플릿으로 사용해서 만듭니다.
tempdb도 model DB를 템플릿으로 만들어집니다.