Load To Technical Architect
[Linux] Mysql Federated 본문
Version
- Mysql 5.7.20
Mysql federated란?
물리적으로 떨어져있는 DB의 테이블을 다른 DB에서도 똑같이 조회 등을 가능하게하는 기능
ex) 본사 DB(주요 DATA가 있는 DB), 지사 DB(본사 DB에 있는 DATA 조회 필요)
1. Federated Engine을 지원하도록 설정
※ 지사 DB에만 federated 기능을 키면 되며 본사 DB에는 필요없음
1) 지사 DB에 root로 접속
$ mysql -u root -p
2) 엔진 상태 확인
mysql> show engines;
FEDERATED가 없으면
mysql> install plugin federated soname 'ha_federated.so'
3) 지사 DB 서버의 my.cnf 수정, mysql 재시작
$ sudo vi /etc/my.cnf
[mysqld]
.
.
.
federated
$ sudo systemctl restart mysql
4) 확인
mysql> show engines;
Support 컬럼이 YES로 변경되었으면 사용 가능
2. 사용 및 테스트
※ 본사 DB 에서 테이블을 생성하거나 이미 존재하는 테이블을 사용해도 됨
본사 DB에 테이블 생성
mysql> CREATE TABLE EMPLOYEE (
ID varchar(32) NOT NULL PRIMARY KEY,
EMP_NO varchar(50) NOT NULL,
BIRTHDAY varchar(32)
) ENGINE=InnoDB Default Charset=utf8;
지사 DB에 federated 테이블을 생성
mysql> CREATE TABLE EMPLOYEE (
ID varchar(32) NOT NULL PRIMARY KEY,
EMP_NO varchar(50) NOT NULL,
BIRTHDAY varchar(32)
) ENGINE=FEDERATED Default Charset=utf8
connection='mysql://본사DB_ID:PASSWORD@본사DB_서버_IP: 본사DB_port/데이터베이스명/테이블명';.
※ 컬럼명은 같아야하며 본사 DB의 스키마가 변경되면 지사 DB의 federated 테이블 삭제 후 재생성
◎ Federated 테이블 특징
- DB 간 지연 없음
- 본사 DB에 select,insert,delete,update 가능
- 지사 DB에서 Federated table의 내용을 삭제해도 본사 DB의 table은 삭제 안됨
즉, DDL은 불가능 하고, DML은 가능
'DB > mysql' 카테고리의 다른 글
[Linux] Mysql Replication (2) | 2020.06.16 |
---|---|
[Linux] Mysql Tomcat 연동 (2) | 2020.06.15 |
[Linux] Mysql Service 등록 (0) | 2020.06.11 |
[Linux] Mysql 5.7.20 Compile (0) | 2020.06.11 |