a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 161|回复: 1

[其他] Oracle认证:通过DBLink访问MySQL数据

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
测试情形:CentOS5-X64, Oracle10g_X64, MySQL5。
5 }/ |( ^# ?2 r, d% I  把一些经验分享给巨匠!
7 h% c7 Q* Y6 S( v  1,首先在Oracle地址计较机安装MySQL的Client端软件,而且x86_64和i386版本的都需要安装,以便可以毗连MySQL数据库,rpm -qa|grepmysql
4 j3 }! h7 E# q+ ?( I) G  mysql-5.0.45-7.el53 f, @/ T% V. {( T7 d# C
  mysql-5.0.45-7.el5. k- K$ O* _; X/ {  b
  获得两标识表记标帜录,一条是x86_64的,一条是i386的。  x0 f, X6 ~' C2 g
  如不美旁观到还没有安装mysql客户端软件,则需要安装mysql客户端软件:; @7 I8 ?6 U/ v# W2 s
  yuminstall mysql
8 F/ Z' V- n7 ?% R  yum installmysql.i386
/ o" w! b0 W& l8 C3 f  验证在此Oracle地址计较机可以使用mysql呼吁毗连MySQL数据库:! L: e. X% h2 B  z2 C$ H6 ~
  mysql -h 192.168.1.1 -uroot -p mysql- ?: |$ O5 a6 A  {4 _% a$ [
  2, 搜检Oracle Database地址计较机是否已安装MySQLODBC客户端,而且x86_64和i386版本的都需要安装。
4 X+ D+ |! |% p. z  rpm -qa |grep mysql-connect如不美观没有安装mysql-connector-odbc,则用下面呼吁下载和安装mysql-connector-odbc:
9 n2 P1 s& M! }" F  yum installmysql-connector-odbc 因为膳缦沔呼吁没有安装i386版本,且yum list*.i386呼吁没有找到mysql-connector-odbc的i386版本,是以,需要经由过程直接下载获得此安装包:5 u1 C1 u: Q; v% P6 z
  wgetftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentOS/mysql-connector-odbc-3.51.12-2.2.i386.rpm) n8 w9 F3 ^% A3 V5 W2 q4 V
  执行下列呼吁: rpm -ivhmysql-connector-odbc-3.51.12-2.2.i386.rpm
# x9 d% j$ G% I3 n, Z4 Z9 m  获得提醒 libltdl.so.3 is needed bymysql-connector-odbc-3.51.12-2.2.i386,发现需要安装libtool的i386版本,是以经由过程如下呼吁安装libtool-ltdl.i386:* q* T) K8 S+ T& [! w- u
  yum list *.i386|greplibtool8 C6 B  G  z8 K2 I1 n
  yum install libtool-ltdl.i386+ b- M1 |' Q  S% S7 q" I  s
  3,在Oracle地址计较机编纂/etc/odbc.ini文件,测试ODBC工作8 F  n5 {& Z$ a' p) S3 H  r' Y$ i0 W
  vi/etc/odbc.ini8 e! [  O0 N( i; M! k9 g* P& I
  #odbc.ini内容如下* ]% @7 v. M  V# f! `8 I8 \
  [test]  L" d. P! v; w
  Driver=/usr/lib64/libmyodbc3.so
! r; a* Q' P1 _) |8 K1 B0 @  Description=MySQL
. P$ `# Q0 r/ h( u; @9 M. A3 ?  Server=192.168.1.1(MySQL处事器IP地址)
: ]* H# p2 S% f6 v) n# o  Port=3306# g# z! U1 K" Q* ]6 z
  User=MySQL中的用户名
6 R9 V! {- a! }" v  UID=MySQL中的用户名
) b# ^- P+ o* T' y2 x  Password= MySQL中的密码# B. p3 K$ n" t/ I+ A+ }- Q
  Database=MySQL中的数据库名1 r' J9 I' N9 T: c: @
  Option=3' _+ m0 m. T. Y) A/ P$ m
  Socket=
2 P: o; u3 w) c* b! _$ _  #odbc.ini内容竣事在呼吁行中执行下列呼吁,应能够顺遂登入MySQLClient窗口,即证实ODBC功能正常:
1 ?5 R8 [; R: M) a& ^  isql -v test& k( v$ j  Z6 @4 D' c# M9 }% ~: E: O
  quit (退出isql)
" x/ w" P$ L1 N2 L7 V; s( T  4, 编纂hs设置装备摆设文件 vi/ora10g/hs/admin/inittest.ora(注重文件名中蓝色部门为odbc.ini中蓝色名称)
0 f% P: K- H! O) z+ {  HS_FDS_CONNECT_INFO= test
7 Q6 N& J9 \6 Y' y+ m  HS_FDS_TRACE_LEVEL =on(正式使用后,不需要排错的时辰应设为off)4 F6 e: F3 m" p* a
  HS_FDS_TRACE_FILE_NAME =test.trc
6 r" }  ?! s& f  HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so
  o5 S/ o) D- O& e. r: ]# e* e  setODBCINI=/etc/odbc.ini
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:07 | 显示全部楼层

Oracle认证:通过DBLink访问MySQL数据

  5, 编纂Oracle地址计较机的Oracle listener的设置装备摆设文件,成立一个模拟OracleListener的监听体例,为未来成立dblink做筹备:
0 i5 i# b6 ]7 B- D4 ~; y+ ^( C  G  vi /ora10g/network/admin/listener.ora插手如下语句:(SID_DESC = (SID_NAME = test)
- x/ V# ]+ u% g4 T7 E  (ORACLE_HOME = /ora10g)
4 ?& w4 c. ?8 m2 W4 v6 |  (PROGRAM =hsodbc)# i; S6 O7 g/ [! \
  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib))6 `# _8 U1 O9 r) }
  listener.ora文件此刻的内容酿成:
3 k( ~" K& N/ d8 e, l! I6 C  SID_LIST_LISTENER = (; ?' Q. @( T/ l) ~9 g8 f: H
  SID_LIST=
7 F4 H$ A/ B$ X9 o  (SID_DESC = (ORACLE_HOME = /ora10g)
/ k9 z# ^8 @0 c$ k0 _$ T  (PROGRAM =extproc)7 ~8 i' l5 \9 E0 N' v) G, p
  (GLOBAL_DBNAME=prod)" O3 D: Y: N2 t4 c" E
  (SID_NAME=prod)
, g+ I2 B4 S7 @7 X  )/ F7 ]9 z: i, @6 j) r
  (SID_DESC = (SID_NAME = test)& |, ~* N/ R- D
  (ORACLE_HOME = /ora10g)
& \" y$ z5 z5 f5 C8 G& y6 N( g7 H% A  (PROGRAM = hsodbc)
' A9 L6 v- C) ]. X: a  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib))1 _. s3 N7 h5 A" P' w
  )& U/ B; ], C* f# @: s* k. w0 e
  LISTENER = (' q5 b+ f* N; l3 @
  DESCRIPTION_LIST =
6 c* U7 C/ c6 x9 |/ B; E' B  (DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
6 @5 j' y" s1 P  (ADDRESS =(PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) )
' T0 O$ N; T: A% J! T  ); K3 l9 B  R% v: U& e5 t7 o
  以上工作完成后,执行lsnrctlreload呼吁使新设置装备摆设生效:su – oracle
) j4 c! D  q9 D! D$ W  lsnrctl reload
- g4 q% o( ?# J2 N8 _: O: g' Z  LSNRCTL for Linux: Version10.2.0.4.0 - Production on 09-FEB-2009 13:59:38 Copyright (c) 1991, 2007,Oracle.4 J" S0 O! k9 u  ], l2 p
  All rights reserved. Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
4 E- l, E# b( `! E; ^8 m, z  The command completedsuccessfully5 _9 n% n- Q3 _7 Y9 d2 Q; }4 d
  lsnrctl status3 y  B5 g$ q3 s7 i3 k1 g+ q% `
  LSNRCTL for Linux: Version 10.2.0.4.0 -Production on 12-FEB-2009 08:56:00* m3 P# P' _- Y# C9 J
  Copyright (c) 1991, 2007,Oracle. All rights reserved.( O- S$ W# F2 s6 v: q  u1 R* E
  Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))( P" E) }# J+ a9 i1 U# I1 ^6 U
  STATUS of theLISTENER
2 k' f0 Z; ]! D( Q/ v5 n$ n/ O0 f. l  ------------------------% H9 t. x( m9 t$ b* g) r
  AliasLISTENER# F6 V$ F5 u6 q/ l6 R2 K% G( M
  Version TNSLSNR for Linux: Version 10.2.0.4.0 -Production
& [. c) X" I5 R! n( L  Start Date 03-JAN-2009 03:47:39" y" \: X5 B9 [( r5 ?# k" ?
  Uptime40 days5 hr. 8 min. 20 sec
' h% e' o% P" o# y  Trace Level off
. |& B8 |+ F& e+ o5 q/ d6 `  SecurityON: Local OSAuthentication
2 X% Q: h) H3 n2 c! D. {9 j  SNMP OFF6 z: ]$ Q' j, b$ p2 E
  Listener Parameter File /ora10g/network/admin/listener.ora+ n' D1 N# f& _) r; G
  Listener Log File/ora10g/network/log/listener.log
% j/ \; i" r  _  Listening EndpointsSummary...3 z" v8 h1 q$ {# K. I$ b
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))) c6 O  f. Z  t/ e
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))* v3 i2 v6 ^, `7 `* D! _- U
  ServicesSummary...
