摘自:http://blog.chinaunix.net/u/1751/showart_255590.html
Oracle Database GateWay
--------------------------------------------------------------------
目地: Linux平台下建立Oracle透明數據網關,訪問MySQL
測試環境說明:
操作平台: Debian Linux(Testing)
Oracle Database GateWay Version : Oracle 10g (172.17.94.247)
GCC : gcc-3.4
MySQL: 5.0 (172.17.94.9)
Oracle Database : 8.17 (172.17.94.3)
數據走向說明: Client <---> Database <---> GateWay <---> MySQL
使用者 94.93 94.247 94.9
-----------------------------------------------------------------------------
說明:本文檔操作步驟實施成功. 系統環境如上說明.
不同Linux版本可能稍有不同. 如可能需要到網上搜尋unixodbc,mysql Driver,然後自行編譯等.
以下除非特別說明,操作都是位於數據網關(172.17.94.247)
-----------------------------------------------------------------------------
1 . 確認,測試MySQL,Oracle數據庫工作正常.
數據網關服務器Mysql客運端已經授權連接.
Debian Linux安裝Oracle 10g需要用以下方式指明忽略操作系統檢查.
./runInstaller -ignoreSysPrereqs
2 . 檢查hsodbc是否正確安裝. Linux下9i以上確定支持.
Oracle 10g for Linux有個安裝bug.需要以下操作修改.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
ln -s /usr/bin/basename /bin/basename
ln -s $ORACLE_HOME/lib/libclient10.a $ORACLE_HOME/lib/libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0
檢查
$ORACLE_HOME/bin/hsodbc ,輸出內容類似如下,為正確.
Oracle Corporation --- 星期二 2月 13 2007 22:29:31.461
Heterogeneous Agent Release 10.2.0.1.0 - Production Built with
Driver for ODBC
3. 安裝unixodbc
aptitude install unixodbc
4. 安裝注冊MySQL的odbc驅動.
aptitude install libmyodbc
5. 配置,測試odbc連接MySQL.
cp /usr/share/doc/libmyodbc/examples/odbc.ini /etc/
修改成如下.host, user,pass需視實際情況修改
[ODBC Data Sources]
myodbc3 = MySQL ODBC 3.51 Driver DSN
[myodbc3]
Driver = MySQL3
Description = MySQL ODBC 3.51 Driver DSN
Server = 172.17.94.9
Port =
User = user
Password = pass
Database = drupal
Option = 3
Socket =
測試:
isql myodbc3 user pass
select uid,pass,name from users ;
確認測試連接成功.
6.建立配置文檔. $ORACLE_HOME/hs/admin/initmyodbc3.ora
HS_FDS_CONNECT_INFO = myodbc3
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME = /usr/lib/odbc/libmyodbc.so
7. 修改listener.ora
新增以下監聽服務
(SID_DESC =
(PROGRAM = hsodbc)
(ORACLE_HOME =/app/oracle/product/10.2.01 )
(SID_NAME = myodbc3)
)
8. 在94.3數據庫服務器配置別名.
HSODBC.yydg.com.cn =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.94.91)(PORT = 1521)
)
)
(CONNECT_DATA = (SID= myodbc3) )
(HS=OK)
)
9. 在94.3建立DataBase LINK
Create [ public ] Database Link testdb.yydg.com.cn connect to user identified by
password using 'hsodbc.dg.com.cn' ;
--public是可選的 表示公共dblink
10 測試Dblink是否可用.
select "uid","name","pass" from "users"@testdb.yydg.com.cn ;
由於異構數據庫平台的差異,某些數據對像可能需要用雙引號指明.
感謝,在本次測試中輸出正確資料. Oracle連接MySQL測試成功.
11. Over
Create Date : 2007-02-13
Write :阿飛
沒有留言:
張貼留言