【検証】Oracle 19cから26aiへ!DBLINKは使える?検証手順まとめ

26ai

最新の Oracle Database 26ai (Free版)、皆さんもう触っていますか? AI機能に注目が集まりますが、現場のエンジニアとして気になるのは「既存資産(Oracle 19c)との互換性」ですよね。

今回は、「Oracle 19cから26aiに接続し、DBLINKやサンプルスキーマ(CO)が正常に動くか」を検証しました。 以下、検証に使用した具体的な手順と結果をまとめます。
検証はLinuxで行っていますが、Windowsでも大枠は変わりません。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

🛠 検証手順 1:ネットワーク設定(tnsnames.ora)

【実施環境:Oracle 19c 端末】

検証の準備として、クライアント側の tnsnames.ora を整備します。 ※PDB(プラガブル・データベース)への接続には、SIDではなくサービス名を指定する必要がある点に注意してください。

1. ホスト名解決 (/etc/hosts) クライアント端末からサーバー名 26ai-single を解決できるようにします。

192.168.xx.xx  26ai-single

2. tnsnames.ora の作成 クライアント側の $ORACLE_HOME/network/admin/tnsnames.ora に以下を追記しました。

FREEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 26ai-single)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = freepdb1)
    )
  )

クライアント端末で tnsping FREEPDB1 が通ることを確認して準備完了です。

[oracle@orcl19c ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
[oracle@orcl19c ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
FREEPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 26ai-single)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = freepdb1)
)
)
[oracle@orcl19c ~]$ tnsping freepdb1

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 06-JAN-2026 20:49:40

Copyright (c) 1997, 2019, Oracle. All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 26ai-single)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = freepdb1)))
OK (0 msec)
[oracle@orcl19c ~]$ sqlplus co/co@freepdb1

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jan 6 20:45:01 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Last Successful login time: Tue Jan 06 2026 20:36:30 -05:00

Connected to:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0

SQL> select banner from v$version;

BANNER
-------------------------------------------------------------------------------------
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free


SQL> show user
USER is "CO"
SQL> show con_name

CON_NAME
------------------------------
FREEPDB1
SQL> select table_name from user_tables;

TABLE_NAME
-------------------------------------
CUSTOMERS
STORES
PRODUCTS
ORDERS
SHIPMENTS
ORDER_ITEMS
INVENTORY

7 rows selected.

📦 検証手順 2:COスキーマのインストール

【実施環境:Oracle Database 26ai サーバー側】

検証用データを準備します。ここは データベースサーバー(26ai)側 での作業です。 Oracle公式のサンプルスキーマ「Customer Orders (CO)」をインストールしておきます。

1. SYSユーザーで接続 サーバー端末上で実行します。

sqlplus sys/パスワード@localhost:1521/freepdb1 as sysdba

2. インストールスクリプト実行 GitHub等からサーバーに入手済みのスクリプトを実行します。

@co_install.sql

ログを確認し、エラーなく COMMIT されていれば導入成功です。 これで、サーバー側の受け入れ準備が整いました。

