a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 169|回复: 1

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

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
测试情形:CentOS5-X64, Oracle10g_X64, MySQL5。
/ [/ G, y. ~$ i7 }! I8 s  把一些经验分享给巨匠!. g. ?) {! c, {; u& v3 |/ j
  1,首先在Oracle地址计较机安装MySQL的Client端软件,而且x86_64和i386版本的都需要安装,以便可以毗连MySQL数据库,rpm -qa|grepmysql
8 M! R4 l. q) Q+ B  s3 g5 i+ X6 `/ J1 x  mysql-5.0.45-7.el53 s) x; @$ b9 C" |) k
  mysql-5.0.45-7.el5- V& H0 U# m! r4 c8 d$ t( I
  获得两标识表记标帜录,一条是x86_64的,一条是i386的。
3 g9 S0 c! ~; E; t  如不美旁观到还没有安装mysql客户端软件,则需要安装mysql客户端软件:
  }! t* l+ ^* X! E3 }* ~0 K* n$ `$ u  yuminstall mysql9 ?4 K) y# X1 @
  yum installmysql.i386
6 Y2 x. S1 r# F  验证在此Oracle地址计较机可以使用mysql呼吁毗连MySQL数据库:
2 d, L* P+ ~$ ^6 ]) g5 w8 ?  mysql -h 192.168.1.1 -uroot -p mysql6 J: G) V" T, Q: n0 _4 {
  2, 搜检Oracle Database地址计较机是否已安装MySQLODBC客户端,而且x86_64和i386版本的都需要安装。5 {7 G8 i6 q! A) ^" d
  rpm -qa |grep mysql-connect如不美观没有安装mysql-connector-odbc,则用下面呼吁下载和安装mysql-connector-odbc:9 x# `+ W' \* O
  yum installmysql-connector-odbc 因为膳缦沔呼吁没有安装i386版本,且yum list*.i386呼吁没有找到mysql-connector-odbc的i386版本,是以,需要经由过程直接下载获得此安装包:
+ B, N6 T8 E+ v/ ]& H$ [$ Y8 R( p5 m  wgetftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentOS/mysql-connector-odbc-3.51.12-2.2.i386.rpm$ w* \+ Z5 A5 a: C
  执行下列呼吁: rpm -ivhmysql-connector-odbc-3.51.12-2.2.i386.rpm$ f. |) _$ l# x, m* Y+ V; C5 f
  获得提醒 libltdl.so.3 is needed bymysql-connector-odbc-3.51.12-2.2.i386,发现需要安装libtool的i386版本,是以经由过程如下呼吁安装libtool-ltdl.i386:6 k: C) R, P9 R$ y, j" w
  yum list *.i386|greplibtool
/ r9 P- ?; Z3 B2 K6 }+ ?0 ^  yum install libtool-ltdl.i386! U. \+ K+ ^9 M! \
  3,在Oracle地址计较机编纂/etc/odbc.ini文件,测试ODBC工作" t0 c# a# b  C( P) o
  vi/etc/odbc.ini9 L% C9 S3 P! q1 E
  #odbc.ini内容如下
4 f! d1 h: W) `: r- p0 c1 ?  [test]: A9 r( I( X0 f$ ~6 Y
  Driver=/usr/lib64/libmyodbc3.so* w; \2 l3 Y3 U% J* N8 [5 p4 m
  Description=MySQL
8 b: ]+ |) k0 R2 x* v1 l  Server=192.168.1.1(MySQL处事器IP地址)
' v% U; n6 z5 ~9 e  Port=33069 S) h$ q! q8 F! e" Z- K2 f% \
  User=MySQL中的用户名- V6 B/ @* d# {4 d
  UID=MySQL中的用户名
" ~( l2 I, Q9 p4 \% O: X  Password= MySQL中的密码
% T! X* F, f9 U) @4 @: {  Database=MySQL中的数据库名
& n3 V* ?' f' L6 {  Option=3
0 ~' S5 {+ n  E0 Z& V: j4 V  u  Socket=
; r* Q7 Q$ P: R  #odbc.ini内容竣事在呼吁行中执行下列呼吁,应能够顺遂登入MySQLClient窗口,即证实ODBC功能正常:
3 E5 r. H, g, u1 h, o  isql -v test. t/ d/ I- U& h, H' I* i- E3 G
  quit (退出isql)( d5 |6 F3 |/ `
  4, 编纂hs设置装备摆设文件 vi/ora10g/hs/admin/inittest.ora(注重文件名中蓝色部门为odbc.ini中蓝色名称)
