본문 바로가기

DB(SQL)/mysql|maria

[DB] mariadb dblink FEDERATED / connect

반응형

0. Storage Engine (Database Engine)

데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제하는데 사용하는 기본 소프트웨어 컴포넌트이다.

쉽게 말하면 데이터를 어떤 모양으로 어떤 방식으로 적재할건지에 대한 정의이다.

(트랜젝션 유무 등 엔진마다 느낌이 다르니 꼭 성격을 확인하고 사용하고 테스트해볼것.)

현대의 많은 DBMS가 동일한 DB 내에 다중 저장 엔진을 지원한다.

ex) A table은 innodb B table은 MyISAM 을 사용하는 등으로 활용할 수 있다.

 

mariadb engine 종류보기

https://mariadb.com/kb/en/storage-engines/

 

1. FEDERATED

FEDERATED ENGINE은 관리가 안되고 있다.

MariaDB 5.1 > FederatedX

MariaDB 10.0 > CONNECT

https://mariadb.com/kb/en/federated-storage-engine/

 

 

2. FederatedX

0. 참조

FederatedX 스토리지 엔진은 MariaDB 5.1 에서 처음 출시되었습니다.

 

https://mariadb.com/kb/en/about-federatedx/

 

About FederatedX

Federated Storage Engine fork that uses uses libmysql to talk to the data source

mariadb.com

 

3. Connect (ubuntu 18.0.04 기준)

10.1.9(베타) 10.2.0(안정적인) 부터 적용

1. connect란

CONNECT 스토리지 엔진을 통해 MariaDB는 외부 로컬 또는 원격 데이터(MED)에 액세스할 수 있습니다. 

 

참조할 테이블에 연결하는 테이블..?

예를들어 기역 서버에 A라는 database에 a라는 테이블이 있는데

a 테이블과 연결되는 니은 서버에 B라는 database의 b라는 테이블로 생성하는 것이다.

 

기역 서버에서 부여한 권한(grant all, select, insert, delete, update etc..) 에 따라 권한이 결정되며

a테이블이 변화되면 b테이블에도 변화가 생긴다. (insert, update, delete)

또한 b테이블에 변화가 생기면 a 테이블에도 변화가 생긴다. (insert)

(delete, update를 할 경우 [SQL ERROR (1296): Got error 122 'Remote: Table 'B.b' doesn't exist' from CONNECT] 에러가 난다.)

 

참고로 create table을 할 경우 컬럼은 자동으로 생성하여 연결해주지만

index 등의 정보는 없으므로 상세하게 연결할 경우 다 설정해 주어야한다.

 

나는 ubuntu에서 했지만 docs를 보면 connect는 windows에서 개발 후 다른곳에 맞게 변형되었다고 하니 windows에서도 잘 될것이라고 생각된다.

 

https://mariadb.com/kb/en/introduction-to-the-connect-engine/

 

Introduction to the CONNECT Engine

Reasons behind the CONNECT storage engine.

mariadb.com

2. 설치

1. plugin package install

# shell
sudo apt-get install mariadb-plugin-connect

2. plugin install

# mariadb
INSTALL SONAME 'ha_connect';

3. 확인

# mariadb
show engines;

3. connect 테이블 생성

※ 주의

※ 무한 루프를 피하기 위해 MYSQL 본인 자체를 참조하지 않도로 주의하세요!

※ Connect는 BLOC or TEXT 컬럼은 지원하지 않습니다. 

ERROR 1163 (42000): Storage engine CONNECT doesn't support BLOB/TEXT columns

# 포트가 3306이면 생략가능
CREATE TABLE [테이블명]
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION= 'mysql://[접속userId]:[접속userPW]@[접속IP][:접속포트]/[접속DB]/[참조/연결할 테이블명]'
;

ex)
CREATE TABLE auth_group
ENGINE = CONNECT
TABLE_TYPE = MYSQL
CONNECTION= 'mysql://root:rootpassword123!@127.0.0.1:13406/test/auth_group'
;

 

https://vettabase.com/blog/using-connect-to-access-remote-mariadb-or-mysql-tables/

 

Using CONNECT to access remote MariaDB or MySQL tables - Vettabase

This article discusses how to access data from a remote table using the CONNECT storage engine, in MariaDB. Continue reading Using CONNECT to access remote MariaDB or MySQL tables→

vettabase.com

 

 

참조

더보기

 

https://stricky.tistory.com/325

 

Mysql FEDERATED Engine 으로 dblink 구현하기

Mysql FEDERATED Engine 으로 dblink 구현하기 ※본 포스트의 내용은 mysql 과 mariadb에서 호환되어 사용 가능한 내용임을 밝혀드립니다. Mysql 과 Mariadb에서 지원하는 FEDERATED 기능은 사실 Oracle에서 써..

stricky.tistory.com

https://yunhyeonglee.tistory.com/23

 

[MariaDB] MSSQL DBLINK ( Using Connection Engine )

오늘은 MariaDB에서 MSSQL로의 DBLINK에 관하여 글을 쓸 예정이다. 최근 고객사에서 MariaDB에서 MSSQL로 DBLINK를 맺어달라 문의를 받아서 해보게 되었다. MariaDB의 Connect Engine을 이용해서 DBLINK을 맺을 예..

yunhyeonglee.tistory.com

https://serge.frezefond.com/2013/04/mariadb-connect-storage-engine-vs-federatedx/

 

MariaDB CONNECT Storage Engine vs FEDERATED(X) – Serge Frezefond 's blog

As Stewart mentioned in in post where-are-they-now-mysql-storage-engines : "Federated It’s still there… but is effectively unmaintained and dead. There’s even FederatedX in MariaDB which is an improvement, but still, the MySQL server really doesn’t

serge.frezefond.com

https://runebook.dev/ko/docs/mariadb/create-server/index

 

MariaDB - 서버 생성 - Syntax Description 이 명령문은 Spider , FEDERATED 또는 FederatedX 스토리지 엔진 과 함

Syntax CREATE [OR REPLACE] SERVER [IF NOT EXISTS] server_name FOREIGN DATA WRAPPER wrapper_name OPTIONS (option [, option] ...) option: { HOST character-literal | DATABASE character-literal | USER character-literal | PASSWORD character-literal | SOCKET cha

runebook.dev

https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%97%94%EC%A7%84

 

데이터베이스 엔진 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

https://web-dev.tistory.com/tag/DB

 

웹 개발과 관련된 모든 것들

 

web-dev.tistory.com

 

 

반응형