[DBMS] MariaDB 테이블 손상 원인 및 복구

ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)

MySQL 또는 MariaDB를 설치한 서버에서 테이블이 깨지는 경우가 있습니다. MariaDB 테이블 손상의 원인은 크게 다음과 같습니다.

  • 기록되는 중간에 MariaDB 또는 mysqld의 데몬이 죽었을 때
  • 데몬 자체 오류
  • 의도치 않게 서버가 shutdown 된 경우
  • 하드웨어 오류
  • 외부프로그램에 의해 Table을 변경하는 동시에 서버에 의해 변경 작업이 이뤄질 때 발생

✅ MariaDB 테이블 손상 확인 및 복구 방법

웹사이트를 운영하면서 발생하게 되는 테이블이나 DB 자체가 깨지는 경우 MySQL / MariaDB 테이블 복구가 필요한데 먼저 손상된 테이블을 확인하는 방법입니다.

1. 쿼리문 사용

쿼리문에서 하나의 특정 테이블에 대해 확인 후 적용 할 경우 아래의 순서로 진행할 수 있습니다.

use DB명; # 작업할 DB 선택
check table 테이블명; # 확인할 테이블을 체크
repair table 테이블명; # 복구할 테이블 복구
optimize table 테이블명; # 최적화할 테이블을 최적화

2. 간단한 사용 예시

MariaDB [(none)]> use mysql;
MariaDB [mysql]> show tables;
...
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| transaction_registry      |
| user                      |
+---------------------------+
MariaDB [mysql]> check table time_zone;
+-----------------+-------+----------+----------+ne
| Table           | Op    | Msg_type | Msg_text |
+-----------------+-------+----------+----------+
| mysql.time_zone | check | status   | OK       |
+-----------------+-------+----------+----------+
1 row in set (0.000 sec)
MariaDB [mysql]> optimize  table time_zone;
+-----------------+----------+----------+-----------------------------+
| Table           | Op       | Msg_type | Msg_text                    |
+-----------------+----------+----------+-----------------------------+
| mysql.time_zone | optimize | status   | Table is already up to date |
+-----------------+----------+----------+-----------------------------+
1 row in set (0.001 sec)

MariaDB [mysql]>

✅ phpMyAdmin으로 복구

phpMyAdmin 설치가 되어 있다면 더 편한 방법으로 복구가 가능합니다. 모두 체크 후 테이블 검사를 실행할 수 있습니다. 우측 끝 행에 [부담]에서 숫자로 표시되는 테이블을 체크한 후 ①테이블최적화를 진행할 수 있으며, 깨진 테이블 역시 ②테이블 복구를 할 수 있습니다.

phpMyAdmin 테이블 최적화 및 복구

✅ HeidSQL 사용해서 최적화 및 복구

HeidiSQL을 사용해서 테이블을 복구할 수 있습니다.

유지 보수 실행최적화 실행 화면
MariaDB 테이블 손상-HeidiSQL 유지보수 실행(테이블 최적화 및 복구)
HeidiSQL 유지보수 실행 후(테이블 최적화 및 복구)
HeidiSQL 유지보수에서 테이블 최적화 완료

수동으로 복구하는 방법에 대해 알아 봤습니다. 이제 리눅스 서버에서 자동으로 복구하는 방법에 대해 알아 보겠습니다.

✅ MariaDB 테이블 손상: 자동 복구

mariadb-check 명령어를 이용해서 자동 복구를 진행할 수 있습니다. 전체 복구를 진행할 때의 기본 옵션입니다. shell 스크립트로 원하는 시간대에 설정할 수 있습니다.

mariadb-check -Ao --auto-repair --extended --optimize
]# mariadb-check -Ao --auto-repair --extended --optimize
mysql.column_stats                                 Table is already up to date
mysql.columns_priv                                 Table is already up to date
mysql.db                                           Table is already up to date
mysql.event                                        Table is already up to date
mysql.func                                         Table is already up to date
mysql.global_priv                                  Table is already up to date
mysql.gtid_slave_pos
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
mysql.help_category                                Table is already up to date
mysql.help_keyword                                 Table is already up to date
mysql.help_relation                                Table is already up to date
mysql.help_topic                                   Table is already up to date
mysql.index_stats                                  Table is already up to date
mysql.innodb_index_stats
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
mysql.innodb_table_stats
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
mysql.plugin                                       Table is already up to date
mysql.proc                                         Table is already up to date
mysql.procs_priv                                   Table is already up to date
mysql.proxies_priv                                 Table is already up to date
mysql.roles_mapping                                Table is already up to date
mysql.servers                                      Table is already up to date
mysql.table_stats                                  Table is already up to date
mysql.tables_priv                                  Table is already up to date
mysql.time_zone                                    Table is already up to date
----- 생략 -----
.wp_postmeta
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_posts
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_term_relationships
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_term_taxonomy
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_termmeta
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_terms
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_usermeta
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
.wp_users
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
~]#

Similar Posts

  • 데이터베이스; DBMS, SQL 이해

    목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구 1. 데이터베이스란 데이터베이스(DataBase:DB)는 데이터가 모여 있는 저장소입니다. 저장소는 구조화 된 정보 또는 데이터의 조직화 되어 있는 모음입니다. 데이터베이스에는 IT를 포함한 여러 분야에서 폭 넓게 사용되고 있습니다. 카카오톡이나 네이버…

  • |

    ORA-12514: 오라클 19c DB 접속 오류

    Oracle 19c를 윈도우에 설치 후 [ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함]이란 오류가 발생했습니다. 목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구 ORA-12514 오류 > 파일 수정 여러가지 오류 확인 중 [lisener.ora] 파일과 [tnsnames.ora]…

  • 오라클 데이터베이스(Oracle Database)

    목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구오라클 데이터베이스 오라클 데이터베이스(Oracle Database 또는 Oracle RDBMS)는 미국 오라클(Oracle) 사의 관계형 데이터베이스 관리 시스템(relational database management system, RDBMS)입니다. Windows Server, Unix 및 다양한 GNU/Linux 배포판을 포함한 운영 체제의 다양한…

  • Oracle: Window 오라클 19c 설치

    Window에 오라클 19c 설치를 위해 먼저 오라클 공식 다운로드 홈페이지로 이동합니다. 오라클 19c 중에 WIsdows 환경을 확인해서 다운로드 할 수 있습니다. 목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구1. Window 오라클 19c 설치하기 1.1 압축 파일…

  • phpMyAdmin 설치 및 취약점

    리눅스 서버에 MySQL 또는 MariaDB, PostgreSQL 설치 후 좀 더 편리한 DB 관리를 위해 phpMyAdmin 설치 후 사용하는 경우가 많습니다. 기본적인 phpMyAdmin 설치와 취약점에 대해서 알아 보도록 하겠습니다. 목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구phpMyAdmin…

  • SSMS(SQL Server Management Studio)란

    SSMS는Microsoft SQL Server 내의 모든 구성 요소의 구성과 관리하는데 사용되는 Microsoft에서 개발한 소프트웨어 응용 프로그램입니다. SQL Server 2005에서 처음 출시되었으며, SQL 2000 이전 버전의 Enterprise Manager 의 후속 제품입니다. 목차✅ MariaDB 테이블 손상 확인 및 복구 방법1. 쿼리문 사용2. 간단한 사용 예시✅ phpMyAdmin으로 복구✅ HeidSQL 사용해서 최적화 및 복구✅ MariaDB 테이블 손상: 자동 복구SSMS 개요…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 0   +   10   =