반응형
안녕하세요 가야태자 @talkit 입니다.
오늘은 MySQL의 데이터를 어떻게 백업을 할지 고민해 보겠습니다.
저희가 유지 보수를 하는 다양한 사이트에서 백업을 어떻게 하는지 보겠습니다.
준비물
mysql cli 도구들
접속하기
서버에서 직접 백업할 경우는 서버에 ssh로 접속을 해야 합니다.
위 글이 도움이 될 것 같습니다.
준비물이 있는지 확인 하기
mysqldump
mysql
위 두 프로그램이 설치 되어 있는지 확인 하기 위해서 위 명령어를 내려 봅니다.
저는 putty로 이전에 mattermost를 설치 해둔 서버에 접속을 했습니다.
talkit@ubuntu:~$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
talkit@ubuntu:~$ mysql
ERROR 1045 (28000): Access denied for user 'talkit'@'localhost' (using password: NO)
Command not found로 나오지 않고 옵션을 보여 주거나 오류를 보여 주면 ^^
제대로 설치가 되어 있는 것입니다.
mysql 은 데이터베이스를 확인하기 위해서 사용합니다.
mysql -u root -p -e "show databases;"
mysql -u root -p -e "show databases;"
Enter password:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mattermost |
| mysql |
| performance_schema |
| sys |
+--------------------+
비밀번호를 묻는데 ^^ 비밀번호를 몇번 틀리긴 했지만, 잘 보입니다.
이제 백업을 해보겠습니다.
저기서 mattermost라는 데이터베이스를 백업할 계획입니다.
백업하기
mysqldump -u 사용자 -p --quick 데이터베이스명 > 백업파일명
mysqldump -u root -p --quick mattermost > mattermost.db.sql
저는 아래 명령어를 입력해서 백업을 진행 하겠습니다.
-- MySQL dump 10.13 Distrib 8.0.32, for Linux (x86_64)
--
-- Host: localhost Database: mattermost
-- ------------------------------------------------------
-- Server version 8.0.32-0ubuntu0.20.04.2
/*!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 */;
/*!50503 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 `Audits`
--
DROP TABLE IF EXISTS `Audits`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `Audits` (
`Id` varchar(26) NOT NULL,
`CreateAt` bigint DEFAULT NULL,
`UserId` varchar(26) DEFAULT NULL,
`Action` text,
`ExtraInfo` text,
`IpAddress` varchar(64) DEFAULT NULL,
`SessionId` varchar(26) DEFAULT NULL,
PRIMARY KEY (`Id`),
KEY `idx_audits_user_id` (`UserId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
백업 된 자료의 일부를 보여 드리면 위와 같이 백업 됩니다. ^^
감사합니다.
다음 글에서는 백업후에 복원하는 방법을 알려 드리겠습니다.
반응형
'DATABASE > MySQL' 카테고리의 다른 글
마이에스큐엘/MySQL 데이터베이스 복원하기 / How to restore database for MySQL (0) | 2023.03.07 |
---|---|
MariaDB를 이용한 Database 사용하기 #003 - Cleint DBeaver 설치하기 (0) | 2020.06.10 |
MariaDB를 이용한 Database 사용하기 #002 - 설치하기(1) (0) | 2020.06.08 |
오늘의 개발일지 2020년05월21일 MariaDB를 이용한 Database 사용하기 #001 (0) | 2020.05.31 |
MySQL 타입 변환 명령 CAST 함수 (4) | 2015.09.10 |