반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 MySQL의 데이터를 어떻게 백업을 할지 고민해 보겠습니다. 

저희가 유지 보수를 하는 다양한 사이트에서 백업을 어떻게 하는지 보겠습니다. 

준비물

mysql cli 도구들

접속하기

서버에서 직접 백업할 경우는 서버에 ssh로 접속을 해야 합니다. 

리눅스/Linux PuTTY로 SSH를 통해서 VMWARE Linux에 접속해보자. How to connect to Linux on VMWARE via SSH with PuTTY :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux PuTTY로 SSH를 통해서 VMWARE Linux에 접속해보자. How to connect to Linux on VMWARE via SSH with PuTTY

안녕하세요 가야태자 @talkit 입니다. 오늘은 VMWARE에 Ubuntu를 설치 했습니다. VMWARE 켜서 계속 콘솔로만 접속을 할것인가? 이런 의문이 들었습니다. ^^ 그래서 SSH를 통해서 어떻게 접속하게 할지 알

talkit.tistory.com

위 글이 도움이 될 것 같습니다. 

준비물이 있는지 확인 하기

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 */;

백업 된 자료의 일부를 보여 드리면 위와 같이 백업 됩니다. ^^

감사합니다. 

다음 글에서는 백업후에 복원하는 방법을 알려 드리겠습니다.

 

반응형
반응형
1호점에서 옮겨 왔습니다.

오라클을 데이타 베이스로 사용하면서 백업하고 복원하는 방법입니다.

1. 백업하기 exp userid=사용자명/비밀번호@sid file=filename_date.dmp

  예) exp userid = scott/tiger@orcl file=scott_20070331.dmp

2 복원하기 imp userid=사용자명/비밀번호@sid file=filename_date.dmp [FULL=Y] [TABLE=table name]

  예) imp userid=scott/tiger@orcl file=scott_20070331.dmp FULL=Y
반응형
반응형
cat unload.sh

dbaccess 데이터베이스명 << EOF;
unload to '저장될 파일명' select * from 테이블명;

Informix DATA 백업 스크립트 입니다.

잊어 먹지 않으려고 작성해 둡니다. ^^;;

밑에 적어둔 스키마 백업 스크립트는 무진장 잘 써먹고 있습니다. ㅋㅋㅋ


반응형

+ Recent posts