/ rhce-new

RHCE : Database Services – Backup and restore a database.

rhce-new redhat-new MariaDB MySql Database mysqldump command database backup database restore SQL files
https://4am.kr/rhce-database-services-backup-and-restore-a-database/

RHCE : 데이터베이스 서비스 – 데이터베이스 백업 및 복원

RHCE 주제입니다. 아래 참조된 사이트를 번역 및 내용 추가하였습니다.

사전 준비사항

백업 절차

1. test 데이터베이스를 백업하기 위해서는 다음과 같이 입력한다.
[root@server2 ~]# mysqldump --user=root --password=password --result-file=/mnt/test.sql test

노트1: 하나 또는 여러 개의 데이터베이스를 줄의 맨 마지막에 정의할 수 있다.
노트2: 단일 트랜젝션에서 하나 또는 여러 개의 데이터베이스를 백업하기 위해 -single-transaction 옵션이 사용이 가능하다.

2. 앞에서 백업한 test.sql파일의 내용을 확인해보자.
[root@server2 ~]# cat /mnt/test.sql
-- MySQL dump 10.14  Distrib 5.5.35-MariaDB, for Linux (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version	5.5.35-MariaDB

/*!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 */;
/*!40101 SET NAMES utf8 */;
/*!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 `addresses`
--

DROP TABLE IF EXISTS `addresses`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `addresses` (
  `id` int(10) unsigned DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `addresses`
--

LOCK TABLES `addresses` WRITE;
/*!40000 ALTER TABLE `addresses` DISABLE KEYS */;
/*!40000 ALTER TABLE `addresses` 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 2016-04-30 15:53:25
[root@server2 ~]# 

복원 절차

데이터베이스에 같은 내용을 복원하고자 한다면 다음과 같이 입력한다.
[root@server2 ~]# mysql --user=root --password="password" test<test.sql
[root@server2 ~]# 
  • 노트1: SQL파일 안의 내용(여기서는 test.sql을 의미)을 보면 테이블 재생성을 자동으로 하다록 되어 있다.
  • 노트2: 만약에 복원할 데이터베이스가 서버에 존재하지 않는다면, 복원하기 전에 아래와 같이 먼저 해당 데이터베이스를 생성해야 한다(SQL파일이 데이터베이스를 자동으로 생성해주지는 않으므로).
MariaDB [(none)]> create database test;

추가 자료

mysqldump만이 시험동안 사용가능하지만, MySQL/MariaDB 데이터베이스 백업에는 mysqldump 이외에도 다양한 솔루션들이 있다. mydumper 도구를 사용해 볼 수 있다.