コマンドプロンプトなどでOracleに接続する際のメモ。
$ export ORACLE_SID=orcl
$ sqlplus user/passwd
$ sqlplus user/passwd@orcl
接続方法①は環境変数を指定してインスタンスに接続します。
サーバに複数Oracleインスタンスが起動していても、環境変数で指定したインスタンスに接続ができます。
接続方法②はlistner.oraの接続情報を参照してインスタンスに接続します。
@マークの後のインスタンス名をキーにlistner.oraに記載された接続情報を参照し、インスタンスに接続します。
サーバ内に同じ名前のインスタンスは存在できませんが、同じネットワーク内には同じ名前のインスタンスが存在できます。
ネットワーク内に同じOracleインスタンス名が存在する場合(テスト環境サーバと本番環境サーバ 等)どちらのインスタンスに接続するかを意識しなければなりません。
サーバ内のインスタンスに接続する場合は、環境変数を指定する接続方法①で接続します。
外部サーバのインスタンスに接続する場合は、listner.oraに記載されている情報を参照する接続方法②でインスタンスに接続します。
ここで誤って、テスト環境から本番環境に接続する際に、接続方法①で接続してしまうと、本番環境に接続しているつもりが、テスト環境に接続していた・・ということも起こりうるわけです。
誤ってテスト環境に接続してしまったのであればまだいいですが、逆だと大変です。
listner.oraに本番環境のインスタンス情報が記載されており、かつ何も意識せず接続方法②で接続してしまった場合、テスト環境に接続しているつもりが本番環境に接続してしまっていた。。ということが起こりえます。
(そもそもテスト環境サーバと本番環境サーバを同じネットワークセグメント内に存在させることがナンセンスな話なのですが・・。)
考えるだけでゾッとしますね。。
おしまい。