1.环境准备
1) 在server端授予相应的权限
grant all privileges on *.* to KEVIN@xx.xx.xx.xx identified by "KEVIN"
注:用户名和密码都大写,因为oracle连接时默认是大写
或者在创建dblink时使用双引号
2) 安装mysql客户端
这步省略....
3) 编辑/etc/odbc.ini
[kevin]
driver=/usr/lib/libmyodbc3.so
description=mysql
server=192.168.1.100 // MySQL 服务器的ip地址
port=5000
user=oracle
uid=oracle
password=KEVIN
database=KEVIN
ption=3
socket=
4) 测试
isql -v kelvin
出现以下界面机成功
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
2.编辑oracle
1) 编辑HS参数文件($ORACLE_HOME/hs/admin),添加以下内容
HS_FDS_CONNECT_INFO= kevin
HS_FDS_TRACE_LEVEL = on
HS_FDS_TRACE_FILE_NAME = kevin.trc
HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so
2) 环境变量
vi .bash_profile 添加或更新一下内容
export DBCINI=/etc/odbc.ini
3) 编辑listener.ora
添加以下内容:
(SID_DESC= (SID_NAME = test)
(ORACLE_HOME = /oracle/product/10.2)
(PROGRAM = hsodbc)
(ENVS=LD_LIBRARY_PATH=/oracle/product/10.2/lib32:usr/lib:/oracle/product/10.2/lib)
)
4) 编辑tnsnames.ora
添加以下内容:
tomysql=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT=1521)) //oracle 服务器的ip地址
)
(CONNECT_DATA =
(SID=kevin)
)
(HS=OK)
)
注:ip为本机监听的ip地址
5) 创建dblink连接到mysql
create database link tomysql
connect kelvin identified by kevin
using 'tomysql';
3.连接测试
select * from "test"@tomysql;
注:使用双引号是oracle默认将表名大写,但是mysql大小写敏感
4.测试结果:
1) select * from "test"@tomysql;
结果:OK
2) insert into test select * from "test"@tomysql;
结果:OK
3) insert into "test"@tomysql select * from test;
结果: Failed
4) procedure
内容:
create or replace procedure to_mysql
is
v_x int;
v_y int;
begin
select x,y into v_x,v_y from test;
insert into "test"@tomysql
values(v_x,v_y);
end;
/
结果:OK
5) 事务性
MyISAM无事务性
Innodb可实现事务,前提是打开binlog且设置参数binlog_format=mixed
1) oracle insert
mysql端看不到数据,仅等oracle端commit之后才可见
2) mysql端,关闭自动提交之后
oracle也可见数据,当等mysql端rollback之后,数据又不可见
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14492307/viewspace-664927/ ,如需转载,请注明出处,否则将追究法律责任。