일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 남궁성
- 항해플러스백엔드
- disabled
- ARIadminer
- AWS Certified Cloud Practitioner
- cafe24
- 자바의정석
- ARI
- Your session has been terminated
- AWS
- 항해솔직후기
- readony
- 보안인증서
- java
- Java의정석
- 변수의타입
- SQL개발자
- SSL
- 변수
- Wordpress
- 항해플러스
- 항해99
- 항해플러스후기
- Foundational
- AWS시험
- saltkey
- sqld
- 형변환
- Today
- Total
WorkaHolic
개별 DB 복구(innoDB 기준) 본문
- 현재 DB 위치 (/var/lib/mysql/사이트명)
e.g. /var/lib/mysql/example
1. mysql 접속 (mysql -uroot -p) 후, 삭제 처리
mysql> ALTER TABLE DB명.테이블명 DISCARD TABLESPACE;
e.g. ALTER TABLE example.posts DISCARD TABLESPACE;
!실행시, 디렉토리내 테이블명.ibd 파일 삭제처리 + 해당 DB테이블의 데이터도 전부 삭제처리됨
결과문 : Query OK, 0 rows affected (0.01 sec)
- 백업 DB 위치 (/db-data/fullbackup/백업일자/사이트명)
e.g. /db-data/fullbackup/20210416/example
2. 해당 백업 테이블 파일(ibd) 가져오기
cp /db-data/fullbackup/백업일자/사이트명/테이블명.ibd /var/lib/mysql/사이트명/테이블명.ibd
e.g. cp /db-data/fullbackup/20210416/example/posts.ibd /var/lib/mysql/example/posts.ibd
3. 소유자 변경(root > mysql) 개별
e.g. chown mysql:mysql posts.ibd
소유자 변경(root > mysql) 전체
e.g. chown -R mysql:mysql example/
!소유자를 변경하지 않으면, 접근 권한이 없어 missing 처리됨
4. mysql 접속 (mysql -uroot -p) 후, 로드하기
mysql> ALTER TABLE DB명.테이블명 IMPORT TABLESPACE;
e.g. ALTER TABLE example.posts IMPORT TABLESPACE;
결과문 : Query OK, 0 rows affected, 1 warning (0.08 sec)
5. 정상적으로 복구되었는지 DB 확인
* DISCARD 하지 않고, IMPORT하면 생기는 오류 문구 (이미 존재함)
(ERROR 1813 (HY000): Tablespace 'example/posts' exists.)
* 소유자 변경 하지 않으면 생기는 오류 문구 (접근 권한이 없어, 해당 ibd를 찾을 수 없음)
(ERROR 1812 (HY000): Tablespace is missing for table `example`.`posts`.)
'Server > MySQL' 카테고리의 다른 글
데이터베이스 백업 및 복원(mysqldump) (0) | 2021.06.07 |
---|---|
시간(CURTIME() or CURRENT_TIME) 활용 (0) | 2021.05.03 |
현재 시간 가져오기 + 대기(wait)시키기 (0) | 2020.03.25 |
언어셋(mysql character set) 변경 (0) | 2020.03.10 |
패스워드(password or authentication_string) 변경 (0) | 2018.09.06 |