4 a$ P* Q, h: Q2 ?( w* h  Service "PLSExtProc" has 1 instance(s).
; d2 j* g- i1 g( r0 O8 r7 S  Instance "PLSExtProc",status UNKNOWN, has 1 handler(s) for this service...
6 q+ p! z( o5 {. o6 y  Service "test" has 1instance(s).6 E6 E- J4 ?+ p( Y- J# d% X: ^
  Instance "test", status UNKNOWN, has 1 handler(s) for thisservice...
6 w0 u: e, q, J7 y9 }% L  The command completed successfully
  z' M) h/ F- z, C  Y  6, 编纂OracleDatabase地址计较机中的tnsnames.ora文件,便于成立dblink,注重,此tnsnames的设置装备摆设可以撑持tnsping,可是不能撑持sqlplus登录,只用于dblink:
. L5 g$ W! S# m( M, n: B  vi/ora10g/network/admin/tnsnames.ora
: t+ I0 j. r! o! I8 D  ?  mypts =( r; R! {; T! u; d  y9 \' q
  (DESCRIPTION =
; z9 ~, d# P7 P! N6 `3 e2 g% R  (ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
; M$ O. W( D$ S) ]1 a  z  (CONNECT_DATA =http://www.qnr.cn/pc/ora/study/200902/8 M; I% v4 V( h$ e# D3 b0 v# c
  (SID= test)
; @5 ?" h5 c/ F8 u+ q; I  )) M4 E6 ?4 n7 q( @
  (HS = OK)7 v0 v  ~3 W; W; z) x
  )
4 U6 F5 _0 W+ x" f  7, 在Oracle Database成立dblink:
. m% B+ m' z7 g. M  createpublic database link MYSQL6 I3 B, }4 `/ ~5 a: g# \
  connect to "mysql username" identified by "mysqlpwd"
; A$ ^" o- I3 C! S% {# o  using '(DESCRIPTION =% N4 q  t  a( ~) Q3 p
  (ADDRESS = (PROTOCOL = TCP) (HOST =127.0.0.1) (PORT =1521) )) @+ y% ~# b& {' B- Y# U1 H7 _
  (CONNECT_DATA = http://www.qnr.cn/pc/ora/study/200902/(SID= test)). x) }' N" f" E4 U* t/ z4 B4 ^
  (HS=OK)
3 d: R1 t; s: q0 T; ?  )';
8 w  z! _2 K0 Y0 D. S  要注重用户名和密码处需要用双引号扩起来,否则Oracle所传输的都是年夜写字母,可能无法登录进入MySQL。* E4 D2 b2 w' w, r
  8,因为MySQL中的表名的巨细写敏感,是以需要在进行SQL发芽时对表名用双引号扩起来,或者在成立MySQL库时就将所有表名都设为年夜写的也可以 select *from
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-2 06:30 , Processed in 0.196133 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表