質問

それが応答する可能性のある人に、Redhat Enterprise Linux 5.4にOracle 11g R2をインストールしました。 SQL Server 2005に接続しようとしています。いくつかのメモを適用した後、以下のエラーが得られた結果です。


listener.oraは以下のとおりです。

[oracle@oracledb admin]$ less listener.ora
)
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(PROGRAM = dg4msql)
(ENVS=LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/dg4msql/lib:/u01/app/oracle/product/11.2.0/db_1/lib)
)
)

LOGGING_LISTENER = on

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /u01/app/oracle

TRACE_LEVEL_LISTENER = on

tnsnames.oraは以下のとおりです。

[oracle@oracledb admin]$ less tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

fasdat =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521))
)
(CONNECT_DATA =
(SID = fasdat)
)
)
dg4msql =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL= TCP)
(HOST = oracledb)
(PORT = 1521)
)
(CONNECT_DATA=
(SID=dg4msql) )
(HS=OK))

init4msql.oraは次のとおりです。

[oracle@oracledb admin]$ less initdg4msql.ora
# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=192.168.1.48:1433//NAVISION
# alternate connect format is hostname/serverinstance/databasename
#HS_FDS_TRACE_LEVEL=0
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
#HS_LANGUAGE=turkish_turkey.WE8ISO8859P9
HS_NLS_NCHAR=WE8ISO8859P9
#HS_FDS_TRACE_LEVEL=DEBUG

「DG4MSQL」という名前のSQL Server 2005でシステムDSNをセットアップし、ドライバーを「SQL Server」として選択し、サーバーを「ローカル」として選択しました

この問題を解決するためのアイデアを聞いてうれしいです。

役に立ちましたか?

解決

不均一なゲートウェイ(ODBC接続用)ではなく、MySQLセットアップにゲートウェイを使用しているようです。プロセスの概要を次に示します

SQL Serverでデータベースユーザーを作成し、Oracle Databaseリンクから読みたいデータベース/テーブルへのアクセスを読み取ります。

ゲートウェイホームでは、アクセスする各SQL Serverデータベースには、initsid.oraの$ oh/dg4msql/adminにinit.oraがあり、sidはリンクで使用されるデータベースの名前です(initbobなどがあります。 Ora)、それを作成します

HS_FDS_CONNECT_INFO=msserver1:1234//Example_Database
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
HS_TRANSACTION_MODEL=READ_ONLY

これで、既存のSID_LIST内の追加のSID_DESCセクションを使用して、Gateway HomeのListener.oraに新しいSIDを追加する必要があります。

(SID_DESC =
(SID_NAME=bob)
(ORACLE_HOME=/oracle/gateway/product/11.2.0)
(ENVS=LD_LIBRARY_PATH=/oracle/gateway/product/11.2.0/dg4msql/driver/lib;/oracle/gateway/product/11.2.0/lib)
(PROGRAM=dg4msql)
)

これで、新しいSIDがアクティブになるように、ゲートウェイリスナーを停止して再起動する必要があります。 nbリロードでは十分ではありません。

これで、リンクを作成する各データベースのリスナーにtnsnames.oraファイルに新しいSIDを追加する必要があります。データベースリンクを作成するデータベースホームでもない限り、ゲートウェイホームでこれを行う必要はありません。

bob =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = severname.example.com)(PORT = 1690))
(CONNECT_DATA = (SID = bob))
(HS = OK)
)

NB:ホストとポートは、SQL Serverデータベース用ではなくゲートウェイ用です

MS-SQLデータベースへのリンクが必要な各データベースでは、新しいGateway SIDへのデータベースリンクを作成する必要があります。

CREATE PUBLIC DATABASE LINK bob
CONNECT TO "ms_user" IDENTIFIED BY "ms-passwd" USING 'bob';

ここで、MS-USERとMS-PassWordは、最初に作成したSQL Serverユーザーです。

これで、新しいデータベースリンクをテストできます

SELECT COUNT(*) FROM "Table_Name"@bob;

これが機能したら、initsid.oraファイルを変更して、接続に合わせてパラメーターを追加できます。この方法で行うと、ゲートウェイを介して多くの異なるデータベースを簡単に追加および管理できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top