Dump sql File Export (내보내기)
1. mysqldump Command
mysqldump -u[user_id] -p[user_pw] [option] [db_name] [tb_name] > [backup_file_name.sql]
CSS
복사
•
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]
Less
복사
•
-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]
Less
복사
•
--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]
Less
복사
•
-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]
Less
복사
•
-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]
Less
복사
•
-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]
Less
복사
•
-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]
Less
복사
•
-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]
Less
복사
•
h[host_ip]
◦
원격지 [host_ip]의 데이터베이스를 옵션에 맞게 백업.
Dump sql File Import (가져오기)
1. 전체 DB 복구
mysql -u[user_id] -p[user_pw] < [backup_file_name.sql]
CSS
복사
•
전체 데이터베이스 백업 파일을 전체 복구 할 경우 mysql DB와 같은 메타정보가 덮어 써질 수 있으니 주의.
•
백업 파일 sql에 있는 전체를 전부 실행하여 복구한다.
◦
Create Database 문이 포함되어있기 때문에 따로 지정한 데이터베이스 명이 없을 경우 생성한다.
2. 하나의 DB 복구
Option : --one-database
mysql -u[user_id] -p[user_pw] --one-database [db_name] < [backup_file_name.sql]
Less
복사
•
백업 파일 sql 내용 중 하나의 DB만 복구 할 경우 사용.
•
[db_name]에 해당하는 DB는 미리 생성되어 있어야한다.
◦
다른 이름의 DB로도 복구가 가능.
3. 원격지 DB에 복구
Option : -h[host_ip]
mysql -u[user_id] -p[user_pw] -h[host_ip] < [backup_file_name.sql]
Rust
복사
•
[host_ip]로 원격지 정보를 입력 후 해당 데이터베이스에 복구.