ODBCドライバを使用してMS SQL Serverに接続するためのデータベース・リンクをOracle 19cデータベースに作成 (2026/01/01)

ODBCドライバを使用してMS SQL Serverに接続するためのデータベース・リンクをOracle 19cデータベースに作成 (2026/01/01)

https://medium.com/@vsivakumar275/creating-a-oracle-database-link-to-connect-ms-sql-server-using-odbc-driver-fc2622d3ffb6

投稿者:Oracle Nexus

前提条件:

  1. SQL 認証ユーザーを持つ MS SQL Server。
CREATE LOGIN Sivakumar WITH PASSWORD = 'Doyen@123',
CHECK_POLICY = OFF;
SELECT name, type_desc, is_disabled 
FROM sys.server_principals
WHERE name = 'Sivakumar'
0は有効、1は無効

2. MS SQL Server はリモート接続を許可する必要があります。

EXEC sys.sp_configure 'remote access';

リモートアクセスを確認するには、

デフォルトインスタンスの場合:

DOYENLTP1518 → ホスト名

1433 → ポート

Sivakumar → SQL認証ユーザー

Doyen@123 → ユーザーのパスワード。

名前付きインスタンスの場合:

Enterキーを押すかクリックすると、画像がフルサイズで表示されます
名前付きインスタンス → MSSQLSERVER

接続を確立できます

3. Oracle サーバーに Microsoft ODBC ドライバーをインストールします。

4. odbc.iniファイルを編集し、Oracleサーバーで接続をテストします。

5. Oracle サーバーに initMSSQL.ora ファイルを作成します。

6. tnsnames および listener.ora ファイルを構成します。

7. データベース リンクを作成し、接続を確認します。

ODBCドライバーの設定:

  1. ODBCドライバーのドライバーマネージャーをインストールします — unixODBC
sudo yum install unixODBC unixODBC-devel -y
unixODBC インストール済み

2. Microsoft ODBC ドライバーをインストールしてください。(こちらのリンクをご利用ください → https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver17&tabs=alpine18-install%2Credhat17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offline#17 )

Linux 8の場合:

curl -sSL -O https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
Enterキーを押すかクリックすると、画像がフルサイズで表示されます
パッケージをダウンロードしました

パッケージをインストールしてください

sudo yum install packages-microsoft- prod.rpm
パッケージがインストールされました

RPMファイルを削除します。

rm packages-microsoft-prod.rpm

ODBC ドライバー、ツール、unixODBC-devel 依存関係をインストールします。

sudo ACCEPT_EULA =Y yum install -y msodbcsql17 
sudo ACCEPT_EULA =Y yum install -y mssql-tools
sudo yum install -y unixODBC-devel
ODBCドライバーがインストールされています
MS SQL DBツールがインストールされています
unixODBC-develがインストールされています

3.パッケージをインストールした後、 libmsodbcsql-17.soファイルが/usr/lib64 の場所に存在することを確認します

Enterキーを押すかクリックすると、画像がフルサイズで表示されます
パッケージは必要に応じてインストールされます。

odbc.ini ファイルを編集し、Oracle サーバーで接続をテストします。

  1. /etcの下にあるodbc.iniファイルを編集し、 [MSSQL]ヘッダーの下に MS SQL Server の詳細を入力します
[MSSQLSERVER] ----------------------> This will be the SID of our SQL Server.
Description = MSSQLSERVER
Driver = /usr/lib64/libmsodbcsql-17.so
Server = DOYENLTP1518 --> Hostname or Server Name
User = Sivakumar --> SQL Authenticated User
Password = Doyen@123 --> User Password
Port = 1433 --> Server Port
Database = DB100 --> Database Name where the user has permission

2. Oracle から SQL Server への接続を確認します。

注意: Windows Server ファイアウォールが TCP 1433 の受信接続を許可していることを確認してください。

サーバーの接続を確認してください。

nc  -zv  DOYENLTP1518  1433
/opt/mssql-tools/bin/sqlcmd -D -S MSSQLSERVER -U Sivakumar - P Doyen @123
Enterキーを押すかクリックすると、画像がフルサイズで表示されます

Oracle サーバーに initMSSQLSERVER.ora ファイルを作成します。

  1. ディレクトリ$ORACLE_HOME/hs/adminの下にファイルinitMSSQLSERVER.oraを作成します。
  2. 以下のパラメータを追加します。
vi initMSSQLSERVER.ora 

# HS 初期化パラメータ

HS_FDS_CONNECT_INFO = MSSQLSERVER
HS_FDS_TRACE_LEVEL = user
HS_FDS_SHAREABLE_NAME = /usr/lib64/libmsodbcsql-17.so
HS_FDS_TRACE_FILE_NAME=/tmp/ora_hs_trace.log
HS_NLS_NCHAR = UCS2

# ODBC 固有の環境変数を

set ODBCINI=/etc/odbc.ini
ファイルが作成されました

tnsname.ora ファイルとlistener.ora ファイルを構成します。

  1. $ORACLE_HOME/network/adminに移動し、 listener.ora に以下のエントリを追加します。
SID_LIST_LISTENER = 
(SID_LIST =
(SID_DESC =
(PROGRAM = dg4odbc)
(SID_NAME = MSSQLSERVER)
(ORACLE_HOME = /u01/apps/oracle/product/home)
(ENVS=LD_LIBRARY_PATH=/opt/microsoft/msodbcsql17/lib64)
)
)

USE_SID_AS_SERVICE_listener=on
lsnrctl reload
lsnrctl status
Enterキーを押すかクリックすると、画像がフルサイズで表示されます

2. 次に、 tnsnames.oraに以下のエントリを追加します。

MSSQLSERVER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.128)(PORT = 1521))
(CONNECT_DATA =
(SID = MSSQLSERVER)
)
(HS = OK)
)
Enterキーを押すかクリックすると、画像がフルサイズで表示されます
SQL ServerはOracle Serverからpingできる

データベース リンクを作成し、接続を確認します。

  1. Oracle データベースに接続し、データベース リンクを作成します。
create public database link MSSQL_DBLINK connect to mssql_user identified by "mssql_password" using 'MSSQLSERVER';
Enterキーを押すかクリックすると、画像がフルサイズで表示されます

データベース リンクのテスト:

Oracle
MS SQL Server

行の挿入:

注:すべてのDML文に対してコミットを実行する必要があります。そうしないと、テーブルに基づいて実行されるコマンドがSQL Server上で実行状態になります

Enterキーを押すかクリックすると、画像がフルサイズで表示されます

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

ミリ秒の問題: BCCグループとOCIが市場データ・パフォーマンスを再定義する方法(AWSに対するベンチマークを使用) (2025/11/13)

OCIサービスを利用したWebサイトの作成 その4~Identity Cloud Serviceでサイトの一部を保護 (2021/12/30)