Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 데이터베이스 단일 테이블 백업 방법 – mysqldump 완벽 가이드

MySQL 데이터베이스에서 단일 테이블 백업하는 방법

MySQL에서 특정 테이블 하나만 백업하고 싶다면 두 가지 방법을 사용할 수 있습니다. 첫 번째는 BACKUP TABLE 구문이고, 두 번째는 mysqldump 유틸리티입니다. 다만 BACKUP TABLE 구문은 MySQL 5.0 및 그 이전 버전에서만 제공되던 기능으로 현재는 더 이상 사용할 수 없으므로, 최신 버전 환경에서는 mysqldump를 활용하는 것이 표준적인 방법입니다.

이 글에서는 mysqldump를 이용해 단일 테이블을 백업하는 전체 과정을 단계별로 살펴보겠습니다.

1단계. 명령 프롬프트(cmd) 실행하기

mysqldump는 콘솔에서 동작하는 도구이므로 먼저 명령 프롬프트를 열어야 합니다. Windows 단축키를 이용하면 빠르게 실행할 수 있습니다.

windowskey+R;

위 단축키를 누른 뒤 실행 창에 cmd를 입력하고 Enter를 누르면 됩니다.

MySQL 데이터베이스 단일 테이블 백업 방법 – mysqldump 완벽 가이드

그러면 다음과 같이 명령 프롬프트 창이 열립니다.

MySQL 데이터베이스 단일 테이블 백업 방법 – mysqldump 완벽 가이드

2단계. MySQL bin 폴더로 이동하기

mysqldump 실행 파일은 MySQL이 설치된 bin 폴더 안에 있습니다. 일반적인 기본 설치 경로는 다음과 같습니다.

C:\Program Files\MySQL\MySQL Server 8.0\bin

cd 명령어로 위 경로를 입력해 bin 폴더로 이동합니다.

MySQL 데이터베이스 단일 테이블 백업 방법 – mysqldump 완벽 가이드

3단계. mysqldump 명령으로 테이블 백업하기

bin 폴더에 진입했다면 아래 명령어를 입력하여 'business' 데이터베이스의 'student' 테이블을 백업합니다.

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqldump -u Manish -p business student > E:\student.sql
Enter password: ***********

각 옵션의 의미는 다음과 같습니다.
- -u Manish : 접속할 MySQL 사용자 계정
- -p : 비밀번호 입력 요청
- business : 백업 대상 데이터베이스명
- student : 백업할 테이블명
- > E:\student.sql : 덤프 결과를 저장할 파일 경로

4단계. 백업 결과 확인하기

명령이 정상적으로 수행되면 지정한 경로에 SQL 덤프 파일이 생성됩니다. 생성된 파일의 내용은 대략 다음과 같습니다.

-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: business
-- ------------------------------------------------------
-- Server version 8.0.12

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8mb4 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `student`
--

DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;

CREATE TABLE `student` (
   `id` int(11) DEFAULT NULL,
   `Name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
   KEY `NameStuIndex` (`Name`),
   KEY `idIndex` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `student`
--

LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT into `student` VALUES (1,'John'),(2,'Bob');
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-10-03 10:30:58

덤프 파일에는 DROP TABLE, CREATE TABLE 문을 통한 테이블 구조 정보와 INSERT 문을 통한 실제 데이터가 모두 포함되어 있습니다. 따라서 나중에 이 파일을 실행하기만 하면 테이블을 원래 상태 그대로 복원할 수 있습니다.

참고. 백업한 테이블 복원하기

백업해 둔 SQL 파일로 테이블을 되돌리고 싶다면 mysql 클라이언트에서 입력 방향(<)으로 파일을 지정하면 됩니다.

mysql -u Manish -p business < E:\student.sql

이처럼 mysqldump를 활용하면 데이터베이스 전체가 아닌 필요한 테이블만 선택적으로 백업할 수 있어, 용량을 절약하면서도 효율적인 데이터 관리가 가능합니다.