カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまに数学やデータ分析なども。

macでのOracleクライアントはSQL Developerがおすすめ

普段はWindowsで仕事をしているので、Oracleクライアントツールはosqleditを使っているのだが、普段使いのmacではいいクライアントツールがないかなと思っていた。探してみたがあまりよさそうなのが見つからないので、Oracle純正のSQL Developerがmac版もあったので結局ここに落ち着いた。しばらく使っていなかったけど、よくよく見るとgit連携とかデータモデリングとか、便利そうな機能がいろいろありそうなので、ちょっと使ってみることにする。重さも軽量エディタレベルとはいかないが、手元のmac book airでも軽快に動いているレベルなので、問題なさそう。

macにSQL Developer 4.0.3 をインストールする

まず公式サイトからインストーラを入手する。以下のURLのmacのところから「sqldeveloper-4.0.3.16.84-macosx.app」をダウンロードする。
http://www.oracle.com/technetwork/jp/developer-tools/sql-developer/downloads/index.html
f:id:osn_th:20141226073038p:plain

ダウンロードし解凍したappファイルを実行する。Javaのバージョンが指定されているので、サポートされていないバージョンだと以下のエラーが出る。
f:id:osn_th:20141226073042p:plain

その場合は、Javaのバージョン確認しアップデートを行う。1.7系の最新版で基本的にいいと思う。

$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

Java SE 7は以下のURLから入手できるので、mac版の最新版dmgをダウンロードし、実行するとJavaがアップデートされる。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

ダウンロードしたdmgを実行し、Javaがアップデートされたことを確認

$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

正しいJavaのバージョンでSQL Developerのappを起動すると、以下のように正しくSQL Developerが起動する。

おお!しばらく見てなかったけど、なかなかよさそうなデザインになっている。
f:id:osn_th:20141226073022p:plain

SQL Developerでデータベースに接続してみる

SQL DeveloperはOracle Clientをインストールしなくても動くが、tnsnames.oraをセットする必要がある。まず適当にtnsnames.oraを格納するためのディレクトリを作成する。とりあえず以下にする。

$ mkdir /Users/<Your User Name>/Development/oracle

続いてSQL Developerでtnsnamesのパスを指定する。もし、macにORACLE_HOMEが設定している場合は$ORACLE_HOME/network/adminを参照し、$TNS_ADMINがあればそちらを優先してみるよう。ただし、この環境にはOracle Clientを入れておらず、環境変数は定義していないので、SQL Developerで指定する。

SQL DeveloperのメニューバーからPreferenceを選択する。
f:id:osn_th:20141226073045p:plain

データベース> 拡張から、Tnsnamesディレクトリに上で作成したディレクトリを指定しOK

f:id:osn_th:20141226073048p:plain

指定したパスにtnsnames.oraを配置する。

$ cat tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = vmcentos)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

これで準備はOK。さっそくSQL Developerから接続してみる。「接続の作成」をクリック。
f:id:osn_th:20141226073028p:plain
接続名を適当につけ、ユーザー名/パスワードを入力、接続タイプをTNSにし、ネットワーク別名を選択。「テスト」をしてみる。
設定が間違っている場合は以下のようにエラーとなる。
f:id:osn_th:20141226073052p:plain

今回はDBサーバ側のファイアウォール(iptables)を無効化していなかったことが原因だった。

# service iptables stop
iptables: ファイアウォールルールを消去中:                  [  OK ]
iptables: チェインをポリシー ACCEPT へ設定中nat mangle filt[  OK ]
iptables: モジュールを取り外し中:                          [  OK ]
# chkconfig iptables off

もう一度テストする。今度は成功した!なので、「保存」しておく。
f:id:osn_th:20141226073055p:plain

エディタからSQLが実行できることを確認!
f:id:osn_th:20141226073033p:plain

まとめ

macでSQL Developerを使うための導入部をまとめてみました。インストールは簡単にできるので、ただのSQLクライアントとして使うだけならそれほど面倒でなくすぐに使えますね。macでは優れたOracle Clientツールがあまりなさそうなので、SQL Developerを使いこなしてみるのもよいかもしれません。