logo资料库

Oracle通过DBLink连接MySQL.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
一、概述
二、环境信息
1、Oracle
2、MySQL
三、配置UnixODBC
1、下载UnixODBC安装包
2、安装
① root用户执行
②编译安装
3、测试
四、配置odbc连接MyDQL
1、下载文件
2、rpm安装
3、配置odbc.ini文件
4、测试odbc连接MySQL
五、配置Oracle通过DBLink访问MySQL
1、修改环境变量
2、配置Oracle监听
① cd $ORACLE_HOME/network/admin
②修改tnsnames.ora
③配置ODBC监听
④重启测试监听配置
3、创建DBLink
①su - oracle
②select * from "a2"@myodbc1;
六、可能会遇到的问题
一、概述 linux 环境下,Oracle 数据库通过 DBLink 远程连接 MySQL 数据库。 二、环境信息 1、Oracle ①操作系统:Linux X86-64 ②数据库版本:11.2.0.4.0 ③字符集:SIMPLIFIED CHINESE_CHINA.AL32UTF8 2、MySQL ①操作系统:Linux i686 ②数据库版本:5.7.21 ③字符集:UTF8 三、配置 UnixODBC 1、下载 UnixODBC 安装包 软件地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz 2、安装 ① root 用户执行 cd /usr/local tar zxvf unixODBC-2.3.0.tar.gz ②编译安装 cd unixODBC-2.3.0/ ./configure --prefix=/usr/local/unixODBC-2.3.0 --libdir=/usr/lib64 --bindir=/usr/bin --sysconfdir=/etc --includedir=/usr/include make make install
3、测试 执行命令:odbcinst -j 如果安装成功会显示: [root@vbox66 local]# odbcinst -j unixODBC 2.3.0 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 [root@vbox66 local]# unixODBC 所需的头文件都被安装到了/usr/inlucde 下,编译好的库文件安装 到了/usr/lib64 下,与 unixODBC 相关的可执行文件安装到了/usr/bin 下,配置文 件放到了/etc 下。安装完成 四、配置 odbc 连接 MyDQL 1、下载文件 网址: https://cdn.mysql.com//Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1. 13-1.x86_64.rpm 2、rpm 安装 rpm -ivh mysql-connector-odbc-5.1.13-1.x86_64.rpm 3、配置 odbc.ini 文件 vi /etc/odbc.ini [testdb]
Description = mysql Driver = MySQL ODBC 5.1 Driver Server = 192.169.31.103 Database = test Port = 3306 USER = user_name Password = passwd Socket = Option = 3 Stmt = CHARSET = UTF8 4、测试 odbc 连接 MySQL //MySQL 服务器 IP //MySQL 数据库名 //端口 //数据库用户名 //用户民密码 //数据库字符集 | | | 运行命令: isql testdb -v [root@vbox66 lib64]# isql testdb -v +---------------------------------------+ | Connected! | | sql-statement | help [tablename] | quit | +---------------------------------------+ SQL> show databases; +-----------------------------------------------------------------+ | Database +-----------------------------------------------------------------+ | information_schema | aaa | mysql | otter | performance_schema | sbtest //testdb 为 odbc.ini 文件中中括号中的内容 | | | | | | | | | |
| | | | | | | | sys | test | test1 | test_wr | wr | wr_test1 | www +-----------------------------------------------------------------+ SQLRowCount returns 14 14 rows fetched SQL> odbc 连接 MySQL 成功! 五、配置 Oracle 通过 DBLink 访问 MySQL 1、修改环境变量 su - oracle vi .bash_profile export ODBCINI=/etc/odbc.ini 2、配置 Oracle 监听 ① cd $ORACLE_HOME/network/admin vi listener.ora 添加如下信息: SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=dg4odbc) (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1) (PROGRAM=dg4odbc) ) )
官方文档解释如下: 网址: https://docs.oracle.com/cd/E11882_01/gateways.112/e12013/configsql.htm#OTGIS10 23 ②修改 tnsnames.ora vi tnsnames.ora 添加如下信息: dg4odbc = (DESCRIPTION= (ADDRESS = (PROTOCOL =tcp)(HOST = vbox66)(PORT = 1521)) (CONNECT_DATA = (SID = dg4odbc)) (HS=OK) ) 官方文档解释如下:
// 注 意 , 这 里 init 后 面 的 内 容 要 和 之 前 配 置 SID_NAME ③配置 ODBC 监听 cd $ORACLE_HOME/hs/admin vi initdg4odbc.ora (dg4odbc)一致 HS_FDS_CONNECT_INFO=testdb HS_FDS_TRACE_LEVEL = on HS_FDS_SHAREABLE_NAME=/usr/lib64/libodbc.so HS_FDS_SUPPORT_STATISTICS=FALSE #HS_LANGUAGE=AMERICAN_AMERICA.al32utf8 #HS_FDS_REMOTE_DB_CHARSET=utf8 #HS_LANGUAGE =AL32UTF8 #HS_LANGUAGE=AMERICAN_AMERICA.utf8 HS_LANGUAGE="simplified chinese_china.al32utf8" 源的字符集、语言和区域信息的异构服务 HS_NLS_NCHAR=UCS2 //NVARCHAR/NCHAR 和图形数据类型通常以 Unicode 格式存储数据。unicode 字符集因数据库的不同而不同,设置此参数外部 数据库保持一致 //提供具有非 oracle 数据 set ODBCINI=/etc/odbc.ini
④重启测试监听配置 oracle 用户执行: lsnrctl stop lsnrctl star alter system register;(数据库中执行) lsnrctl status; tnsping dg4odbc 显示以上信息则表示监听配置成功! 3、创建 DBLink ①su - oracle sqlplus / as sysdba create public database link myodbc connect to "aaa" identified by "aaa" using 'dg4odbc'; --注意:aaa 和 aaa 是 MySQL 用户名和密码,都需要使用双引号,dg4odbc 使用单引号。
②select * from "a2"@myodbc1; 六、可能会遇到的问题 1、SYS@vbox66in>select "id" from t1@myodbc1; select "id" from t1@myodbc1 * 第 1 行出现错误: ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息: [ 原因:有一些内容显示不全,检查 odbc 监听文件,查看 HS_LANGUAGE 参数, 配置为和数据库字符集一致 2、SYS@vbox66in>select "id" from "t1"@myodbc1; select "id" from "t1"@myodbc1 * 第 1 行出现错误: ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息: ORA-28541: HS 初始化文件的第 8 行发生错误。 ORA-02063: 紧接着 2 lines (起自 MYODBC1) 原因:NVARCHAR/NCHAR 和图形数据类型通常以 Unicode 格式存储数据。 unicode 字符集因数据库的不同而不同,需要修改 HS_NLS_NCHAR=UCS2
分享到:
收藏