RDS 이용중 개발자의 실수에 의한 데이터 복구, 작업한 내용 공유합니다….

RDS 이용중 개발자의 실수에 의한 데이터 복구, 작업한 내용 공유합니다.

특정 테이블에 drop table, truncate table 작업으로 데이터 유실된 경우,
해당 쿼리가 실행된 시점을 정확히 알고 있으면, 해당 시점 이전으로 데이터를 복구할 수 있음.

1. AWS에서 해당 인스턴스를 선택, Instance Actions 에서 Restore to Point time(데이터 사이즈는 변동 안되지만, Class변경가능) Restore timed을 지정해서 특정 시점으로 복구.

2. 백업 인스턴스 다 만들어지면 Security group 할당해서 접속 가능하도록 허용. 접속해서 유실된 데이터가 있는지 확인.

3. 특정 테이블의 특정 구간의 데이터만 복구할 경우, SQL을 통해서 csv 파일로 생성.
mysql -B -uadmin -p -hbackup.cin0ycjakgsq.ap-northeast-1.rds.amazonaws.com -e ‘select * from db_table;’ |sed “s/’/’/;s/t/”,”/g;s/^/”/;s/$/”/;s/n//g” > db_table.csv

4. 해당 파일을 target database에 load data local을 이용해서 data import 한다. 완료되면 총 개수 확인.
— on Linux
load data local infile ‘/home/centos/db_table.csv’
into table db_name.db_table
fields terminated by ‘,’
enclosed by ‘”‘
lines terminated by ‘n’
ignore 1 lines;

One thought on “RDS 이용중 개발자의 실수에 의한 데이터 복구, 작업한 내용 공유합니다….

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.