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
ダウンロードし解凍したappファイルを実行する。Javaのバージョンが指定されているので、サポートされていないバージョンだと以下のエラーが出る。
その場合は、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が起動する。
おお!しばらく見てなかったけど、なかなかよさそうなデザインになっている。
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を選択する。
データベース> 拡張から、Tnsnamesディレクトリに上で作成したディレクトリを指定しOK
指定したパスにtnsnames.oraを配置する。
$ cat tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = vmcentos)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
これで準備はOK。さっそくSQL Developerから接続してみる。「接続の作成」をクリック。
接続名を適当につけ、ユーザー名/パスワードを入力、接続タイプをTNSにし、ネットワーク別名を選択。「テスト」をしてみる。
設定が間違っている場合は以下のようにエラーとなる。
今回はDBサーバ側のファイアウォール(iptables)を無効化していなかったことが原因だった。
# service iptables stop iptables: ファイアウォールルールを消去中: [ OK ] iptables: チェインをポリシー ACCEPT へ設定中nat mangle filt[ OK ] iptables: モジュールを取り外し中: [ OK ] # chkconfig iptables off
もう一度テストする。今度は成功した!なので、「保存」しておく。
エディタからSQLが実行できることを確認!
まとめ
macでSQL Developerを使うための導入部をまとめてみました。インストールは簡単にできるので、ただのSQLクライアントとして使うだけならそれほど面倒でなくすぐに使えますね。macでは優れたOracle Clientツールがあまりなさそうなので、SQL Developerを使いこなしてみるのもよいかもしれません。