web-dev-qa-db-ja.com

Oracle 11gデータベースにリモートで接続する方法

コンピューターAにOracle 11g XEをインストールしています。コマンドconnect username/passwordを使用して、sqlコマンドラインから接続できます。デモデータベースにSQL命令を送信することもできます:Select * from demo_customers;

データベースはコンピューターAのローカルホストで実行されています。

コンピューターBをローカルホスト上のコンピューターAのデータベースに接続したい。どうやってやるの?

15
gamosa

リスナーを開始するには、サーバーAでlsnrctlユーティリティーを実行する必要があります。次に、次の構文を使用してコンピューターBから接続します。

sqlplus username/password@hostA:1521 /XE

デフォルトの1521が使用される場合、ポート情報はオプションです。

ここでリスナー設定のドキュメント。ここでリモート接続のドキュメント

12
DCookie

Oracleサーバーをインストールすると、ローカルマシンから問題なく接続できます。しかし、私のホームネットワーク上の別のMaclaptopからは、Sql DeveloperまたはSql Plusを使用して接続できません。いくつかの研究を行った後、私はあなたがしなければならないこの追加のステップがあることがわかりました:

Oracleネットマネージャーを使用します。リスナーを選択します。 127.0.0.1またはlocalhostのほかにIPアドレス(私の場合は192.168.1.12)を追加します。

これにより、エントリが[OracleHome]\product\11.2.0\dbhome_1\network\admin\listener.oraに追加されます。

  • リスナーサービスを再起動します。 (注:私にとっては、マシンを一度再起動して動作させます)

  • Lsnrctl statusを使用して確認します
    追加のHost = 192.168.1.12が表示され、これがリモート接続を機能させるものであることに注意してください。

    C:\ Windows\System32> lsnrctl status
    64ビットWindows用LSNRCTL:バージョン11.2.0.1.0-05-SEP-2015 13:51:43での運用
    著作権(c)1991、2010、Oracle。全著作権所有。
    接続(DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521)))
    LISTENERのステータス


    別名リスナー
    64ビットWindows用のバージョンTNSLSNR:バージョン11.2.0.1.0-本番
    開始日05-SEP-2015 13:45:18
    稼働時間0日0時間。 6分24秒
    トレースレベルオフ
    セキュリティオン:ローカルOS認証
    SNMPオフ
    リスナーパラメータファイル
    D:\ Oracle11gr2\product\11.2.0\dbhome_1\network\admin\listener.ora
    リスナーログファイルd:\ Oracle11gr2\diag\tnslsnr\eagleii\listener\alert\log.xml
    リスニングエンドポイントの概要...
    (DESCRIPTION =(ADDRESS =(PROTOCOL = ipc)(PIPENAME = \。\ pipe\EXTPROC1521ipc)))
    (DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = 127.0.0.1)(PORT = 1521)))
    (DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(Host = 192.168.1.12)(PORT = 1521)))
    サービスの概要...
    サービス「CLRExtProc」には1つのインスタンスがあります。
    インスタンス「CLRExtProc」のステータスUNKNOWNには、このサービスのハンドラーが1つあります...
    サービス「xe」には1つのインスタンスがあります。
    インスタンス "xe"、ステータスREADYには、このサービスの1つのハンドラーがあります...サービス "xeXDB"には1つのインスタンスがあります。
    インスタンス「xe」、ステータスREADYには、このサービスのハンドラーが1つあります...コマンドは正常に完了しました

  • tnspingを使用して接続をテストします
    ローカルホストまたは127.0.0.1ではなく、IPv4アドレスをpingします

C:\ Windows\System32> tnsping 192.168.1.12
TNS Ping Utility for 64-bit Windows:Version 11.2.0.1.0-Production on 05-SEP-2015 14:09:11
著作権(c)1997、2010、Oracle。全著作権所有。
使用されたパラメーターファイル:
D:\ Oracle11gr2\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

EZCONNECTアダプターを使用してエイリアスを解決しました
連絡先(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))(ADDRESS =(PROTOCOL = TCP)(Host = 192.168.1.12)(PORT = 1521)))
OK(0ミリ秒)

5
Tony

コンピューター上では非常に簡単で、インターネットにアクセスできない場合は両方のシステムが同じネットワーク上にあることを確認するだけです(このためには静的IPが必要です)。さて、コンピューターbで[スタート]メニューに移動し、Oracleフォルダーの下にある構成を検索します。

