Linux(CentOS)のOracle XE(Express Edition)へ外部接続する

Oracle データベース
この記事は約6分で読めます。

※当ブログではアフィリエイト広告を利用しています。

前回は、Oracleのフリーバージョンの「Oracle XE(Express Edition)」を、Linux(CentOS) 64bit版にインストールしました。

前回の記事はこちら⇒Linux(CentOS) 64bit版へOracle XE(Express Edition)をインストール

今回はそのCentOS上の「Oracle XE(Express Edition)」へ、Windows 7から接続します。

なお、今回のバージョンは以下です。

  • CentOS-6.4-x86_64
  • Oracle Database Express Edition 11g Release 2
  • Oracle Database 11g Release 2 Client

WindowsにOracle Clientをインストール

まずは、Oracle公式サイトからOracle Clientをダウンロードする。

「Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (32-bit)」とかいうやつ。

サイトのたどり方は、「DOWNLOADS」⇒「Oracle Database」⇒対象のバージョンの「See All」でダウンロードページに行くことができる。

なお、「Oracle Instant Client」というものと混同してしまうが、こちらはOracle自体をインストールせずにアプリケーションを実行できるライブラリである。

Oracle Clientをダウンロードしたら、ZIPファイルを解凍し、「setup.exe」を実行し、インストールする。

なお、インストール途中で聞かれる「インストールタイプ」は、「管理者」にした。

CentOSのiptablesで1521番ポートを開放

CentOSの「iptables」で、Oracleリスナーのポートを開放する。

今回の場合、Oracleデータベースの構成で設定した1521番ポート。

設定方法は「SSH」のものをまねして、以下のように設定した。

#iptablesの設定を編集
$ vi /etc/sysconfig/iptables

# SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Oracle XE
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

#iptablesの再起動
$ /etc/rc.d/init.d/iptables restart

WindowsのOracle Net Managerでネーミング設定

WindowsからCentOSのOracleへ接続するために、サーバやサービスの指定となるネーミングを設定してやる必要がある。

ネーミングメソッドは以下の4つがある。

  • ローカルネーミング
  • 簡易接続ネーミング
  • ディレクトリネーミング
  • 外部ネーミング

最も一般的な方法は、「ローカルネーミング」であり、ローカルにある「tnsnames.ora」ファイルに接続記述子を書く。

「tnsnames.ora」ファイルの格納場所は、今回の場合「C:\app\[ユーザー]\product\11.2.0\client_1\network\admin\tnsnames.ora」である。

今回は、「Oracle Net Manager」で設定するが、直接「tnsnames.ora」ファイルを作成・編集しても可能である。

まずは、「Oracle Net Manager」を起動する。

「スタート」⇒「Oracle – OraClient11g_home1」⇒「コンフィグレーションおよび移行ツール」⇒「Net Manager」を開く。

「サービス・ネーミング」を選択し、左側の「+」ボタンを押下し、「Netサービス名ウィザード」を開く。

以下のように設定した。

  • ネット・サービス名…「xe」
  • ネットワーク・プロトコル…「TCP/IP(インターネット・プロトコル)」
  • ホスト名…CentOSのIPアドレス
  • ポート番号…「1521」
  • サービス名…「xe」
  • 接続タイプ…「データベースのデフォルト」

最後に接続テストができる。

ログインを「scott」から「system」に変更し、接続テスト行うと成功した。

ちなみにこの設定で「tnsnames.ora」ファイルが作成されるが、以下のようになっていた。

# tnsnames.ora Network Configuration File: C:\app\[ユーザー]\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

XE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = CentOSのIPアドレス)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xe)
    )
  )

WindowsのSQLPlusで接続

最後にWindowsから「SQLPlus」で接続する。

コマンドプロンプトを開き、以下のように実行する。

なお、ログイン時のオプションは「sqlplus ユーザー名[/パスワード]@接続文字列(Net Service 接続識別子)」らしい。

#SQLPlusで接続
C:\>sqlplus system@xe

SQL*Plus: Release 11.2.0.1.0 Production on 日 8月 4 16:58:54 2013

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

パスワードを入力してください:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

無事に接続できました。

参考サイト

SQL*Plusの起動オプション – オラクル・Oracle SQL*Plus リファレンス

コメント

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