! `  B4 a6 [! C+ z8 b  HS_FDS_CONNECT_INFO= test, {$ `8 d2 z% L3 J
  HS_FDS_TRACE_LEVEL =on(正式使用后,不需要排错的时辰应设为off)
- S' S' Q  M* ~+ D" _' h$ J, v  HS_FDS_TRACE_FILE_NAME =test.trc1 f, p3 z% S' h' O6 o$ |4 [# W
  HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so6 i. x1 Z' `6 h+ u$ L9 o+ ^  }
  setODBCINI=/etc/odbc.ini
回复

使用道具 举报

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

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

  5, 编纂Oracle地址计较机的Oracle listener的设置装备摆设文件,成立一个模拟OracleListener的监听体例,为未来成立dblink做筹备:
3 M# B* f. B  G7 \, K2 w  vi /ora10g/network/admin/listener.ora插手如下语句:(SID_DESC = (SID_NAME = test)
5 i4 D, H6 o4 o. I8 S6 B3 {  (ORACLE_HOME = /ora10g)5 q) n7 B5 k, `1 L3 C* \8 w
  (PROGRAM =hsodbc)( m' H2 f: R% V! n! ~
  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib))! ^/ p! C3 t9 _
  listener.ora文件此刻的内容酿成:
' i& N& |6 c. c8 R% |  SID_LIST_LISTENER = (- A9 U0 g  O  K
  SID_LIST=
8 z3 U' q4 X4 ]" B1 P" b  (SID_DESC = (ORACLE_HOME = /ora10g)+ W- K* U# _+ P+ p. Q" I4 f: v
  (PROGRAM =extproc)
. X  M1 p  p0 }  (GLOBAL_DBNAME=prod). H: V: A4 p: [" e" T6 G
  (SID_NAME=prod)
: k3 X+ n9 Y4 l4 v, Q& b  )' R# i" ^7 w7 E4 B
  (SID_DESC = (SID_NAME = test)7 @2 Q; z" ~) W! T! M; P1 k
  (ORACLE_HOME = /ora10g)) r' ]0 H; v; i/ T6 k
  (PROGRAM = hsodbc)4 q& B( j$ }' s* `3 O
  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib))
# q, d) k" E. }  )
1 }! v) O2 O( S8 Z: H  LISTENER = (2 A2 J7 V. q3 D( M1 i' u
  DESCRIPTION_LIST =
' F. P9 R7 j5 P: b) a; l. B  (DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
7 E8 B4 o* F1 D6 E& e9 }  (ADDRESS =(PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) )( P5 {/ H1 P% }+ D. o9 _
  )0 J5 y) L6 ~/ L1 s) g
  以上工作完成后,执行lsnrctlreload呼吁使新设置装备摆设生效:su – oracle