今すぐ追加をクリックし、次の画面で次をクリックしますここでコンピュータAのOracleグローバルデータベース名を追加する必要がありますここでサービス名を尋ねます(通常はインストールにOracle86を使用します)今すぐ次の画面をクリックしてプロトコルを選択してくださいコンピューターAの名前を入力します。これは、私のコンピューターのプロパティで確認できます。エラーがユーザー名とパスワードが正しくない場合は、次をクリックしてコンピューターAで変更するまでポートを変更せずにテスト接続を選択し、接続が機能するかどうかを確認し、ログイン認証ボタンをクリックして正しいユーザー名を入力しますパスワード。ターゲットが見つからないという理由でコンピューターotターゲットに到達できない場合、1521ポートのファイアウォールに例外を追加するか、コンピューターAのファイアウォールを無効にする必要があります。

4
Manjit Singh

まず、クライアント接続要求を受信するデータベースサーバー(コンピューターA)でlistenerが実行されていることを確認します。これを行うには、lsnrctl statusコマンドを実行します。

場合は、TNS:no listenerメッセージ(下の画像を参照)を受け取った場合、リスナーサービスが実行されていないことを意味します。開始するには、lsnrctl startコマンドを実行します。

enter image description here

次に、データベースの操作とリモートクライアントからの接続のために、Windowsファイアウォールの例外リストに次の実行可能ファイルを追加する必要があります(画像を参照)

Oracle_home\bin\Oracle.exe-Oracle Database実行可能ファイル

Oracle_home\bin\tnslsnr.exe-Oracle Listener

enter image description here

最後に、クライアントマシン(コンピュータB)にOracleインスタントクライアントをインストールして実行します。

sqlplus user/password@computerA:port/XE

3
Rajkaran Mishra

最初に。コンピューターAとBの静的IPアドレスを追加する必要があります。たとえば、私の場合、コンピューターA(172.20.14.13)とB(172.20。 14.78)。

Second。Net Managerを使用するコンピューターAで、リスナーに新しいアドレス(172.20.14.13)を追加するか、listener.oraに新しいレコードを手動で追加します。

# listener.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = E:\app\user\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\user\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\app\user

3番目Net Managerを使用して、IPアドレスコンピューターB(172.20.14.78)でサービスネーミングを作成するか、tnsnames.oraに新しいレコードを手動で追加します。

# tnsnames.ora Network Configuration File: E:\app\user\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ALINADB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

LISTENER_ALINADB =
  (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))


LOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.78)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

第4。コンピューターB(172.20.14.78)にwin64_11gR2_clientをインストールします(たとえば、Windows 10 Pro 64ビットの場合)

五。 Net Configuration Assistantリスナー(localhost)で作成するか、listener.oraにレコードを手動で追加します。

# listener.ora Network Configuration File: F:\app\alinasoft\product\11.2.0\client_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(Host = myserver)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

    ADR_BASE_LISTENER = F:\app\alinasoft

6。Net Managerを使用して、IPアドレスコンピューターA(172.20.14.13)でサービスネーミングを作成するか、tnsnames.oraに新しいレコードを手動で追加します。

SERVER-DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = 172.20.14.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = alinadb)
    )
  )

Seven(コンピューターA 172.20.14.13))データベース操作およびリモートクライアントからの接続のために、次の実行可能ファイルをWindowsファイアウォール例外リストに追加する必要があります:(画像を参照)Oracle_home\bin\Oracle.exe-Oracleデータベース実行可能ファイルOracle_home\bin\tnslsnr.exe-Oracleリスナー

EightOracle Enterprise Managerのポート1158(コンピューターA-(172.20.14.13))への接続を許可(----(https://172.20.14.13 :1158/em/console/logon/logon

9番目ポート1521の接続を許可(入出力)(コンピューターA 172.20.14.17))

TenthコンピューターB 172.20.14.78 sqlplus/NOLOG CONNECT system/Oracle @ // 172.20.14.13:1521/alinadb

Toadを使用する場合、私の場合は---(enter image description here

3
Vitalie Bancu
# . /u01/app/Oracle/product/11.2.0/xe/bin/Oracle_env.sh  

#  sqlplus /nolog  

SQL> connect sys/password as sysdba                                           

SQL>  EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);  

SQL> CONNECT sys/password@hostname:1521 as sysdba
0
lakshmikandan