Oracle 10g DBLink 를 통 해 MySQL 예제 에 접근

6324 단어 oracle10gemail
1.먼저 Oracle 이 있 는 컴퓨터 에 MySQL 의 Client 엔 드 소프트웨어 를 설치 하고 x86MySQL 데이터 베 이 스 를 연결 할 수 있 도록 64 버 전과 i386 버 전 을 설치 해 야 합 니 다.클 라 이언 트 설치 상황 보기:

rpm -qa |grep mysql
mysql-5.0.45-7.el5
mysql-5.0.45-7.el5
두 개의 기록 을 얻 었 습 니 다.하 나 는 x86 입 니 다.64 의 하 나 는 i386 의 것 이다.my sql 클 라 이언 트 소프트웨어 가 설치 되 어 있 지 않 은 것 을 보면 설치 해 야 합 니 다.

yum install mysql
yum install mysql.i386
이 Oracle 이 있 는 컴퓨터 가 대상 호스트 인 MySQL 데이터 베 이 스 를 연결 할 수 있 는 지 검증 해 야 합 니 다.

mysql -h 192.168.1.1 -u root -p mysql
2.Oracle 이 있 는 컴퓨터 에 MySQL ODBC 클 라 이언 트 가 설치 되 어 있 는 지 확인 하고 x8664 버 전과 i386 버 전 모두 설치 해 야 합 니 다.

rpm -qa |grep mysql-connect
mysql-connector-odbc 가 설치 되 어 있 지 않 으 면 아래 명령 으로 다운로드 하고 설치 합 니 다.mysql-connector-odbc 다운로드:

wget ftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentO S/mysql-connector-odbc-3.51.12-2.2.i386.rpm
mysql-connector-odbc 설치:

rpm -ivh mysql-connector-odbc-3.51.12-2.2.i386.rpm
알림 받 기

libltdl.so.3 is needed by mysql-connector-odbc-3.51.12-2.2.i386 , libtool i386 , libtool-ltdl.i386:
yum list *.i386|grep libtool
yum install libtool-ltdl.i386
3.Oracle 이 있 는 컴퓨터 에서/etc/odbc.ini 파일 을 편집 하고 ODBC 작업 테스트

vi /etc/odbc.ini
\#odbc.ini 내용 은 다음 과 같 습 니 다

[test]
Driver=/usr/lib64/libmyodbc3.so
Description=MySQL
Server=192.168.1.1(MySQL Server IP)
Port=3306
User= (MySQL Username)
UID= (MySQL Username)
Password= (MySQL PWD)
Database= (MySQL Database Name)
Option=3
Socket=
명령 행 에서 다음 명령 을 수행 합 니 다.MySQL Client 창 에 순조롭게 로그 인 할 수 있어 야 합 니 다.즉,ODBC 기능 이 정상 임 을 증명 합 니 다.

isql -v test
quit
4,hs 프로필 vi/ora 10g/hs/admin/inittest.ora 편집(파일 이름 의 파란색 부분 은 odbc.ini 의 파란색 이름 임 을 주의 하 십시오)

HS_FDS_CONNECT_INFO = test
HS_FDS_TRACE_LEVEL = on( , off)
HS_FDS_TRACE_FILE_NAME = test.trc
HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so
set ODBCINI=/etc/odbc.ini
5.Oracle 이 있 는 컴퓨터 의 Oracle listener 설정 파일 을 편집 하고 Oracle Listener 를 모 의 감청 방식 을 구축 하여 앞으로 dblink 를 구축 할 준 비 를 합 니 다.
vi/ora 10g/network/admin/listener.ora 는 다음 과 같은 문 구 를 추가 합 니 다.

(SID_DESC =
   (SID_NAME = test)
   (ORACLE_HOME = /ora10g)
   (PROGRAM = hsodbc)
   (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib)
)
listener.ora 파일 의 현재 내용 은:

SID_LIST_LISTENER = (
     SID_LIST =
        (SID_DESC =
           (ORACLE_HOME = /ora10g)
           (PROGRAM = extproc)
           (GLOBAL_DBNAME=prod)
           (SID_NAME=prod)
         )
        (SID_DESC =
                  (SID_NAME = test)
                  (ORACLE_HOME = /ora10g)
                  (PROGRAM = hsodbc)
                  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib)
             )
)
LISTENER = (
     DESCRIPTION_LIST =
        (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
                                 (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) )
)
Listener 를 적용 하기 위해 lsnrctl reload 를 실행 합 니 다:

su C oracle
lsnrctl reload
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 09-FEB-2009 13:59:38 Copyright (c) 1991, 2007, Oracle.
All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
lsnrctl status
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-FEB-2009 08:56:00

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date                03-JAN-2009 03:47:39
Uptime                    40 days 5 hr. 8 min. 20 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /ora10g/network/admin/listener.ora
Listener Log File         /ora10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "test" has 1 instance(s).
  Instance "test", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

6.Oracle 이 있 는 컴퓨터 의 tnsnames.ora 파일 을 편집 하여 dblink 를 만 들 수 있 습 니 다.이 tnsnames 설정 은 tnsping 을 지원 할 수 있 지만 sqlplus 로그 인 은 지원 되 지 않 습 니 다.dblink:

vi /ora10g/network/admin/tnsnames.ora
test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SID = test)
    )
      (HS = OK)
  )
 
에 만 사 용 됩 니 다.
7.Oracle Database 에 dblink:

create public database link MYSQL
connect to "mysql username" identified by "mysql pwd"
using '(DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP) (HOST = 127.0.0.1) (PORT =1521) )
              (CONNECT_DATA = (SID= test) )
              (HS=OK)
           )';
를 만 들 려 면 사용자 이름과 비밀번호 에 더 블 따옴표 가 필요 합 니 다.그렇지 않 으 면 Oracle 이 전송 하 는 것 은 모두 대문자 로 MySQL 에 로그 인 할 수 없 을 수도 있 습 니 다.
8.MySQL 의 표 이름 의 대소 문자 가 민감 하기 때문에 SQL 조 회 를 할 때 표 이름 을 작은 따옴표 로 확대 해 야 합 니 다

select * from "tablename"@test
.

좋은 웹페이지 즐겨찾기