안녕하세요 ^^
특정 DB 의 특정 테이블에서 자료를 복원할 일이 있는데
DB 복원은 처음이라 서버 업체에 문의했는데 아무래도 DB 관련이라 정확한 답변은 쉽지 않네요
그래서 이렇게 저렇게 검색하다가 sqler.com 이라는 곳을 알았네요 ^^
자주 오게 될거 같습니다 ^^
윈도우 서버 2008 에 MS SQL 2005 를 사용중입니다
A-Database 라는 DB 를 하루에 2 번씩 백업을 해뒀습니다
그런데 어제 날짜의 백업에서 특정 테이블만 복원할 일이 있는데 검색해보니 그렇게는 지원이 어렵다고 하네요
그래서 A-Database_Restore 라는 DB 를 하나 만들고
어제 날짜의 백업 파일을 이 DB 에다가 복원을 하려합니다
A-Database_Restore 를 선택 후 복원 메뉴로 들어가서
1) 복원할 대상을 [A-Database_Restore] 로 선택
2) 복원에 사용할 원본에서 [장치] 선택 후 백업 미디어를 파일로 하여 [추가] 를 눌러서 어제 백업한 A-Database 백업 파일을 선택
이렇게하고 복원을 진행하니 기존 데이터베이스가 아닌 파일로 복원한다면서 진행이 되지 않습니다
이때 [옵션] 에서 [기존 데이터베이스 덮어씌우기] 를 선택하면 된다는 말이 있는데
제가 원하는 것은 기존 데이터베이스의 복원이 아니라
기존 데이터베이스의 백업본을 통해 카피 DB 를 만들고 그기서 특정 테이블만 복사하여 기존 테이터로 가져오려합니다
옵션에서 [기존 데이터베이스 덮어씌우기] 를 선택 후 진행하면
A-Database_Restore 로 백업이 풀리는 것이 아니라
A-Database 원본에다가 백업이 풀리는 것은 아닌지 궁금하고 조심스럽습니다
그리고 글들을 찾아보니 이 경우 복원에 사용할 원본에서 [장치] 가 아니라 [데이터베이스] 를 선택 후 목록에서 [A-Database] 원본을 선택하면 나오는 백업에서
특정 일을 골라서 복원하면 된다는 말이 있는데
이 경우에도 원본에는 영향을 주지않고, A-Database_Resotre 라는 카피본 DB 로 백업이 풀리는 것인지도 궁금합니다
이렇게 하려는 이유는 A-Database 의 어제 날짜의 특정 테이블만 복원할 일이 있어서이며
제가 원하는 것은 원본 DB 인 A-Database 는 그대로 두고,
같은 ms sql 서버내에서 A-Database 의 어제 날짜의 백업본을 A-Database_Restore 라는 새로운 임시 DB 에다가 풀어서 특정 테이블 자료를 가져오고 싶습니다
기존 A-Database DB 에는 아무런 영향을 주지않고 진행하려면 어떻게 하는 것이 좋을까요 ?
고맙습니다
Comment 2
-
처리짱
2014.12.24 12:09
-
탕수육곱배기
2014.12.24 13:00
ms sql 이 테이블 복원 지원안하는 이유가 그렇군요;
일단은 전체 db 복원 후 필요 테이블을 옮겨야겠습니다 ^^
맞습니다. 다른 컴퓨터에서 백업 파일을 풀어서 옮기는게 제일 안전할듯합니다.
예전에 특정 테이블의 복원이 필요한 일이 있어서
평가판을 제 컴퓨터에 설치 후 제 컴퓨터에서 백업 파일을 복원하여 필요한 자료들을 추출후 서버 db 로 옮겼습니다
그런데 30 일이 지나니 평가판 사용이 제한되어서
이번에는 제 컴퓨터에 2012 sql express 를 설치했는데 express 는 db 용량이 10 기가로 제한이 된다고 확인했습니다
현재 백업 파일이 11 기가입니다
그래서 서버에서 임시 db 를 만들어서 바로 임시 db 로 백업 파일을 풀수 있는 방법을 찾고 있습니다 ^^;
어줍짢은 답변 드려봅니다..
MsSql은 테이블 단위의 백업을 지원하지 않습니다.
이유인즉슨 MsSql이 관계형 데이터베이스라서 라고 하는데 먼소린지 모르겠습니다. ㅠ
로그 백업이 있다면 풀백업을 살리고 로그백업으로 살리면서 spotat 옵션으로 특정시점으로 복원하시면 됩니다..
기존 데이터베이스에 영향을 주지 않는 가장안전한 방법이라하면,
완전 다른 피시에 MsSql을 설치하시고 복원후에 링크드서버로 연결해서
insert하는 방법이 아닐까 싶네요..