Connect Engine이란 ?
MariaDB는 스토리지 엔진을 통해 외부 원격 데이터에 접근 가능합니다.
connect engine은 외부 데이터 소스와 MariaDB 간의 연결을 위한 엔진으로
XML, CSV 나 MySQL, ORACLE, SQL Server 등 타 DBMS의 테이블을 MariaDB에서 직접 쿼리할 수 있도록 연결기능을 제공합니다.
Connect Engine 설치 및 ORACLE , MSSQL 연결
1. Connect Engine 설치
[root@dbteam01 /]# yum install MariaDB-connect-engine
.
.
.
.
Installed:
MariaDB-connect-engine.x86_64 0:10.11.6-1.el7.centos
Complete!
[root@dbteam01 /]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.11.6-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show engines;
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| CSV | YES | Stores tables as CSV files | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage. Used for internal temporary tables and privilege tables | NO | NO | NO |
| MyISAM | YES | Non-transactional engine with good performance and small data footprint | NO | NO | NO |
| CONNECT | YES | Management of External Data (SQL/NOSQL/MED), including Rest query results | NO | NO | NO |
| SEQUENCE | YES | Generated tables filled with sequential values | YES | NO | YES |
| InnoDB | DEFAULT | Supports transactions, row-level locking, foreign keys and encryption for tables | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.000 sec)
2. unixODBC 설치
타 DBMS 접근하기 위해서 스토리지 엔진에는 ODBC라이브러리가 필요하다.
유닉스 계열에선 일반적으로 unixODBC 의미한다.
[root@dbteam01 /]# yum install unixODBC
3. ORACLE, MS ODBC 드라이버 설치
ORACLE, MS ODBC 드라이버 사용을 위해 RPM으로 설치함
* RPM(Red Hat Package Manager) : 드라이버 설치 및 관리 도구
ORACLE과 MS의 공식 웹사이트에서 ODBC 드라이버 rpm 다운로드 후 해당파일 설치
rpm -i [rpm패키지명].rpm 명령어로 패키지 설치
* 제 경우에는 /usr/lib 경로에 아래 rpm 파일을 다운로드했습니다.
oralce : oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm / oracle-instantclient-odbc-21.1.0.0.0-1.x86_64.rpm
ms : msodbcsql17-17.6.1.1-1.x86_64.rpm
#oracle rpm설치
[root@dbteam01 /]# rpm -i /usr/lib/oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
[root@dbteam01 /]# rpm -i /usr/lib/oracle-instantclient-odbc-21.1.0.0.0-1.x86_64.rpm
#ms rpm설치
[root@dbteam01 /]# rpm -i /usr/lib/msodbcsql17-17.6.1.1-1.x86_64.rpm
#설치 확인
[root@dbteam01 /]# rpm -qa | grep oracle
oracle-instantclient-basic-21.1.0.0.0-1.x86_64
oracle-instantclient-odbc-21.1.0.0.0-1.x86_64
[root@dbteam01 /]# rpm -qa | grep ms
msodbcsql17-17.6.1.1-1.x86_64
4. 환경변수 설정
[root@dbteam01 /]# vi .bash_profile
#.bash_profile 하단에 환경변수 추가
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
#파일 수정
[root@dbteam01 /]# vi /usr/lib/systemd/system/mariadb.service
#파일 서비스부분에 해당 변수 추가
[Service]
Environment=NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
#systemd 변경 사항 적용
[root@dbteam01 /]# systemctl daemon-reload
# mariadb.service 재시작
[root@dbteam01 /]# systemctl restart mariadb.service
5. odbcinst.ini 수정
ODBC 드라이버 설치 정보를 설정파는 파일로 드라이버 추가나 구성할때 사용
( MS의 경우 ODBC 드라이버 설치시 자동 설정되어 별도 수정하지 않음 )
[root@dbteam01 /]# vi /etc/odbcinst.ini
#하단에 아래 정보 추가
[OracleODBC 21.1]
Description=Oracle ODBC driver for Oracle
Driver=/usr/lib/oracle/21/client64/lib/libsqora.so.21.1
FileUsage=1
6. odbc.ini 수정
ODBC 드라이버와 데이터 소스에 대한 연결정보 설정
[root@dbteam01 /]# vi /etc/odbc.ini
#DB 연결정보 추가- [DSN:DataSourceName 지정]
[ORA_DEV]
Description = ORADEV(설명내용)
Driver = OracleODBC 21.1
Trace = yes
ServerName =//[오라클서버IP]:1521/[오라클servicename]
Port = [포트]
Database = [연결DB]
ServerName =//192.168.213.212:1521/ORCLDEV2
[MS_DEV]
Driver = ODBC Driver 17 for SQL Server
Description = MSDEV
Trace = Yes
Server = [MS서버IP]
Port = [포트]
Database = [연결DB]
7. 접속확인
isql 활용하여 접속 확인
* isql : 데이터 소스에 연결하고 쿼리 실행에 사용되는 ODBC 제공 도구
isql -v DSN [username] ["password"]
-v는 상세 출력 옵션임.
[root@dbteam01 /]# isql -v ORA_DEV dba_wrk "#roqkf0909"
8. MariaDB 접속하여 확인
DBeaver 로 MariaDB에 접속하여 connect engine을 통한 테이블을 생성함.
CREATE TABLE xtmp_ora_cate2
ENGINE=connect
CONNECTION='DSN=ORA_DEV;UID=dba_wrk;PWD=#roqkf0909'
`TABLE_TYPE`=ODBC `tabname`='VW_XTMP_TEST_CATE' ;
테이블 생성 및 데이터 조회 확인.
단순 접속 테스트용으로 생성한 테이블임. 실제 사용테이블은 데이터타입과 언어셋 고려하여 작성하여야 함
connect 엔진은 연결기능을 제공하는 것이므로 connect 엔진사용하여 테이블 생성시에는 .frm(테이블 정의 파일) 만 생성되는 걸 볼 수 있다.
참고)
Installing the CONNECT Storage Engine - MariaDB Knowledge Base
'DATABASE > Mysql MariaDB' 카테고리의 다른 글
[MariaDB] 기본 디렉토리 datadir 변경하기 (CentOS7) (1) | 2024.01.24 |
---|---|
[MariaDB] CentOS MariaDB 설치 Requires: pv 에러 발생 (0) | 2024.01.19 |
[MariaDB] CentOS 7 - MariaDB 특정 버전 설치하기, 원격 접속 설정 (1) | 2023.02.23 |