安裝64位11gR2 Gateway訪問32位MS SQL-Server遇到的問題

lnwxzyp發表於2014-03-19
      前幾天接到一個任務,要求給我們負責的資料庫上配置一個透明閘道器,因為以前配置過10g的,大概看了幾眼11g的官方文件,估計應該跟10g的配置一樣,感覺應該什麼難度,正好自己本機上就有一個p13390677_112040_Linux-x86-64_5of7的安裝包,然後直接sftp上傳,解壓,然後開啟xstart準備開始安裝。
      很快安裝結束並執行root.sh 以上不在複述,然後在配置監聽的地方遇到點問題,因為是在已經有資料庫的機器上的安裝,所以listener port不能是原有資料庫listener1521,要換成其他的埠,這裡給換成了1522,監聽名稱為LISTENER_B 結果啟動的時候就報錯,然後檢視listener.ora如下:
LISTENER_B =
 (ADDRESS_LIST=
   (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.112)(PORT=1522))
 )

SID_LIST_LISTENER_1W=
  (SID_LIST=(
     SID_DESC=(SID_NAME=dg4msql) 
    (ORACLE_HOME=/app/gateway/product/11.2)
(PROGRAM=dg4msql))
  )
官方文件中說,如果已經存在監聽的需要在listener.ora配置檔案當中也要如下的修改:
LISTENER_B =
  (DESCRIPTION_LIST =
    (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )

SID_LIST_LISTENER_B =
 (SID_LIST =
   (SID_DESC =(SID_NAME = PLSExtProc)
   (ORACLE_HOME = /app/gateway/gw_2/product/11.2)
   (PROGRAM = extproc)
   )
   (SID_DESC =(SID_NAME = msdb10k)
   (ORACLE_HOME = /app/gateway/gw_2/product/11.2)
   (PROGRAM=dg4msql)
   )
 )
因為在$GATEWAY_HOME/dg4msql/admin目錄下的initdg4msql.ora檔案我給改成了initmsdb10k.ora,這裡我設定的SID就是msdb10k(因為10G就是這麼設定的,SID是自己起的名字

設定之後監聽就起來了,但是建立的dblink就一直ORA-28500的錯誤但是最後就是訪問不了,排查了使用者密碼大小寫的問題,用雙引號小寫來建立dblink還是不行,一直報錯,詢問之後才知道MS SQL-Server是32位的。估計可能32位和64位版本的問題,我裝的gateway是x64的,最後只得刪除之後重新安裝32位的gateway。裝好,建好監聽,發現用dblink還是不行,最後排查到原來11g需要使用MS SQL-Server的真實的資料庫名稱,然後把在$GATEWAY_HOME/dg4msql/admin目錄下的initdg4msql.ora改成實際的initccdb.ora
listeners.ora也進行修改:
LISTENER_B =
  (DESCRIPTION_LIST =
    (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )

SID_LIST_LISTENER_B =
 (SID_LIST =
   (SID_DESC =(SID_NAME = PLSExtProc)
   (ORACLE_HOME = /app/gateway/gw_2/product/11.2)
   (PROGRAM = extproc)
   )
   (SID_DESC =(SID_NAME = ccdb)
   (ORACLE_HOME = /app/gateway/gw_2/product/11.2)
   (PROGRAM=dg4msql)
   )
 )
最後用
CCDB=
   (DESCRIPTION =
    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.112)(PORT = 1522))
    )
    (CONNECT_DATA =(SID = ccdb)
    )
    (HS=OK)
)
來建立dblink,成功。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-1124540/,如需轉載,請註明出處,否則將追究法律責任。

相關文章