MariaDB와 MySQL은 바이너리 로그를 사용하여 데이터베이스의 모든 변경 사항을 기록합니다. 이 바이너리 로그는 포인트-인-타임 복구를 가능하게 하여 특정 시점으로 데이터베이스를 복원할 수 있습니다. MariaDB와 MySQL에서 바이너리 로그를 사용하여 데이터베이스를 복원하는 방법에 대해 알아보겠습니다.

바이너리 로그 이해하기

  • 바이너리 로그는 데이터베이스의 모든 변경 사항을 기록합니다. 여기에는 테이블 생성, 데이터 삽입, 업데이트 및 삭제 등이 포함됩니다.
  • 바이너리 로그는 포인트-인-타임 복구를 가능하게 합니다. 이는 특정 시점으로 데이터베이스를 복원할 수 있음을 의미합니다.

MariaDB, MySQL 바이너리 로그를 사용하여 데이터베이스 복구 단계

1. 데이터베이스 및 테이블 확인

복구해야 하는 데이터베이스인 ‘mydb’와 해당 데이터베이스의 테이블이 존재하는지 확인합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

MariaDB [(none)]> use mydb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mydb]> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| test           |
+----------------+
1 row in set (0.000 sec)

2. 바이너리 로그 식별

현재 사용 중인 바이너리 로그 파일과 위치를 확인합니다. 다음 명령을 사용하여 확인할 수 있습니다.

MariaDB [(none)]> show master status;
+------------------------+----------+--------------+------------------+
| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
| mariadb-bin-bin.000001 |      334 |              |                  |
+------------------------+----------+--------------+------------------+
1 row in set (0.000 sec)

3. 복구 SQL 파일 생성

바이너리 로그에서 SQL 문을 추출하여 복구 파일을 만듭니다. 다음 명령을 사용하여 수행할 수 있습니다.

[root@localhost ~]# mysqlbinlog /var/lib/mysql/mariadb-bin-bin.000001 > /tmp/mariadb-recovery.sql

[root@localhost ~]# ls -l /tmp/mariadb-recovery.sql 
-rw-r--r--. 1 root root 1152 Dec  6 10:45 /tmp/mariadb-recovery.sql

4. 기존 데이터베이스 삭제 (필요한 경우)

복원하려는 데이터베이스가 이미 존재하고 덮어써야 하는 경우 DROP DATABASE 명령을 사용하여 삭제합니다.

MariaDB [(none)]> drop database mydb;
Query OK, 1 row affected (0.351 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)

5. 복구 파일에서 복원

복구 파일에 있는 SQL 문을 실행하여 데이터베이스를 복원합니다. 다음 명령을 사용하여 수행할 수 있습니다.

[root@localhost ~]# mysql -u root -p  < /tmp/mariadb-recovery.sql
Enter password: 

6. 복원 확인

복원이 성공적으로 완료되었는지 확인합니다. 다음 명령을 사용하여 확인할 수 있습니다.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               | 
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

MariaDB [(none)]> use mydb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mydb]> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| test           | 
+----------------+
1 row in set (0.000 sec

추가 고려 사항

  • 여러 바이너리 로그: 여러 바이너리 로그가 관련된 경우 올바른 순서대로 처리해야 합니다.
  • 부분 복원: 특정 테이블이나 데이터만 복원하려면 복구 파일의 SQL 문을 필터링할 수 있습니다.
  • 백업: 정기적인 백업은 재해 복구에 필수적입니다. 바이너리 로그는 기본 백업 방법이 아니어야 합니다.
  • 권한: 데이터베이스 및 바이너리 로그에 액세스할 수 있는 권한이 있는지 확인하세요.

바이너리 로그와 복구 SQL 파일을 사용하여 MariaDB 데이터베이스를 복구하는 것은 강력한 복구 기술입니다. 그러나 언제나 주의를 기울이고 이러한 작업을 수행하기 전에 적절한 백업이 있는지 확인해야 합니다. 이 단계별 안내를 따라 데이터 손실 시 효과적으로 MariaDB 데이터베이스를 복구할 수 있습니다.

댓글 달기

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

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

아마존 해외 구매: 서버, 네트워크, 노트북 구매

Amazon Best Sellers Servers

Amazon Best Sellers Networking

Amazon Best Sellers Laptops

위로 스크롤