반응형

그림과 같이 Master에 있는 특정 테이블을 Slave에서도 조회하고자  FEDERATED 엔진 활용 Master DB 특정 테이블 link


- 주의할 점
* SlaveDB에 생성 시 MasterDB 테이블에 컬럼 수와 컬럼명이 동일해야 함
* 원격DB에서도 DML(select, update, insert, delete) 가능하며, DDL은 지원하지 않음(원격 DB에서 DROP 해도 원본 DB는 삭제되지 않음)

 

- 엔진 설치(원격DB)

root@localhost:(none) > show engines;

root@localhost:(none) > install plugin federated soname 'ha_federated.so';

root@localhost:(none) >show engines;

설치(또는 이미 설치되어있으면) 후 DB의 my.cnf 수정

 -> [mysqld] 아래에 federated라는 단어를 추가

 

- 테이블 생성 예시

Main DB에 있는 test라는 테이블 DDL문을 DBLINK DB에 생성

 

CREATE TABLE test (
CODE1 VARCHAR(10) NOT NULL COMMENT '코드1' COLLATE 'utf8_general_ci',
CODE2 VARCHAR(50) NULL DEFAULT NULL COMMENT '코드명2' COLLATE 'utf8_general_ci',
CODE3 VARCHAR(50) NULL DEFAULT NULL COMMENT '코드명3' COLLATE 'utf8_general_ci'
ADD_COL1 INT(10) UNSIGNED NULL DEFAULT '1' COMMENT '추가컬럼1',
ADD_COL2 INT(10) UNSIGNED NULL DEFAULT '1' COMMENT '추가컬럼2',
ADD_COL3 INT(10) UNSIGNED NULL DEFAULT '1' COMMENT '추가컬럼3',
ADD_COL4 INT(10) UNSIGNED NULL DEFAULT '1' COMMENT '추가컬럼4',
ADD_COL5 INT(10) UNSIGNED NULL DEFAULT '1' COMMENT '추가컬럼5',
PRIMARY KEY (CODE) USING BTREE
)
COMMENT='코드'
COLLATE='utf8_general_ci'
ENGINE=FEDERATED
CONNECTION='mysql://계정 : 비밀번호@master IP:3306/DB명/테이블명';

 

- 삭제 방법( 링크 구성한 db에서 실행)

drop table 테이블명;

 

'DBMS > MySQL&Mariadb' 카테고리의 다른 글

mariadb, mysql 시스템 기본 조회  (0) 2022.06.16
column 관리  (0) 2022.06.08
원격 접속  (0) 2022.06.08
세션 정보 및 kill  (0) 2022.06.08
DB Backup  (0) 2022.06.08

+ Recent posts