오늘도 한 뼘 더

[MySQL | ShellScript] 특정 컬럼만 백업해서 복원하는 스크립트 생성하기 본문

DevOps & Infra/DevOps

[MySQL | ShellScript] 특정 컬럼만 백업해서 복원하는 스크립트 생성하기

나른한댕댕이🐶 2024. 4. 5. 16:37
728x90
반응형

  # 배경  

mysqldump를 사용할 때 특정 컬럼만 선택하는 방법은 없다.
특정 컬럼을 백업해서 넘기기 위해서는 temp 테이블을 만들어서 temp 테이블에 원하는 데이터를 삽입해서 temp 테이블을 덤프 해서 진행하도록 한다.

 

  # 스크립트 내용  

https://github.com/baekji919/DevOps/tree/main/Data_Backup

 

DevOps/Data_Backup at main · baekji919/DevOps

Contribute to baekji919/DevOps development by creating an account on GitHub.

github.com

 

## temp 테이블 생성 sql

use database;

INSERT into database.table SELECT col1, col2, col3 from database1.table1;

 

## 스크립트 작성

#!/bin/bash

DB_HOST="HOST"
DB_USER="USER"
DB_PASSWORD="PASSWORD"

echo "insert data into temp table"
mysql -h ${DB_HOST} -u ${DB_USER) -p${DB_PASSWORD} < ./create_temp_talbe.sql

sleep 30

# 데이터 백업
echo "data dump"
mysqldump -h ${DB_HOST} -u ${DB_USER) -p${DB_PASSWORD} \ 
  --set-gtid-purged=OFF \
  [DATABASE_NAME] [TABLE] \
  --default-character-set utf8 | gzip > dunmp_data.sql.gz

sleep 30

gzip -d dunmp_data.sql.gz

# 데이터 복원
echo "data import"

mysql -h ${DB_HOST} -u ${DB_USER) -p${DB_PASSWORD} [DATABASE] < dunmp_data.sql
728x90
반응형
Comments