SQL Server Express 내에서 데이터베이스를 복사하시겠습니까?
제가 가지고 있는 데이터베이스의 복사본을 만들고 싶은데, 테스트 데이터베이스와 같은 서버에 보관하고 있습니다.그러나 데이터베이스 복사 마법사(MS SQL Server Express 사용 중)를 사용하는 것이 전부입니다.
지침에는 항상 다음과 같은 내용이 됩니다.SQL Server Management Studio의 Object Explorer에서 데이터베이스를 확장하고 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크를 가리킨 다음 데이터베이스 복사를 클릭합니다.
데이터베이스 복사 옵션이 없습니다.관리자로 실행 중인데 왜 누락되었는지 알 수 없습니다. 별도로 설치해야 합니까?같은 서버에 복사하는 것이기 때문에 분리/첨부를 할 수 없습니다.MDF/LDF를 분리, 복사, 이름 바꾸기, 첨부하려고 노력했지만, 당신이 상상할 수 있듯이 엉망진창이었습니다 :) 저는 모든 것을 프로그래밍적으로 할 수 있는 SQL을 잘 하지 못합니다.제가 쓸 수 있는 도구가 있을까요?
SSMS 2008에서는 다음을 수행할 수 있습니다.
복사할 데이터베이스의 백업 작성
SSMS에서 '데이터베이스'를 마우스 오른쪽 버튼으로 클릭하고 '데이터베이스 복원'을 선택합니다.
'Source for restore' 섹션의 'From database' 드롭다운 목록에서 복사할 데이터베이스를 선택합니다.
복원할 대상' 섹션의 '데이터베이스로' 필드에 새 데이터베이스의 이름을 입력합니다. 기존 데이터베이스의 이름이 될 수 없습니다.
확인 클릭
완료했습니다! :)
SQL Server Express 2012에서는 다음 단계를 수행할 수 있습니다.
- 복사할 데이터베이스의 백업 작성
- 데이터베이스를 마우스 오른쪽 단추로 누르고 "파일 및 파일 그룹 복원"을 선택합니다.
- "데이터베이스로" 필드에 새 데이터베이스의 이름을 입력합니다.
- 장치에서를 선택한 다음 첫 번째 단계에서 백업한 파일을 선택합니다.
- 확인을 클릭합니다.
이렇게 하면 "기본값" 및 "자동 증가"와 같은 올바른 테이블 설정으로 데이터베이스가 "복제"됩니다.
SQL Express 데이터베이스에 내보내기 버튼이 있습니다. 데이터베이스를 동일한 서버의 새 데이터베이스로 내보내기만 하면 데이터베이스가 복사됩니다.데이터베이스 이름을 마우스 오른쪽 단추로 클릭합니다.
SQL Express에서 데이터베이스의 복사본을 만들려면 다음 단계를 수행합니다.
- SQL 중지
- db에 대한 mdf, ldf 및 기타 파일을 새 위치에 복사합니다(로그 파일을 가져오는지 확인).
- 복사된 각 파일의 이름 변경
- SQL 시작
- SSMQ에서 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 첨부 선택
- "다른 이름으로 첨부" 열에서 이름을 변경해야 합니다.
- 데이터베이스 세부사항의 아래쪽 영역에 있는 파일 위치를 복사된 파일(특히 로그 파일)의 위치로 업데이트합니다.
이 방법으로 SQL Express 시스템의 데이터베이스를 복사할 수 있었습니다.
SQL Express 2012를 사용하여 데이터베이스 복사본을 만드는 데 문제가 발생했습니다.백업 및 복원 방법으로 해결했습니다.사용한 백업 후: restore -> 파일 및 파일 그룹
다음 단계에서는 새 데이터베이스의 새 이름을 작성하고 소스를 설정합니다.
원본 파일 포인팅
마지막으로 기존 데이터베이스를 대체로 덮어쓰는 작업을 선택하고 확장명 mdf 및 ldf가 기존 위치와 다른 새 파일의 이름을 설정해야 합니다. 다음과 같이 복원합니다.
이 방법은 나에게 효과가 있었습니다.
파일 옵션으로 이동하는 SQL Server Express 2012를 사용하는 경우 대상 파일(다른 이름으로 복원 열)이 원래 파일 *.mdf 및 *.log와 다른지 확인하십시오.
(이미지를 넣으려고 했지만 10개의 평판이 필요합니다 :p)
관리자의 Express 버전에 데이터베이스 복사 기능이 없을 것으로 생각합니다.백업 및 복원 방법을 통한 복사를 고려해 보셨습니까?
http://msdn.microsoft.com/en-us/library/ms190436.aspx
문제를 찾았어요!데이터베이스를 클릭하고 복원한 다음 다음 작업을 수행합니다.복원할 위치를 선택하고 대상 db 이름을 쓴 후 파일 [그림의 주석 1]로 이동하여 오른쪽 열 파일 이름을 원본 [그림의 주석 2]와 다르게 변경하면 작동합니다.
백업을 생성하고 복원하는 것이 솔루션이지만 복원된 복사본이 다른 .mdf 및 .ldf 파일을 가리키고 있는지 확인합니다.
SSMS 2014 및 SQL Server 12 설치를 사용하여 로컬 디스크에 백업을 생성하고 복원한다고 가정하여 확인하는 방법은 다음과 같습니다.
- 기존 데이터베이스의 백업 만들기
- 데이터베이스를 마우스 오른쪽 단추로 누르고 "작업"에서 "백업..."을 선택합니다.
- 위치를 기본값으로 유지하면 복원 시 다음 단계에서 백업을 검색할 필요가 없습니다.
- 백업을 새 데이터베이스로 복원:
- 데이터베이스를 마우스 오른쪽 단추로 클릭하고 "데이터베이스 복원"을 선택합니다.
- "장치"를 선택
- 생략 부호 버튼("...")을 클릭하여 "백업 장치 선택" 대화 상자를 엽니다.
- 백업 미디어 유형으로 "파일"을 선택하고 "추가" 버튼을 클릭합니다.
- 방금 만든 백업을 선택하고 확인을 클릭합니다(두 번).
- 이제 "데이터베이스 복원" 대화상자에서 대상 데이터베이스의 새 이름을 입력합니다.
- 페이지 선택에서 "files"를 클릭하고 "restore as"가 아직 존재하지 않는 .mdf 및 .ldf 파일 이름을 가리키는지 확인합니다.
- 확인을 클릭합니다.
데이터를 새 데이터베이스로 가져올 수 있을 것 같습니다.
- 로컬 SQL 서버에 빈 데이터베이스 생성
- 새 데이터베이스 우클릭 -> 작업 -> 데이터 가져오기
- SQL Server 가져오기 및 내보내기 마법사에서 제품 환경의 서버 이름을 데이터 원본으로 선택합니다.새 데이터베이스를 대상 데이터로 선택합니다.
저는 이것을 피할 수 있는 정말 멋진 방법을 생각했습니다 :) 그래서 저는 제 아이디어를 올려야겠다고 생각했습니다.이는 '테스트되지 않음'이지만 작동할 것으로 생각합니다.
- "백업..." 데이터베이스를 수행합니다(이론적으로 이것은 프로덕션 서버에 있지만 그럴 필요는 없습니다).
- 제품 서버에서 개발 컴퓨터로 백업 파일 복사
- 개발 컴퓨터에서 SSMS Developer Edition을 사용하고 있다고 가정하면 개발 컴퓨터에서 "복원"을 수행한 다음 개발 컴퓨터에서도 "데이터베이스 복사"를 수행할 수 있습니다(DB의 새 사본을 작성).
- 이제 방금 만든 새 DB에서 "백업..."을 수행하고 백업 파일을 프로덕션 서버에 복사한 후 SQL 서버 Express 서버에서 "복원"을 수행합니다.
이것이 몇몇 사람들에게 도움이 되기를 바랍니다 :)
건배.
제프
질문의 첫 번째 부분(DB에 대한 작업 아래에 이 데이터베이스 복사 마법사 옵션이 표시되지 않는 이유는 무엇입니까)에 대해서는 SQL Server Express를 실행하고 있다는 사실에 있습니다.SQL Server Express는 이 DB 복사 기능이 의존하는 SQL Server 에이전트 기능을 지원하지 않으므로 DB 복사 기능이 표시되지 않습니다. 그러나 많은 온라인 리소스가 이 기능을 관찰하지 못합니다.
다행히 다른 대부분의 사람들은 질문의 두 번째 부분(그렇지 않으면 작업을 수행하는 방법)을 다루었으며, 거의 모든 사람이 기존 백업 및 복원 옵션(Express에 있음) 또는 내보내기/가져오기(Express에도 있음)를 사용한다고 지적했습니다.
데이터베이스를 백업하고 완전히 새로운 데이터베이스로 복원해 보십시오.
- 새 DB를 작성합니다.
- 원본을 전체 백업합니다.
- 새 DB를 마우스 오른쪽 버튼으로 클릭하고 restore를 누릅니다.
- 으로 이동합니다.BAK를 선택하고 .mdf 및 .ldf가 new와 일치하는지 확인합니다.
언급URL : https://stackoverflow.com/questions/4269450/copy-a-database-within-sql-server-express
'programing' 카테고리의 다른 글
MySQL 내부 조인 및 잘못된 성능에 의한 정렬 (0) | 2023.08.20 |
---|---|
IIS Express 캐시 지우기 (0) | 2023.08.20 |
변수가 정의되지 않았는지 여부 (0) | 2023.08.20 |
datable jquery - 표 머리글 너비가 본문 너비와 정렬되지 않음 (0) | 2023.08.20 |
Angular 2: 각 루프가 아닌 for 루프를 작성하는 방법 (0) | 2023.08.20 |