MySQL 테이블 깨졌을 경우, 가장 좋은 복구 방법은 mysqldump 명령어로 백업본을 저장해두고 있는 것입니다.
다만, 그렇지 않은 경우도 있을 것입니다. 예를 들어, 파일시스템 형식으로 보관을 하고 있을 수도 있습니다.
우선, 테이블이 깨지는 일반적인 원인은 아래와 같습니다.
- 서버의 다운 (강제 종료 등...)
- 하드디스크 오류(sector error , innode error, read-only)
- 하드디스크 용량 full(부족)
- MySQL 자체 오류 등.........
해결 방안은 MySQL ENGINE이나, 백업 유무에 따라 방법이 다양합니다.
모든 방안은 백업 필수입니다.!!! (신중한 선택 필요!!)
명령어를 통한 복구 방법입니다.
##### DB 체크 ###########
MariaDB [(none)]> use ${DB 명}
MariaDB [(${DB 명})]> check table ${table 명}
####### DB Table 복구 명령어 ########
MariaDB [(none)]> use ${DB 명}
MariaDB [(${DB 명})]> repair table ${table 명}
MySQL DUMP 파일을 통한 복구 방법
1) 우선 백업 본이 있어야 한다. 아래와 같이 백업본(덤프본)을 생성할 수 있는데, 해당 백업본(덤프본)을 이용하여 복원을 진행한다.
######### 모든 DB 백업 ########
[root@localhost ~]# mysqldump -u ${DB_USER} -p ${DB NAME} -A > ${저장할 파일 명}.sql
######### DB 백업 ########
[root@localhost ~]# mysqldump -u ${DB_USER} -p ${DB NAME} > ${저장할 파일 명}.sql
######### Table 만 백업 ########
[root@localhost ~]# mysqldump -u ${DB_USER} -p ${DB NAME} ${DB TABLE} > ${저장할 파일 명}.sql
2) 복원 명령어를 사용한다.
######### 모든 DB 복구 ########
[root@localhost ~]# mysql -u ${DB_USER} -p ${DB NAME} -A < ${백업 파일 명}.sql
######### DB 백업 ########
[root@localhost ~]# mysql -u ${DB_USER} -p ${DB NAME} < ${백업 파일 명}.sql
######### Table 만 백업 ########
[root@localhost ~]# mysql -u ${DB_USER} -p ${DB NAME} ${DB TABLE} < ${백업 파일 명}.sql
백업 파일(MYD, MYI) 을 이용하여 복구 방법 (MYISAM O , INNODB X)
INNODB은 파일시스템 형식으로 복구는 어렵다. 가능할 수 있으나 거의 불가하다고 본다.
MYISAM은 가능하다. 이 또한 테스트가 필요하다.
이 방법은 파일 권한을 맞추어 붙여넣기로 해당 경로에 파일 권한을 맞추어 넣은 후, DB 시작.
MySQL 자체가 접속이 안 될 경우. (INNODB)
innodb_force_recovery 옵션을 사용해 강제 실행. mysqldump로 정상DB , 테이블들 복구. (불가할 수 있음)
-1 ( SRV_FORCE_IGNORE_CORRUPT ) --> 손상 무시하고 가동.
-2 ( SRV_FORCE_NO_BACKGROUND )
-3 ( SRV_FORCE_NO_TRX_UNDO )
-4 ( SRV_FORCE_NO_IBUF_MERGE )
-5 ( SRV_FORCE_NO_UNDO_LOG_SCAN )
-6 ( SRV_FORCE_NO_LOG_REDO )
[root@localhost ~]# view /etc/my.cnf
innodb_force_recovery = 1 //입력 후
[root@localhost ~]#sytemctl start mysql
등의 방법이 존재하는데, 해당 방법들은 생각나는대로 추가하겠다.
'IT 인터넷 > DB' 카테고리의 다른 글
| MySQL 사용법 (3) - 원격 설정 (0) | 2021.12.14 |
|---|---|
| MySQL사용법 (2) - 패스워드 분실 시 초기화 (0) | 2021.12.14 |
| MySQL 사용법 (1) - 홈 디렉토리 변경 방법 (0) | 2021.12.14 |
| 웹 서버 만들기(Apache-PHP-Mysql) (3. Mysql 설치 -컴파일) (0) | 2021.12.14 |