如何配置Oracle Gateway 到MySQL?
oracle 的gateway透明网管支持像oracle dblink一样访问异构数据库如mysql, sql server等,在十四年前当时在维护oracle和sql server时,安装配置过还写了个整理了《安装透明网关 for sql server》,时间过的真快,没想到这次oracle的交接已经全面展开,在过渡阶段可能会存在一些异构数据库的访问,使用 Oracle ODBC 网关和异构服务技术从 Oracle 系统访问 MySQL 数据,本文介绍如何使用 ODBC Driver for MySQL 创建MySQL 和 Oracle 的数据库链接,并通过 SQL*Plus 工具查询 MySQL 数据。
Oracle的gateway产品有:
DG4MSQL
DG4ODBC
DG4TERA
DG4MQSERIES
DG4IFMX
DG4SYBS
DG4DRDA
Package 依赖
安装时需要两个 RPM 软件包:
yum install unixODBC
- 下载
mysql-connector-odbc-8.0.28-1.el8.x86_64.rpm
rpm -ihv mysql-connector-odbc-8.0.28-1.el8.x86_64.rpm
该unixODBC
软件包将安装基本库,包括稍后需要的库和文件。/usr/lib64/libodbc.so,/etc/odbc.ini,/etc/odbcinst.ini,/usr/bin/isql
软件包 mysql-connector-odbc 将安装特定的 mysql 库。文件/etc/odbcinst.ini
也将进行调整
ODBC 配置
将配置 ODBC 客户端/etc/odbc.ini
.
[TESTMYDB] Description = Test-MYSQL-Datenbank Driver = /usr/lib64/libmyodbc8w.so Trace = no Server = 192.168.0.18 Port = 3306 Database = test User = anbob Password = passwort
拥有条目的名称 和正确的驱动程序非常重要。Unicode MySQL 数据库的驱动程序是libmyodbc8w.so 。否则,可用于具有 1 字节字符集的 MySQL 数据库。 测试odbc连接数据MYSQL
isql test anbob passwort
安装 Oracle Gateway
安装 Oracle Gateway 软件
cd /u05/share/software unzip LINUX.X64:193000_gateways.zip cd gateways ./runInstaller
然后选择安装路径和支持的数据库如我们MYSQL仅先ODBC即可.
Gateway网关配置
配置以下三个文件
listener.ora
tnsnames.ora
init<GATEWAYNAME>.ora
listener.ora
LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)) (ADDRESS=(PROTOCOL=TCP)(HOST=YYYY)(PORT=1521)) ) ) SID_LIST_LISTENER = (SID_LIST= (SID_DESC= (SID_NAME=anbob) -- 必须与/etc/odbc.ini的文件相同 (ORACLE_HOME=/u01/app/oracle/product/19/gwhome_1) --GATEWAY安装路径 (PROGRAM=dg4odbc) ) )
tnsnames.ora
TESTMYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = XXX2)(PORT = 1521)) (CONNECT_DATA = (SID = ANBOB) ) (HS = OK) )
Note:
对于RAC不能使用scan IP, 这里指定的是多个vip, TNS别名可以自定义,但sid也必须与odbc.ini相同。
initanbob.ora
HS_FDS_CONNECT_INFO = anbob --必须是odbc.ini记录 #HS_FDS_TRACE_LEVEL = OFF #HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P15 HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_FDS_SHAREABLE_NAME 使用的是unixODBC包的libodbc.so
Database-Link
CREATE DATABASE LINK dl_test CONNECT TO "anbob" IDENTIFIED BY "password" USING 'TESTMYDB ";
如果mysql数据库不是UNICODE ,连接时可能报错ora-28500, 需要在initanbob.ora
中配置HS_LANGUAGE 为指定的字符集, 访问表时通常是小写,用双引号。
目前这篇文章还没有评论(Rss)