Amazon RDS for Oracle에서 초기 데이터베이스에 추가한 테이블이 스냅샷을 통해 초기 데이터베이스 이름을 변경해도 유지될까?
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon RDS for Oracle에서 초기 데이터베이스에 추가한 테이블이 스냅샷을 통해 초기 데이터베이스 이름을 변경해도 유지되는지 확인해 봤습니다.
하고 싶은 것
먼저 Amazon RDS for Oracle에 접근하여 샘플 테이블을 생성합니다.
그리고 스냅샷을 생성하여 Amazon RDS for Oracle을 복원하는 과정에서 원본의 초기 데이터베이스 이름과는 다른 이름으로 복원을 시도합니다.
이렇게 초기 데이터베이스 이름을 변경하게 된다면 기존의 테이블도 그대로 복원이 되는걸까요?
Amazon RDS for Oracle에 접속하는 방법은 아래 블로그를 참고해 주세요.
테이블 생성
테스트를 위해 테이블을 생성하고, 더미 데이터를 삽입합니다.
CREATE TABLE emp ( empno VARCHAR2(10) NOT NULL, empname VARCHAR2(50), gender_f NUMBER(1,0) ) ; INSERT INTO emp (empno , empname , gender_f) VALUES ( '1', 'test', '1' ); INSERT INTO emp (empno , empname , gender_f) VALUES ( '2', 'test', '2' ); select * from emp;
emp라는 테이블을 생성하고, 해당 테이블에 insert 문으로 더미 데이터를 삽입합니다.
select * from으로 삽입한 더미 데이터를 확인할 수 있습니다.
스냅샷 생성
스냅샷 생성은 Amazon RDS 콘솔 화면에서 작업을 통해 실행할 수 있습니다.
스냅샷 생성에 특별한 설정은 필요없으므로, 생성할 스냅샷 이름만 입력하고 스냅샷을 생성합니다.
스냅샷 생성이 끝나면 스냅샷 상태는「사용 가능」상태로 변경됩니다.
동일한 데이터베이스 이름으로 복원
생성한 스냅샷으로 복원 작업을 진행할 때, 초기 데이터베이스 이름은 원본 데이터베이스 이름과 동일한 이름을 지정합니다.
이후 테이블을 확인해 보면, emp 테이블은 생성되어 있지만, 더미데이터로 넣어둔 데이터들은 복원되지 않은 것을 확인할 수 있습니다.
MySQL에서는 더미데이터까지 복원되는 것을 확인할 수 있었지만, Oracle에서는 테이블은 복원이 되어도, 내부 데이터는 복원이 안되는 것 같습니다.
다른 데이터베이스 이름으로 복원
그렇다면 다른 데이터베이스 이름으로 복원을 시도할 경우, 테이블은 복원이 될까요?
이번에는 초기 데이터베이스 이름을 변경하고 복원을 시도합니다.
초기 데이터베이스 이름을 변경하더라도 원본 데이터베이스에서 생성한 테이블도 똑같이 복원된 것을 확인할 수 있습니다.
결과적으로는 초기 데이터베이스 이름을 변경하더라도 테이블은 복원됩니다. 하지만, Oracle에서는 스냅샷을 통해 복원을 시도하더라도 테이블 내부의 데이터까지는 복원이 되지 않는 것 같습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.