コンピューターAにOracle 11g XEをインストールしています。コマンドconnect username/password
を使用して、sqlコマンドラインから接続できます。デモデータベースにSQL命令を送信することもできます:Select * from demo_customers;
データベースはコンピューターAのローカルホストで実行されています。
コンピューターBをローカルホスト上のコンピューターAのデータベースに接続したい。どうやってやるの?
リスナーを開始するには、サーバーAでlsnrctlユーティリティーを実行する必要があります。次に、次の構文を使用してコンピューターBから接続します。
sqlplus username/password@hostA:1521 /XE
デフォルトの1521が使用される場合、ポート情報はオプションです。
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.oraEZCONNECTアダプターを使用してエイリアスを解決しました
連絡先(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME =))(ADDRESS =(PROTOCOL = TCP)(Host = 192.168.1.12)(PORT = 1521)))
OK(0ミリ秒)
コンピューター上では非常に簡単で、インターネットにアクセスできない場合は両方のシステムが同じネットワーク上にあることを確認するだけです(このためには静的IPが必要です)。さて、コンピューターbで[スタート]メニューに移動し、Oracleフォルダーの下にある構成を検索します。
今すぐ追加をクリックし、次の画面で次をクリックしますここでコンピュータAのOracleグローバルデータベース名を追加する必要がありますここでサービス名を尋ねます(通常はインストールにOracle86を使用します)今すぐ次の画面をクリックしてプロトコルを選択してくださいコンピューターAの名前を入力します。これは、私のコンピューターのプロパティで確認できます。エラーがユーザー名とパスワードが正しくない場合は、次をクリックしてコンピューターAで変更するまでポートを変更せずにテスト接続を選択し、接続が機能するかどうかを確認し、ログイン認証ボタンをクリックして正しいユーザー名を入力しますパスワード。ターゲットが見つからないという理由でコンピューターotターゲットに到達できない場合、1521ポートのファイアウォールに例外を追加するか、コンピューターAのファイアウォールを無効にする必要があります。
まず、クライアント接続要求を受信するデータベースサーバー(コンピューターA)でlistenerが実行されていることを確認します。これを行うには、lsnrctl status
コマンドを実行します。
場合は、TNS:no listener
メッセージ(下の画像を参照)を受け取った場合、リスナーサービスが実行されていないことを意味します。開始するには、lsnrctl start
コマンドを実行します。
次に、データベースの操作とリモートクライアントからの接続のために、Windowsファイアウォールの例外リストに次の実行可能ファイルを追加する必要があります(画像を参照)
Oracle_home\bin\Oracle.exe-Oracle Database実行可能ファイル
Oracle_home\bin\tnslsnr.exe-Oracle Listener
最後に、クライアントマシン(コンピュータB)にOracleインスタントクライアントをインストールして実行します。
sqlplus user/password@computerA:port/XE
最初に。コンピューター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)
)
)
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を使用する場合、私の場合は---(
# . /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