써먹는 웹개발
[Mariadb(Mysql)] federated (oracle dblink 같은 기능) - 다른 서버간 DB 연결 본문
웹개발/Database
[Mariadb(Mysql)] federated (oracle dblink 같은 기능) - 다른 서버간 DB 연결
kmhan 2023. 1. 6. 14:16728x90
반응형
1. federated를 사용하는 이유 : 다른 서버간의 데이터 조합이 필요한 경우
ex) 다른 서버간의 join
2. 방법
0) 2가지 DB
ORIGIN_DB : 원본 데이터가 있는 DB
NEW_DB : 원본 데이터가 필요한 DB
1) NEW_DB에 root 접속 후에 SHOW ENGINES; 명령어로 FEDERATED가 있는지 확인한다.
- 있으면 3번으로
- 없으면 설치 (명령어 : install plugin federated soname 'ha_federated.so')
2) 설치했다면 mariadb 재시작 후, 다시 show engines로 확인
- Support 컬럼이 'YES'로 바뀌었는지 확인
3. 사용법
CREATE TABLE `db_test1` ( `a1` varchar(10) DEFAULT NULL, `a2` varchar(10) DEFAULT NULL, `a3` varchar(11) DEFAULT NULL ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://접속ID:패스워드@도메인(또는 IP):포트/datebase명(ex:DB1)/테이블명(ex:db_test1)'; |
※ 주의사항
1. 컬럼명을 똑같이 맞춰줘야 한다.
2. 원본 데이터 db에 스키마가 바뀌면, federated 테이블을 drop하고 다시 생성해야 한다.
-> federated 테이블은 스키마 변경 불가. 드랍하고 다시 create해야함
3. 패스워드에 '@'(골뱅이)가 들어가면 에러나므로 패스워드를 변경해야함
장점)
1. 원본 데이터 DB- 원격 데이터 DB 간에 delay가 없다.
2. 원격 데이터DB 에 select,insert,delete,update 모두 가능하다. 바로바로 원본 db에 적용됨
3. 원격 데이터 DB를 drop 해도, 원본DB는 drop이 안된다. 한마디로 DB에 DDL은 불가능 하고, DML은 가능하다(장점이자 단점이다)
728x90
반응형
'웹개발 > Database' 카테고리의 다른 글
[Mariadb] '문자열'값과 '문자열-R' 두개가 있으면 '문자열-R'로 조회하고, 나머지는 '문자열'로 조회하는 쿼리문 (0) | 2023.07.10 |
---|---|
[Mysql] 쿼리 결과 중에 첫번째 행만 가져오기 (0) | 2023.07.03 |
[Mysql/Mariadb] 외부에서 접속할때 속도 느린 현상의 원인 및 해결방법 (0) | 2022.12.07 |
[Mysql/MariaDB] insert문은 그대로 두고 뒤에 update 추가하는 방법 (2) | 2022.11.22 |
[Mysql/MariaDB] 양/음수 double 형 데이터 3자리마다 콤마 추가 쿼리문 (0) | 2022.11.21 |
Comments