Blank?=False

ゆるゆる仕事したいフリーランスエンジニアの記事

Mac OSXにOracleをインストールしてみた(インストールだけ編)

f:id:stonebeach-dakar:20160424222032j:plain

なぜOracleをインストール?

商用DBMSではメジャーな存在であるOracle。個人ユーザーには手が出せない高嶺の花!
なんておもってたら、無償版のExpressの存在を知ったので。

様々なデータベースの書籍にもOracleは操作方法が違う、ということが多いので
そういった違いを勉強するためにも。

実際のところは興味心が大半だけど

自分の経験

  • 仕事ではAccessで開発、VBAでOracle10gのクライアント作成等
  • プライベートではMySQLPostgreSQLを使用。
  • 商用DBの構築経験なし。
  • クライアントばっかりでOracle本体はサッパリ

まずはDBサーバをダウンロード!と思ったら

公式HPでダウンロード。。。と思ったらMacOSX版がない!

Oracle Database Express Edition 11g Release 2のダウンロード f:id:stonebeach-dakar:20160424204908p:plain

クライアントのMacOSX版はあるのに・・・!

ググると、以下のようなブログを発見。 taiju.hatenablog.com

MacOSX版ではLinux仮想環境を作ってインストールする必要がありそうです。
そのための方法もこのブログで書かれていますので、やってみましょう。

Vagrantで仮想環境を作ってOracleをインストール

Vagrantの詳しい説明は端折ります。
簡単に言えば仮想環境を簡単に作れるツールです。

まず、Vagrantで設定を始める前にLinux版OracleDBサーバのインストーラが必要なので、
先程のOracleのダウンロードページから、Linux版をダウンロードしておきます。
f:id:stonebeach-dakar:20160424210900p:plain

github.com
そして、後は上のReadme内のInstallationの通りにインストールしていくだけです。
動画もあるので、わかりやすい!助かる!

いくつかエラーが出ているけど今は気にしない!
※ちゃんとエラー文を読んでおきましょう

インストールが完了して、vagrant sshでログインすると、いきなりこんなエラーが出てきました。

Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 02:23:18 2012 from 10.0.2.2
-bash: /u01/app/oracle/product/11.2.0/xe/bin/nls_lang.sh: No such file or directory

nls_lang.shが見つからないようです。ファイル名を見た感じ、言語関係かな?
とりあえず今は気にしないでおきましょう。。

初めてのOracle

[要注意]自分は完全なるOracle初心者です。というか初めてです。
この記事を見てなにか事故があっても責任は取れません!

Oracleインスタンスは、以下のコマンドで起動します。 今回、ユーザーがないので/nolog オプションを付けます。

$ sqlplus /nolog

ちなみに、このnologオプション、初見は「ログを作らない」と思っていたら
「ログインしないでセッションを作る」モードみたいですね。
恥をかくとこだったぜ!

インスタンスを作ったら、DBMSに接続します。
この辺はさっぱりなので、@ITを参考にしました。
データベースの起動(SQL*Plus版) − @IT

SQL> CONNECT sys/sys AS SYSDBA

さてこれでデータベースを作れるかな?とCREATE DATABASEを打ってみます。
残念だな、エラーだよ!

SQL> CREATE DATABASE Hello;
CREATE DATABASE Hello
*
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-01100: database already mounted

MySQLとは違うのだよ、MySQLとは!
なんて言葉が脳裏に浮かびました。

さすがOracle,一筋縄ではいかない

見せてもらおうか、エンタープライズデータベースの性能とやらを!

見せつけられました。

データベースを1つ作るだけでも色々と大変そうです。
調べてみると、色々な設定が必要だったりと導入難易度がかなり高そうですね。
続きは次回に。