반응형
백업
- 논리적 백업 (mysqldump를 이용하여 텍스트 형식으로 테이블의 내용을 저장하는 백업)
-. mysql 서버에 접속해서 데이터를 복구 하기 위한, create table, insert .. 문을 만들어 내기 때문에 물리적 백업보다 오래걸린다.
-. 테이블에 존재하는 index에 대한 정보는 백업 내용에 포함되어 있지 않지만, 덤프파일을 이용해서 데이터를 복구 시에는 인덱스가 생성된다.
-. 설정파일이나, 로그파일 등은 백업되지 않는다.
-. --opt옵션을 사용하면 덤프과정을 최적화 시키지만, --opt를 사용하는 순간 모든 테이블에 lock을 설정하기 때문에 다른 세션에서 DML이 불가능하다.
-. --opt옵션은 기본적으로 extended-insert를 활성화 시켜서, 한 건 한 건 insert하는 구문이 아니기 때문에 로그 사이즈가 줄어든다.
-. 전체 데이터 베이스를 백업 받을 때는 --flush-logs 옵션을 같이 사용하면 좋다.
-. 기본적으로 테이블과 연관된 데이터만 백업을 받게 되므로 --routines --triggers --events 옵션을 사용하여 덤프 파일에 추가해야한다.
-. --master-data는 복제 슬레이브 서버를 만들 목적으로 master서버에서 덤프 파일을 생성할 때 유용하다. - 물리적 백업 (실제 사용되는 data file, log file, 설정파일 등을 직접 복사하여 저장하는 백업)
-. cp, tar, rsync를 사용하여 물리적 백업
-. 서버중단필요
백업 복구 예제
1. 특정 데이터베이스의 table 하나만 백업
mysqldump -u root -p test1 test_tab1 > test1_test_tab1_2020_10_06.dmp - drop table 구문까지 포함되어있다. |
1.1 백업받은 특정 데이터베이스의 table 하나 복구
mysql -u root -p test1 < test1_test_tab1_2020_10_06.dmp |
2. 특정 데이터베이스
mysqldump -u root -p --add-drop-table --set-charset --default-character-set=utf8 test1 > db_test1_backupfile.dump |
2.1 백업받은 특정 데이터베이스 복구
mysql> use test1; Database changed mysql> show tables; Empty set (0.00 sec) mysql -u root -p test1 < db_test1_backupfile.dump mysql> use test1; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +-----------------+ | Tables_in_test1 | +-----------------+ | test_tab1 | | test_tab2 | +-----------------+ 2 rows in set (0.00 sec) |
※Dump 옵션 참고 블로그
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=islove8587&logNo=220954068077
반응형
'Database > MYSQL' 카테고리의 다른 글
[MYSQL] Cold backup, Hot backup, Logical backup, Physical Bakcup (0) | 2022.10.12 |
---|---|
[MYSQL] InnoDB vs MyISAM (0) | 2022.10.12 |
[MYSQL] 스키마구조 (0) | 2022.10.07 |
[MYSQL] 계정 및 권한 관리 (0) | 2022.10.02 |
[MYSQL] 정적, 동적 Parameter 적용 (0) | 2022.09.29 |