乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      實(shí)戰(zhàn)篇:Oracle 配置透明網(wǎng)關(guān)訪問(wèn) MySQL 詳細(xì)教程

       LuciferLiu 2021-12-10

      前言

      從 Oracle 無(wú)法直接訪問(wèn) Mysql 數(shù)據(jù)庫(kù),需要配置透明網(wǎng)關(guān)后通過(guò) DBLink 實(shí)現(xiàn)訪問(wèn)。

      今天搞了一下午透明網(wǎng)關(guān)配置,流程比較復(fù)雜,并且有一些坑,這不立刻來(lái)給大家排排坑,說(shuō)不定以后就用的著呢!

      廢話不多說(shuō),直接實(shí)戰(zhàn)走起~

      一、環(huán)境準(zhǔn)備

      本次環(huán)境準(zhǔn)備了 3 臺(tái)主機(jī),分別是 Oracle 數(shù)據(jù)庫(kù),MySQL 數(shù)據(jù)庫(kù),透明網(wǎng)關(guān)。

      • ?? Linux 主機(jī)安裝教程可參考:實(shí)戰(zhàn)篇:VMware Workstation 虛擬機(jī)安裝 Linux 系統(tǒng)
      • ?? Oracle 單機(jī)安裝教程可參考:實(shí)戰(zhàn)篇:Linux 安裝 Oracle 11GR2 數(shù)據(jù)庫(kù)保姆級(jí)教程
      • ?? Oracle RAC 安裝教程可參考:實(shí)戰(zhàn)篇:一步步教你 Linux 7 安裝 Oracle 11GR2 RAC
      • ?? Oracle 腳本一鍵安裝可參考:開(kāi)源項(xiàng)目:Install Oracle Database By Scripts!
      • ?? MySQL 安裝教程可參考:實(shí)戰(zhàn)篇:手把手教你Linux安裝Mysql(細(xì)致入微)

      ?? Oracle 安裝包合集和補(bǔ)丁下載地址:2021年Oracle第三季度補(bǔ)丁合集

      環(huán)境信息:

      用途主機(jī)名IP地址主機(jī)版本數(shù)據(jù)庫(kù)版本DB名稱端口號(hào)
      Oracle 數(shù)據(jù)庫(kù)orcl10.211.55.100RHEL7.611GR2orcl1521
      MySQL 數(shù)據(jù)庫(kù)mysql10.211.55.101RHEL7.68.0.26lucifer3306
      透明網(wǎng)關(guān)主機(jī)gateway10.211.55.102RHEL7.611GR2無(wú)1521

      為什么透明網(wǎng)關(guān)需要單獨(dú)配置一臺(tái)主機(jī)?

      • 不影響數(shù)據(jù)庫(kù)主機(jī)的正常運(yùn)行
      • 便于安裝配置以及管理
      • 數(shù)據(jù)庫(kù)遷移時(shí)不需要重新配置透明網(wǎng)關(guān)
      • RAC 環(huán)境下,無(wú)需重復(fù)安裝配置多個(gè)節(jié)點(diǎn)

      📢 注意: 透明網(wǎng)關(guān)主機(jī)的配置不需要很高,無(wú)需安裝 Oracle 數(shù)據(jù)庫(kù),僅安裝透明網(wǎng)關(guān)即可!

      二、實(shí)戰(zhàn)演示

      1、介質(zhì)裝備

      首先,需要下載 GateWay 和 MySQL ODBC安裝包:

      • mysql-connector-odbc-8.0.27-1.el7.x86_64.rpm
      • p13390677_112040_Linux-x86-64_5of7.zip

      方便大家學(xué)習(xí),我直接上傳到百度網(wǎng)盤(pán)供大家下載:

      鏈接: https://pan.baidu.com/s/1ybJGu1JCbOgRbjCTqtl9TA 
      提取碼: l062
      

      2、安裝透明網(wǎng)關(guān)

      2.1、主機(jī)環(huán)境配置

      下載上述安裝介質(zhì)并上傳透明網(wǎng)關(guān)主機(jī):

      📢 注意: 安裝透明網(wǎng)關(guān)之前需要配置環(huán)境和創(chuàng)建用戶等等,可以參照 Linux 安裝單機(jī) Oracle 的環(huán)境配置步驟,這里就不再詳述了!

      使用 Oracle 一鍵安裝腳本配置即可:

      cd /soft
      ./OracleShellInstall.sh -i 10.211.55.102 -txh Y
      

      📢 注意: 由于主機(jī)安裝時(shí)選擇了最小化安裝,并且安裝透明網(wǎng)關(guān)需要圖形化,因此加上 -txh Y 安裝圖形化界面!

      稍許等待幾分鐘之后,即可配置完成,由于沒(méi)有上傳 DB 安裝包,這個(gè)報(bào)錯(cuò)是正常!

      2.2、正式安裝

      主機(jī)配置完成后,開(kāi)始安裝透明網(wǎng)關(guān):

      ## 首先 root 用戶下,授權(quán) oracle 訪問(wèn) /soft 目錄
      chown -R oracle:oinstall /soft
      ## 切換到 oracle 用戶下
      su - oracle
      ## 解壓透明網(wǎng)關(guān)安裝包
      unzip -q p13390677_112040_Linux-x86-64_5of7.zip
      ## 配置 vnc 訪問(wèn)圖形化界面
      vncserver
      

      使用 VNC 客戶端連接:

      開(kāi)始安裝:

      確認(rèn)安裝位置:

      這里選擇 for ODBC 即可:

      開(kāi)始安裝,靜待結(jié)束:

      root 用戶下執(zhí)行 root.sh 腳本:

      /u01/app/oraInventory/orainstRoot.sh
      /u01/app/oracle/product/11.2.0/db/root.sh
      

      配置監(jiān)聽(tīng):

      至此,透明網(wǎng)關(guān)安裝結(jié)束!

      2.3、安裝 mysql-connector

      首先需要安裝 unixODBC 依賴,否則報(bào)錯(cuò):

      安裝 unixODBC 依賴后安裝 mysql-connector

      yum install -y unixODBC*
      rpm -ivh mysql-connector-odbc-8.0.27-1.el7.x86_64.rpm
      

      📢 注意: 透明網(wǎng)關(guān)的安裝到這里就全都結(jié)束了,接下來(lái)就是配置部分了。

      3、透明網(wǎng)關(guān)配置

      透明網(wǎng)關(guān)安裝好之后,自然是需要配置才能使用的。

      3.1、配置 odbc.ini

      odbc.ini 文件用來(lái)存放 MySQL 數(shù)據(jù)庫(kù)相關(guān)信息,默認(rèn)不存在,root 用戶下手動(dòng)創(chuàng)建即可:

      cat<<EOF>/etc/odbc.ini
      [lucifer]
      Description     = ODBC for MySQL
      Driver          = /usr/lib64/libmyodbc8w.so
      Server          = 10.211.55.101
      Port            = 3306
      User            = lucifer
      Password        = lucifer
      Database        = lucifer 
      EOF
      

      配置文件中的配置信息如下:

      • [lucifer] 可以理解為是一個(gè) SID 名稱,可以自定義,后面配置需要用到;
      • Server 是指 MySQL 數(shù)據(jù)庫(kù)主機(jī)的 IP 地址;
      • Port 是指 MySQL 數(shù)據(jù)庫(kù)的端口;
      • User 是指 Oracle 需要訪問(wèn)的用戶名;
      • Password 是指被訪問(wèn)用戶的登錄密碼;
      • Database 是指需要 MySQL 數(shù)據(jù)庫(kù)需要被訪問(wèn)的 DB 名稱;

      📢 注意: 如果有多個(gè) MySQL 數(shù)據(jù)庫(kù)需要配置,則填寫(xiě)多個(gè)即可!

      [lucifer]
      Description     = ODBC for MySQL
      Driver          = /usr/lib64/libmyodbc8w.so
      Server          = 10.211.55.101
      Port            = 3306
      User            = lucifer
      Password        = lucifer
      Database        = lucifer 
      
      [lucifer1]
      Description     = ODBC for MySQL
      Driver          = /usr/lib64/libmyodbc8w.so
      Server          = 10.211.55.105
      Port            = 3306
      User            = lucifer1
      Password        = lucifer1
      Database        = lucifer1
      

      3.2、配置 init[SID].ora

      切換至 oracle 用戶,進(jìn)入 $ORACLE_HOME/hs/admin 目錄下,新建一個(gè) init[SID].ora 文件:

      cat<<EOF>$ORACLE_HOME/hs/admin/initlucifer.ora
      ##HS Configuration
      HS_FDS_CONNECT_INFO = lucifer
      HS_FDS_TRACE_LEVEL = debug
      HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
      HS_FDS_SUPPORT_STATISTICS=FALSE
      HS_LANGUAGE=AMERICAN_AMERICA.UTF8
      HS_NLS_NCHAR = UCS2
      ##ODBC Configuration
      set ODBCINI=/etc/odbc.ini
      EOF
      

      這里 initSID.ora 中的 SID 名稱和文件中 HS_FDS_CONNECT_INFO 參數(shù)值,就是上一步中我們配置 odbc.ini 文件中的 [lucifer] 名稱。

      📢 注意: 如果有多個(gè) MySQL 數(shù)據(jù)庫(kù)需要配置,則創(chuàng)建多個(gè) init[SID].ora 文件 即可!

      3.3、配置監(jiān)聽(tīng)

      oracle 用戶下,進(jìn)入 $TNS_ADMIN 配置 listener.ora 文件:

      cat<<EOF>>$TNS_ADMIN/listener.ora
      SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC=
        (SID_NAME=lucifer)
        (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db)
        (PROGRAM=dg4odbc)
        )
      )
      EOF
      

      📢 注意: 如果有多個(gè) MySQL 數(shù)據(jù)庫(kù)需要配置,則寫(xiě)成如下格式!

      cat<<EOF>>$TNS_ADMIN/listener.ora
      SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
        (SID_NAME = lucifer)
        (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db)
        (PROGRAM=dg4odbc)
        )
        (SID_DESC =
        (SID_NAME = lucifer1)
        (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db)
        (PROGRAM=dg4odbc)
        )
      )
      EOF
      

      重啟監(jiān)聽(tīng):

      lsnrctl stop
      lsnrctl start
      lsnrctl status
      

      配置完成之后,測(cè)試是否可以連接 MySQL 數(shù)據(jù)庫(kù):

      isql lucifer
      

      成功連接 MySQL 數(shù)據(jù)庫(kù),至此透明網(wǎng)關(guān)配置完成!

      4、Oracle 數(shù)據(jù)庫(kù)配置

      透明網(wǎng)關(guān)配置完成后,就只需要配置 Oracle 數(shù)據(jù)庫(kù)來(lái)連接透明網(wǎng)關(guān)。

      4.1、配置 TNS

      通過(guò)配置 TNS 來(lái)連接透明網(wǎng)關(guān),進(jìn)入 TNS 配置文件目錄 $TNS_ADMIN 配置 TNS:

      cat<<EOF>>$TNS_ADMIN/tnsnames.ora
      lucifer =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.211.55.102)(PORT = 1521))
          )
          (CONNECT_DATA =
            (SID = lucifer)
          )
         (HS = OK)
        )
      EOF
      

      通過(guò) tnsping 測(cè)試后,發(fā)現(xiàn)訪問(wèn)沒(méi)有問(wèn)題!

      4.2、配置 DBLink 連接 MySQL 數(shù)據(jù)庫(kù)

      接下來(lái)只需要?jiǎng)?chuàng)建你 DBLink 即可連接 MySQL 數(shù)據(jù)庫(kù):

      create public database link lucifer connect to "lucifer" identified by "lucifer" using 'lucifer';
      

      測(cè)試連接操作 MySQL 數(shù)據(jù)庫(kù):

      select * from "lucifer"@lucifer order by "id";
      delete from "lucifer"@lucifer where "id"=1;
      

      至此,整個(gè) Oracle 配置透明網(wǎng)關(guān)訪問(wèn) MySQL 就完成了!

      三、最后總結(jié)

      如果按照我的步驟來(lái)操作,整個(gè)流程走下來(lái)應(yīng)該會(huì)比較順暢,下面羅列一下我操作過(guò)程中遇到的一些報(bào)錯(cuò):

      1、init[sid].ora 配置文件的 HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so 不正確,應(yīng)該是 ODBC 的 Lib包:

      ERROR at line 1:
      ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
      ORA-02063: preceding line from DLK
      

      2、init[sid].ora 里配置的 HS_LANGUAGE=AMERICAN_AMERICA.zhs16gbk 字符集不正確或者沒(méi)有配置,應(yīng)該是 Oracle 數(shù)據(jù)庫(kù)字符集:

      ERROR at line 1:
      ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
      [
      

      3、執(zhí)行查詢操作時(shí),表名需要帶雙引號(hào),因?yàn)?MySQL 默認(rèn)表名是區(qū)分大小寫(xiě),而 Oracle 是不區(qū)分大小寫(xiě)的:

      ERROR at line 1:
      ORA-00942: table or view does not exist
      [MySQL][ODBC 8.0(w) Driver][mysqld-5.7.18-log]Table 'test.T1' doesn't exist
      {42S02,NativeErr = 1146}
      ORA-02063: preceding 2 lines from DLK
      

      4、Oracle 數(shù)據(jù)庫(kù)配置 TNS 時(shí),沒(méi)有加 (HS = OK)

      ERROR at line 1:
      ORA-28546: connection initialization failed, probable Net8 admin error
      ORA-02063: preceding line from LUCIFER
      

      本文部分內(nèi)容參考文檔:Oracle透明網(wǎng)關(guān)訪問(wèn)MySQL數(shù)據(jù)庫(kù)

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多