( a3 W- z9 w3 T* T0 e% e  C/ c3 ]  lsnrctl reload$ o2 R7 k' t5 G8 h
  LSNRCTL for Linux: Version10.2.0.4.0 - Production on 09-FEB-2009 13:59:38 Copyright (c) 1991, 2007,Oracle.
  S: [# U, {; w2 n4 l. U+ q  All rights reserved. Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))), Z; K  d6 q  I" o  X
  The command completedsuccessfully
' X1 m5 [! f: X+ e3 L7 S3 B  lsnrctl status# i! T1 m& M& j
  LSNRCTL for Linux: Version 10.2.0.4.0 -Production on 12-FEB-2009 08:56:00/ X0 W( d  p- g
  Copyright (c) 1991, 2007,Oracle. All rights reserved.
. K# s# F" R* z  Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
/ @9 O' @0 s2 O5 N- S  STATUS of theLISTENER& d- `+ C& Y/ V2 S' @5 M
  ------------------------9 s4 }' V. N6 K  m, }
  AliasLISTENER1 G1 K5 d6 M6 h5 Q) b! {3 A
  Version TNSLSNR for Linux: Version 10.2.0.4.0 -Production
! }( b4 R4 s! y" a. e) o0 i  Start Date 03-JAN-2009 03:47:394 ~" d4 n. E' S5 m8 x6 Z0 Y7 S$ D
  Uptime40 days5 hr. 8 min. 20 sec. r! ~% q, P& o- m
  Trace Level off: |2 n0 j+ f3 t& c& P
  SecurityON: Local OSAuthentication( q- Z7 z  M4 @; X7 C3 d0 F
  SNMP OFF& N! w9 \; U  \6 l8 [" y5 d, E
  Listener Parameter File /ora10g/network/admin/listener.ora
; s. c  |' a' b% N  Listener Log File/ora10g/network/log/listener.log
" q9 Z# \  [- U  Listening EndpointsSummary...
# c, w; j( [7 }4 e) P% N  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))" K+ j. K4 x" t2 ^7 `% B! I6 Z
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))1 k+ d5 X7 O, H$ }4 q
  ServicesSummary...
- }9 U" P5 H& K2 q: {  Service "PLSExtProc" has 1 instance(s).6 w2 k& n  v3 ?& \0 @; e
  Instance "PLSExtProc",status UNKNOWN, has 1 handler(s) for this service...0 J! r7 ]  i; B, Q1 G" W7 \9 u
  Service "test" has 1instance(s).% W) e/ e) J( y
  Instance "test", status UNKNOWN, has 1 handler(s) for thisservice...
( P! k) f6 S! x' z& C5 l: x8 l  The command completed successfully
( c% F' d  P) u0 J' m  h: `  k  6, 编纂OracleDatabase地址计较机中的tnsnames.ora文件,便于成立dblink,注重,此tnsnames的设置装备摆设可以撑持tnsping,可是不能撑持sqlplus登录,只用于dblink:
+ R' r/ ]& K  B2 m: Z$ V% n  vi/ora10g/network/admin/tnsnames.ora
8 e& ^, g0 q7 `; u  mypts =
  y; b3 r  B0 L- s# ]  (DESCRIPTION =
6 e$ d, e6 E) T7 {3 L' A6 T# p3 a  (ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))3 L6 S- d: ]9 O) n/ d
  (CONNECT_DATA =http://www.qnr.cn/pc/ora/study/200902/
/ Y& |/ C3 h4 I4 `6 t9 x, E  (SID= test)
: }9 ^" c+ z8 U* ?$ I* X  )7 `8 k$ H3 p+ x* e
  (HS = OK)/ w- e2 Y4 u0 h- W
  )
$ p: ~7 ]/ t7 p9 l  7, 在Oracle Database成立dblink:
9 N- v. ~4 x& z7 G, H  I  createpublic database link MYSQL
8 T7 |) X0 ~9 y% |% ]  connect to "mysql username" identified by "mysqlpwd"% ^# K* w$ k2 L+ J
  using '(DESCRIPTION =
9 c# b8 \8 a( B+ Z4 e  (ADDRESS = (PROTOCOL = TCP) (HOST =127.0.0.1) (PORT =1521) )4 r5 Z  [6 ]. Z; R$ a+ I
  (CONNECT_DATA = http://www.qnr.cn/pc/ora/study/200902/(SID= test))) d. [( a) E4 W- F2 ]* v
  (HS=OK)7 @1 o: V- L0 t6 o8 U# J2 ?
  )';6 n% O: `% y  z. ?& f% F# W
  要注重用户名和密码处需要用双引号扩起来,否则Oracle所传输的都是年夜写字母,可能无法登录进入MySQL。2 }/ F0 B$ J8 X6 A/ I
  8,因为MySQL中的表名的巨细写敏感,是以需要在进行SQL发芽时对表名用双引号扩起来,或者在成立MySQL库时就将所有表名都设为年夜写的也可以 select *from
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-26 23:53 , Processed in 0.907789 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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