[ORACLE]今接続しているサーバー・スキーマとかを確認する

投稿日:2018-07-19

Oracle使ってる時に、今どのサーバーに繋いでるの?とか、今どのスキーマに繋いでるの?

ってなるとき無いですか?

そんなときの確認法。

今、どのサーバーに接続してるんだ?

先日の仮想マシンにOracleをインストールした時のこと・・・

ゲストOS内ではローカル接続は出来ていて、外から接続ができなくて悩んでいたタイミングに、IPの直接指定で接続できた(ように見えてしまって)いたんです。

実際には、ホストOS側のOracleに繋がっているという状態だったんですが、TRUNCATEコマンドなんかも実施したりしてたので、後で考えた時にゾッとしたわけです。

実際、ローカル環境だったので、dumpファイルインポートしちゃえば無かったことに出来るので、大丈夫ではあったんですが、どのサーバーに繋いでいるのか?っていうのは確認必須だな・・・と。

接続・実行先の確認方法

SQLDeveloper

色々楽なので、使うんですが、SQLDeveloperだと、こんな感じで接続状態と、SQLの実行先が分かります。

データベースアイコンに電源コネクタみたいなのが表示されるようになってるので、現在の接続先が分かりやすい。

ただ、これも接続確認が出来ている状態で有効な確認方法であって、100%ではないわけです。

先日の接続出来ていない状態だと、アイコンもこういう風に変わって、普通に接続できているように見えていたので。

インスタンスの確認

SELECT * FROM v$instance;

確認できる項目はいくつかあるけど、

  • INSTANCE_NAME
  • HOST_NAME
  • VERSION
  • STARTUP_TIME

なんかを確認すると良い感じ。

少なくとも、HOST_NAMEが正しい必要はある。

接続先IPアドレスの確認

CYS_CONTEXTを使うと、もっと色々と情報は取得できるけど、インスタンスの確認でHOST_NAMEがわかっているので、念のためにIP確認をする。

SELECT sys_context('USERENV', 'IP_ADDRESS') FROM dual;

「IP_ADDRESS」部分を変更すれば現在のセッションの定義を確認できる。

パラメータについては、

https://docs.oracle.com/cd/E60665_01/db112/SQLRF/functions184.htm

を参照のこと。

まとめ

うちの会社では、プロジェクトごとに仮想マシンをWindowsServer上に作成して、Oracle11gXEでDB環境を作って社内での開発に使用してたりします。

が、先日のような事が起こると、どこに接続しているか?というのは非常に重要なファクターなので、確認せざるを得ないなと。

SELECT文やVIEWなら全然問題ないけど、TRUNCATEや、大量データのDELETEをかます時には一度確認したいなと。

別にローカルDBに接続されてしまっているだけなら全く問題ないけど、実はスキーマが本番テスト用でした・・・とかだと笑えないので。

まぁ、本番テスト用だろうが管理者に頭下げてロールバックなりして貰えれば解決するけど、その間になぜかPLとかから怒られるので・・・

後は、特に客先では気をつけましょうって話。







-ORACLE
-,

関連記事

ORACLEで「IMP-00013: DBAのみ別のDBAがエクスポートしたファイルをインポートできます。」の解決法。

客先DBのエクスポートしたものがインポートできずに、タイトルのエラーを吐く。 幸い、お客さんの目の前じゃなかったので、ゆっくり調べて解決できたけど、客先で発生したら困るよなぁ・・・ もともと英語のメッ …

C#で発生するORA-01036:illegal variable name/numberのエラーの解決法

毎度毎度、原因の分かりづらいエラーにハマりますw 今回は、「ORA-01036:illegal variable name/number」。 日本語に直訳された内容だと「変数の名前/数が無効です」とな …

[Oracle]長文SQLをWITH句を使って、SQLの繰り返しをまとめる

自分、WITH句アレルギーです\(^o^)/ 今でこそ、使うようになりましたが、最初は拒否反応バリバリでした。 だって、WITH句で何ができるのか良く分からなかったからです。 VIEWのように使えるか …

ORACLEでCASE文を使用した時にORA-00932のエラーが出る

割と悩んだ・・・ 原因は、CASE文で使用している項目のデータ型が異なるのが原因みたいだけど、正直、ぴんと来てない現実w select case name when ‘A’ then ‘あ’ when …

ORACLEで他のスキーマでSQLを実行した時に、権限不足で「ORA-01031: 権限が不足しています。」のエラーになる

A5Mk2 http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/ 普段、SQL関連は、A5Mk2っていうソフトを使用しています。 今回のエラーは、自 …


カテゴリー