본문 바로가기
Database/MYSQL

Mysqldump 사용법 알아보

by 반화넬 2025. 3. 4.
반응형

1. mysqldump 기본구조

mysqldump -u[user_id] -p[user_pw] [option] [db_name] [tb_name] > [backup_file_name.sql]
  • -u[user_id] : MariaDB 접속 계정
  • -p[user_pw] : MairaDB 접속 비밀번호
  • [option] : dump 옵션, 여러개 중첩이 가능
  • [db_name] : 옵션 별 필요에 의한 Database 명칭
  • [tb_name] : 옵션 별 필요에 의한 Table 명칭
  • [backup_file_name.sql] :  백업받을 파일 명, 경로가 지정되지 않을 경우 스크립트를 실행하는 디렉토리에 파일 생성.

2. 전체 데이터베이스 백업하기

Option : --all-databases 

mysqldump -u[user_id] -p[user_pw] --all-databases > [backup_file_name.sql]
  • --all-databases 
    • 전체 데이터베이스에 대해 백업
    • mysql 등 메타정보가 담긴 데이터베이스도 함께 백업

3. 특정 데이터베이스 백업하기

Option : --databases [db_name_1] [db_name_2] ....

mysqldump -u[user_id] -p[user_pw] --databases [db_name_1] [db_name_2] .... > [backup_file_name.sql]
  •  --databases [db_name_1] [db_name_2] ....
  • 데이터베이스를 명시적으로 1개 이상 백업
 

4. 특정 테이블 백업하기

Option : --databases [db_name] --tables [tb_name_1] [tb_name_2] ....

mysqldump -u[user_id] -p[user_pw] --databases [db_name] --tables [tb_name_1] [tb_name_2] .... > [backup_file_name.sql]
  • --databases [db_name] --tables [tb_name_1] [tb_name_2] ....
    • 하나의 데이터베이스에 테이블을을 명시적으로 1개이상 백업
    • 동시에 여러 데이터베이스의 테이블은 백업 할 수 없음

5. 스키마만 백업하기 (데이터 제외)

Option : --no-data

mysqldump -u[user_id] -p[user_pw] --all-databases --no-data > [backup_file_name.sql]
  • --no-data
    • 명시된 데이터베이스 혹은 테이블의 개체 정보만 백업
    • sql의 insert 문을 제외하고 백업

6. 데이터만 백업하기 (스키마 제외)

Option : --no-create-info

mysqldump -u[user_id] -p[user_pw] --all-databases --no-create-info > [backup_file_name.sql]
  • --no-create-info
    • 명시된 데이터베이스 혹은 테이블의 데이터만 백업
    • sql의 create 문을 제외하고 insert 문만 백업

7. 특정 테이블 제외하고 백업

Option : --ignore-table=[db_name_1].[tb_name_1] --ignore-table=[db_name_2].[tb_name_2] ....

mysqldump -u[user_id] -p[user_pw] --all-databases --ignore-table=[db_name].[tb_name] > [backup_file_name.sql]
  • --ignore-table=[db_name_1].[tb_name_1] --ignore-table=[db_name_2].[tb_name_2] ....
    • 해당 테이블만 제외하고 백업
    • 여러 테이블을 제외하고 싶을 경우 여러 번 명시

8. No Lock으로 백업 (InnoDB의 경우)

Option : --single-transaction

mysqldump -u[user_id] -p[user_pw] --all-databases --single-transaction > [backup_file_name.sql]
  • --single-transaction
    • 하나의 트랜잭션을 이용하여 No Lock 으로 백업
    • InnoDB의 경우만 No Lock 으로 가능

9. 원격지 백업

Option : -h[host_ip]

mysqldump -u[user_id] -p[user_pw] -h[host_ip] --all-databases > [backup_file_name.sql]
  • -h[host_ip]
    • 원격지 [host_ip]의 데이터베이스를 옵션에 맞게 백업
반응형