mysql엔진을 사용하는 mysql, mariadb 들의 백업은 mysqldump 유틸리티를 사용한다.
Oracle에서 사용하는 expdp, impdp와 비교하면 일부 기능은 없지만 매우 직관적이며 덤프를 sql파일로 생성하므로
작업자가 열어보면 이해하기가 상대적으로 매우 쉽다.
아래는 사용방법이 다.
mysqldump -u유저명 -p -h서버ip --single-transaction --skip-add-drop-table --databases testdb --tables tb_emp > tb_emp.sql |
*추가 옵션 설명 및 참고
--single-transaction 옵션을 넣지 않으면 Lock을 유발하므로 반드시 넣어준다.
통계 관련오류 skip하려면 --column-statistics=0 추가를 고려
--no-create-info : 데이터만 덤프 --create 생성문이 빠짐
--no-data : 데이터를 제외하고 구조만 덤프
--master-data=2 : replication 설정 시 바이너리 포지션 숫자를 알아야 할 때 필요
--routines : 프로시저나 펑션등을 포함 시 추가
mysqldump -uroot -p --single-transaction -P3306 --databases testdb --tables tb_test --where="seqno BETWEEN '5263703858' AND '5272397972'" > tb_test.sql |
select concat('CREATE VIEW ', TABLE_SCHEMA ,'.',TABLE_NAME, ' AS ',VIEW_DEFINITION ,';') from information_schema.views order by 1; |
mysqldump -uroot -h서버ip -P33306 --routines --no-create-info --no-data --no-create-db --skip-opt --single-transaction -p --databases test > prc_01.sql
sed -i -e 's/DEFINER=`testuser`@`%`/ /g' proc_*.sql |
mysql -u유저명 -p암호 -h서버ip -P3306 < tb_emp.sql |
위와 같이 sql파일을 임포트시도할 수 있으나 로그가 남지 않는다.(다만 에러 시에는 출력되고 중지됨)
*sql 파일 내에 use db가 있는지 사전에 확인!
-----
*추가 또 다른 방법: 임포트 되는 과정을 보고 싶다면 직접 DB에 접속 후 sql 파일을 실행한다.
use DB명; source tb_emp.sql |
amazon linux에 mariadb 설치 및 셋팅 #1 (0) | 2021.03.03 |
---|---|
my.cnf에 [client]등 그룹 항목이 필요한 이유 (0) | 2020.06.25 |