Linux下配置ORACLE-MYSQL 資料庫異構
今天想在Linux配置下oracle到mysql的異構實現,做筆記以記之。
首先安裝odbc(引用自網路):
方法一:
先最新的unixODBC原始碼包()放到/usr/local下,然後執行下述命令:
tar zxvf unixODBC-2.2.1.tar.gz
cd unixODBC-2.2.1
./configure --prefix=/usr/local/unixODBC-2.2.1 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
make
make install
安裝成功後,unixODBC所需的標頭檔案都被安裝到了/usr/inlucde下,編譯好的庫檔案安裝到了/usr/lib下,與unixODBC相關的可執行檔案安裝到了/usr/bin下,配置檔案放到了/etc下。
方法二:
rpm包進行安裝,我們這裡以Red Hat 7.3為例:
unixODBC-2.2.0-5 RPM for i386(安裝包及原始碼包)
(ftp://speakeasy.rpmfind.net//redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-2.2.0-5.i386.rpm、ftp://ftp.rpmfind.net//redhat/7.3/en/os/i386/SRPMS/unixODBC-2.2.0-5.src.rpm)
unixODBC-devel-2.2.0-5 RPM for i386
(ftp://speakeasy.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-devel-2.2.0-5.i386.rpm)
直接將unixODBC-2.2.0-5.i386.rpm和unixODBC-devel-2.2.0-5.i386.rpm裝入系統就可以了,命令如下:
rpm -ivh unixODBC-2.2.0-5.i386.rpm
rpm -ivh unixODBC-devel-2.2.0-5.i386.rpm
安裝好以後,所需的各個部分與上面所列的位置相同。
三、 Linux/Unix下ODBC的配置:
執行ODBCConfig程式(在/usr/bin下),
和Windows下的ODBC設定視窗是不是很像?我想大家都能看懂吧。
第一步:安裝資料庫的ODBC驅動程式
Drivers這一欄中用來設定資料庫的驅動程式,點選Add按鈕,
Name一欄填入資料庫驅動的名稱,Description是資料庫驅動的描述,Driver是用來選擇資料庫驅動程式的,Setup是用來選擇資料庫驅動安裝程式的,如果你是按照上述安裝方法安裝的,這些程式都放在/usr/lib下,下面是資料庫驅動程式的列表:
資料庫 資料庫驅動程式 資料庫驅動安裝程式
TXT libodbctxt.so libodbctxtS.so
NNTP libnn.so libodbcnnS.so
MiniSQL libodbcmini.so libodbcminiS.so
PostgreSQL libodbcpsql.so libodbcpsqlS.so
MySQL (註釋) libodbcmyS.so
Sybase/MS SQL (註釋) libtdsS.so
(註釋) liboraodbcS.so
註釋:
MySQL、Sybase/MS SQL和Oracle的資料庫驅動可以在下列網址找到:
MySQL
Sybase/MS SQL
Oracle
MySQL的驅動程式MyODBC-2.50.39-4 RPM for i386以及原始碼包:
ftp://speakeasy.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/MyODBC-2.50.39-4.i386.rpm
ftp://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/SRPMS/MyODBC-2.50.39-4.src.rpm
選擇好驅動程式之後,點選"√"儲存退出。
第二步:設定DSN
DSN分為User DSN、System DSN和File DSN三種,我們以System DSN為例。選中System DSN一欄以後,點選Add…
列表中會列出你已經安裝好的資料庫驅動程式,我這裡只裝了MySQL和PostgreSQL,然後選擇你所要使用的驅動程式,然後點選OK
我這裡使用的是MySQL的資料庫驅動,不同的資料庫,這個視窗的內容會有所不同。Name是資料來源的名稱,Description是描述,Server可以選擇伺服器,如果本機啟動了MySQL就可以選擇localhost,如果Port和Socket有特殊要求,再根據實際情況進行修改,Database是用來選擇資料庫的,下拉選單不一定包含所有的資料庫,你可以把自己已經建立好的資料庫名稱填寫在這裡。都配置好之後,點選"√"儲存退出。
這樣Linux/Unix下的ODBC資料來源就已經設定好了,大家還可以在ODBCConfig程式的Status欄中檢視ODBC的使用情況,在Advanced欄中設定是否做日誌或者啟動連線池,在About欄中,有一個Linux/Unix ODBC的示意圖,在Credits按鈕中可以看到所有開發者的名字的列表。 ODBCConfig程式中所有有關資料庫驅動程式的資訊被放在odbcinst.ini(在/etc下)檔案中,有關DSN的資訊被放在odbc.ini(在/etc下)檔案中,大家有興趣的話,可以自己去觀察一下。
第三步:使用DataManager程式瀏覽資料庫
執行DataManager程式之後就可以檢視Drivers、System DSN和User DSN這幾項內容,,在瀏覽資料庫的時候,可以在右面的SQL欄中輸入SQL語句,然後點選人形按鈕就可以執行SQL語句,執行結果會在Results一欄中顯示出來,
第四步:使用isql程式檢視資料庫
unixODBC還提供了命令臺下檢視資料庫的程式,這就是isql,用法如下:
isql DSN [UID [PWD]] [options]
DSN 資料來源名稱
UID 使用者ID
PWD 使用者密碼
Options:
-b 批處理,沒有提示符的模式
-dx 設定列之間的分隔符為x
-w 將查詢結果輸出為HTML格式
-c 第一行輸出列名
--version 輸出isql的版本號
以上工作完成後我們就可以配置oracle的ODBC異構了,
具體操作步驟:
cd $ORACLE_HOME/hs/admin
[oracle@localhost admin]$ cp inithsodbc.ora initmysqls.ora
[oracle@localhost admin]$ more initmysqls.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO =
HS_FDS_TRACE_LEVEL =
HS_FDS_SHAREABLE_NAME =
#
# ODBC specific environment variables
#
set DBCINI=
#
# Environment variables required for the non-Oracle system
#
set
[oracle@localhost admin]$
[oracle@localhost admin]$
[oracle@localhost admin]$
[oracle@localhost admin]$ vi initmysqls.ora
[oracle@localhost admin]$ more initmysqls.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = mysqls
HS_FDS_TRACE_LEVEL = 0
HS_FDS_SHAREABLE_NAME = /usr/lib/libodbc.so
HS_FDS_TRACE_FILE_NAME = /tmp/hsodbcsql.trc
#
# ODBC specific environment variables
#
#set DBCINI=
#
# Environment variables required for the non-Oracle system
#
#set
[oracle@localhost admin]$
[oracle@localhost admin]$ cd /u01/app/oracle/network/admin/
[oracle@localhost admin]$ more listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = crmdb)
(ORACLE_HOME = /u01/app/oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = mysqls)
(ORACLE_HOME = /u01/app/oracle)
(PROGRAM = hsodbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
[oracle@localhost admin]$ ]
[oracle@localhost admin]$ tail -n 10 tnsnames.ora
mysqls=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SID = mysqls)
)
(HS = ok)
)
[oracle@localhost admin]$ sqlplus scott/tiger
SQL> create public database link mysqls connect to "root" identified by "qinqiang" using 'mysqls';
select * from
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][C077] Could not find symbol 'SQLAllocConnect'
in dynamic library
[C079] Failed to load dynamic library
'/tmp/mysql-connector-odbc-5.1.6-linux-glibc2.3-x86-32bit/lib/libmyodbc5-5.1.6.s
o'
ORA-02063: preceding 3 lines from MYSQLS
注:這個問題是因為前面的HS_FDS_SHAREABLE_NAME這個引數就要設定成/use/lib/libodbc.so這個動態庫。修改完後再重啟監聽就OK了
SQL> select * from ;
D
-
X
轉載請註明出處,謝謝!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-628294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 配置ORACLE資料庫到達夢資料庫的異構DBLINKOracle資料庫
- 異構資料庫訪問資料庫
- 異構資料庫之間資料作業資料庫
- 在Linux異構網路中備份MYSQL資料庫(轉)LinuxMySql資料庫
- Linux下mysql資料庫一主一從同步配置LinuxMySql資料庫
- 9、Linux下mysql資料庫安裝與配置實操LinuxMySql資料庫
- 摩杜雲資料庫MySQL,破解異構資料庫遷移難題資料庫MySql
- 利用VC++獲取異構型資料庫庫結構資訊 (轉)C++資料庫
- 異構資料庫間批量表快速複製資料庫
- SQLServer 異構資料庫之間資料的匯入匯出SQLServer資料庫
- 多個異構資料庫如何關聯查詢資料庫
- TiDB 異構資料庫複製最佳實踐TiDB資料庫
- 異構資料庫遷移 sql等價改寫資料庫SQL
- 使用SQL Developer 遷移異構資料庫到OracleSQLDeveloper資料庫Oracle
- 配置達夢資料庫同構DBLINK資料庫
- Linux下安裝Mysql資料庫LinuxMySql資料庫
- 異質資料庫鍊資料庫
- Oracle資料庫同平臺與異構平臺下的表空間傳輸Oracle資料庫
- Arm架構下麒麟作業系統安裝配置Mariadb資料庫架構作業系統資料庫
- 資料庫配置資料庫
- 從 SQL Server 到 MySQL (一):異構資料庫遷移ServerMySql資料庫
- 異構資料庫遷移工具 - Oracle SQL Developer Migrations資料庫OracleSQLDeveloper
- 【配置上線】Oracle資料庫Linux系統下安裝(圖形介面)Oracle資料庫Linux
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- Linux系統下資料庫有哪些?Linux資料庫
- 刪除linux下的oracle資料庫LinuxOracle資料庫
- linux下oracle資料庫的安裝LinuxOracle資料庫
- CentOS下Mysql資料庫的安裝與配置CentOSMySql資料庫
- oracle透明閘道器之異構資料庫的訪問Oracle資料庫
- 11g RMAN新特性active database duplicate 資料庫異構Database資料庫
- 異構資料庫系統遷移到Oracle 工具 - Oracle SQL Developer資料庫OracleSQLDeveloper
- 比較兩個資料庫的表結構差異(轉)資料庫
- 關於ORACEL與異構資料庫之間建立dblink資料庫
- 織夢資料庫配置檔案修改資料庫配置方法資料庫
- Jira資料庫配置資料庫
- jive資料庫配置資料庫
- 配置session——資料庫Session資料庫
- Oracle資料庫配置Oracle資料庫