복구모델이 '전체' 일 때 복원방법은 3가지가 있다. 이에 대해 설명해보자.
우선 AdventureWorks2022_2 라는 DB가 있고 이 DB는 복구모델이 '전체'이다. 이 DB를 전체백업을 먼저 받는다.
그리고 이 DB가 운영중인 DB라서 변경이 발생 했다고 하자, 그러면 트랜잭션 로그에 변경이력이 남게될 것이다.
create table a (a varchar(100), b varchar(100));
insert into a values (replicate('A', 100), replicate('A', 100));
위와 같이 입력을 하면 전체백업을 받은 이 후 데이터의 변경이 일어났다. 이제부터 복원하는 방법 3가지에 대해 알아보겠다.
1. 복원방법_1
DB마우스 우클릭 -> 태스크 -> 복원 -> 데이터베이스
디바이스에서 아까 받은 전체백업 파일을 고른다.
옵션 탭 -> 비상로그백업 -> 대상 데이터베이스에 대한 기존 연결 닫기 -> 확인
* 비상로그백업
전체백업을 복원 받을 떄 전체백업 이후 변경이 일어났으므로, 전체백업을 복원받으면 현재 트랜잭션로그에 있는 데이터는 지워진다. 따라서 복원을 하기 위해서는 트랜잭션 로그파일을 백업을 받도록 되어있다.
* 대상 데이터베이스에 대한 기존 연결 닫기
복원을 할 떄 기존에 연결된 session이 있으면 안되므로 기존 연결된 session을 끊는다는 뜻이다.
이렇게 복원을 한다면 table a에 대한 정보, a테이블에 insert된 데이터에 대한 정보는 비상로그백업에 저장되고 전체백업을 했던 상태로 돌아가게 된다.
2. 복원방법_2
1번과 똑같은 방법에서
옵션 탭 -> 기존 데이터베이스 덮어쓰기 -> 대상 데이터베이스에 대한 기존 연결 닫기 -> 확인
이 방법으로 하면 table a에 대한 정보와 데이터는 비상로그백업에 남지 않고 그냥 사라지게된다.
* 이 복원 방법은 table a 에 대한 변경 정보가 필요 없는 경우 진행 하면 된다.
3. 복원방법_3
삭제 후 백업받은 파일로 복원을 하는 방법이다.
DB마우스 우클릭 -> 삭제
데이터베이스 마우스 우클릭 -> 데이터베이스 복원
디바이스에서 백업파일 선택 후 확인을 누른다.
* 이 방법 또한 table a 에 대한 변경 정보가 필요 없는 경우 진행 하면 된다.
이상으로 복원방법 3가지에 대해 알아보았다.
'DB (데이터베이스) > MS-SQL' 카테고리의 다른 글
[ms-sql] DB를 다른 DB명으로 복원 (0) | 2024.02.02 |
---|---|
[ms-sql] 복구모델 '단순' 일 때 복원방법 (1) | 2024.02.02 |
[ms-sql] ms-sql 새로운 서버에 데이터베이스 복원 (1) | 2024.02.02 |
[ms-sql] ms-sql 복원방법 (1) | 2024.02.02 |
[ms-sql] ms-sql 복원 옵션 (0) | 2024.02.02 |