[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
-,

関連記事

OracleDataaccessでどハマリして、勉強になったとかじゃなくお客さんに迷惑かけたし、もう穴を掘って埋まりたい

みんなは、どうやってOracleDataaccessを筆頭に、複数バージョンが入り乱れるDLLを管理してるのか教えてください。 マジで。

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

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

Oracleで「ORA-00906: 左カッコがありません。」のエラーが出た時の対処法

はい。 そろそろ、上司の無茶目な仕様変更にも折り合いをつけて行きたいSEっぽいことをやってる人です。 前にも書いたかもしれないけど、また、どハマリしたOracleのエラーについて。 エラーの内容が全て …

OracleでLISTAGG関数を使ったけど、世界を変えられなかった話・・・

OracleでLISTAGG関数を使ったら、世界が変わった話。 はい、休日出勤でした。 そして、休日出勤の結果、以下のことが分かりました(泣 日本の中心付近で仕様変更と闘うSE日記OracleでLIS …

[ORACLE]ora-12638 資格証明の取出しに失敗しましたと表示される原因と対処法

客先で起こった内容。 状況 客先のdumpを取得するために、用意されているバッチファイルを実行した時に発生 ora-12638 資格情報の取出しに失敗しました バッチファイルの黒い画面で一瞬だけエラー …


カテゴリー