반응형
Mysql 서버에는 리플리케이션 실행시 slave 쪽에서 Master와는 다른 데이터베이스로 다시 쓰는 기능이 있다. 대응하는 옵션은 replication_rewrite_db 로 slave 쪽에서 지정할 수 있다. 나름대로 편리한 방식이지만, 어떤 사정에 의해 Slave로 마스터의 바이너리 로그를 적용해야할 때는 불편하다.
바이너리 로그를 재생하는 mysqlbinlog 명령어에는 데이터베이스를 고쳐쓰기 기능이 없이 그대로 적용할 수 없기 때문이다. 테이블마다 일일이 이름을 고친다면 바이너리 로그의 적용이 가능하기야 하지만 매우 번거로운 일이다.
그래서 Mysql 5.7의 mysqlbinlog에는 --rewrite-db 옵션이 추가되어, 바이너리 로그 재생 시에 데이터베이스명을 고쳐쓸 수 있게 되었다. 아래는 실제 실행 예다.
mysqlbinlog --rewrite-db="dbX->dbY" \
--rewrite-db="db1->db2" \
mysql-bin.000123 | mysql
반응형
'쇠똥굴리기(BOOK) > MySQL 5.7 완벽 분석' 카테고리의 다른 글
서버 쪽에서 쿼리 타임아웃 지정(max_connection_time) (0) | 2020.06.04 |
---|---|
mysqlpump 신기능 (0) | 2020.05.31 |
ALTER로 복사하지 않는 VARCHAR 크기의 변경(ONLINE DDL 기능) (0) | 2020.05.19 |
UNION의 개선(5.6 -> 5.7) (0) | 2020.05.18 |
[mysql 5.7] 실행중인 쿼리의 Explain 신기능 (0) | 2020.05.06 |