[oracle@26ai-single ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.26.0.0.0 - Production on Tue Jan 6 20:27:53 2026
Version 23.26.0.0.0

Copyright (c) 1982, 2025, Oracle. All rights reserved.


Connected to:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0

SQL> alter session set container=freepdb1;

Session altered.

SQL> show con_name

CON_NAME
------------------------------
FREEPDB1
SQL> @/tmp/db-sample-schemas-23.3/customer_orders/co_install.sql

Thank you for installing the Oracle Customer Orders Sample Schema.
This installation script will automatically exit your database session
at the end of the installation or if any error is encountered.
The entire installation will be logged into the 'co_install.log' log file.

Enter a password for the user CO:


Enter a tablespace for CO [USERS]:
Do you want to overwrite the schema, if it already exists? [YES|no]: YES
****** Creating CUSTOMERS table ....

Table created.

****** Creating STORES table ....

Table created.

:::

Table altered.


Table altered.


Installation
-------------
Verification:

Table provided actual
----------- ---------- ----------
customers 392 392
stores 23 23
products 46 46
orders 1950 1950
shipments 1892 1892
order_items 3914 3914
inventory 566 566

Thank you!
--------------------------------------------------------
The installation of the sample schema is now finished.
Please check the installation verification output above.

You will now be disconnected from the database.

Thank you for using Oracle Database!

Disconnected from Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
[oracle@26ai-single ~]$

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

🔗 検証手順 3:DBLINK ループバックテスト

【実施環境:Oracle 19c 端末】

ここからクライアント端末に戻って検証です。 「Oracle 19cから26aiへ接続し、そこからさらにDBLINK経由でクエリを投げる」 これが動けば、分散データベース環境でも26aiが使える証明になります。

今回は外部DBを用意する代わりに、自分自身へのループバックリンクを作成して検証しました。

1. DBLINK作成 (COユーザーにて) クライアント端末から、先ほど作成したサーバー上のCOユーザーへ接続して実行します。

sqlplus co/パスワード@FREEPDB1

接続後、以下のSQLでDBLINKを作成します。

CREATE DATABASE LINK loopback_link
  CONNECT TO co IDENTIFIED BY "パスワード"
  USING 'FREEPDB1';

2. 動作確認SQL

-- 通常のSELECT
SELECT count(*) FROM customers;

-- DBLINK経由のSELECT
SELECT count(*) FROM customers@loopback_link;

-- リンクの生存確認
SELECT sysdate FROM dual@loopback_link;

結果: すべて正常に動作! データの欠損もなく、sysdate も正常に返ってきました。

[oracle@orcl19c ~]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> CREATE DATABASE LINK loopback_link
2 CONNECT TO co IDENTIFIED BY co
3 USING 'FREEPDB1';

Database link created.

SQL> alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';

Session altered.

SQL> SELECT sysdate FROM dual@loopback_link;

SYSDATE
-------------------
2026/01/06 20:00:00

SQL> SELECT count(*) FROM orders@loopback_link;

COUNT(*)
----------
1950

✅ 結論

Oracle 19c から Oracle Database 26ai への接続および基本操作について、今回の簡易検証手順の範囲では特に問題は見られませんでした。

既存のクライアント環境を維持したままサーバー側だけを最新の26aiに入れ替えても、基本的なSQLやDBLINK機能は利用できそうです。

※注意点 本検証は Oracle Database 26ai Free 環境を使用しています。将来リリースされる正式版(Enterprise Editionなど)や、より複雑な機能を使用する場合には動作が異なる可能性がありますのでご注意ください。

❓ FAQ(よくある質問)

Q1. 接続時に ORA-28040 (認証プロトコルエラー) が出ます

A. サーバー側(26ai)の sqlnet.ora 設定を確認してください。 26aiはセキュリティ要件が高くなっています。古いJDBCドライバやクライアントが混在する場合、サーバー側の sqlnet.oraSQLNET.ALLOWED_LOGON_VERSION_SERVER=12a などを追記して許容レベルを下げる必要がある場合があります。今回のOracle 19c環境ではデフォルト設定で接続できました。

Q2. V$VERSION を見ると “23ai” と表示されますが?

A. 26ai Free は 23ai のリリースファミリーに基づいているため、内部バージョン表記には 23.x.x23ai が残っている場合があります。機能的には26aiとして提供されています。

Q3. COスキーマはどこで手に入りますか?

A. Oracleの公式GitHubリポジトリ (db-sample-schemas) からダウンロード可能です。最新の機能検証には非常に便利なのでおすすめです。

📝 記事のまとめ

今回の検証を通して分かった重要ポイントを整理します。

  1. 接続互換性は良好 Oracle 19c (Client) から 26ai への接続は、基本的な設定を行うだけで問題なく動作しました。
  2. DBLINKも動作 バージョンまたぎのDBLINKも、今回の検証範囲(SELECT/sysdate取得)では正常に機能しました。
  3. Free版での検証 あくまでFree版での挙動確認です。本番移行の際は、正式版および実際のアプリケーションを用いた十分なテストをお忘れなく!

新しいデータベースへの接続は不安な部分もありますが、基本的な仕組みは変わっていません。まずは開発環境で26aiのパワーを体験してみてください!

[参考]
CREATE DATABASE LINK

検証環境: Oracle 19.3 (Linux), Oracle Database 26ai Free (Linux)

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました