Microsoftの整備された道を歩んできた者にはOracle のハードルが高く感じる模様。
ただ「接続して、テーブルを作る」までに(他のこともやっていたとはいえ)数日を要しました。
そして失敗につぐ失敗のはて、結局素直に本を買う。
まず成功した手順と注意点について
https://www.oracle.com/technetwork/jp/indexes/downloads/index.html#database
でファイルをダウンロードできるのですが、まずここでアカウント登録が必須。このアカウント登録、住所や電話番号まで登録しなければいけないので注意。捨てアドでとる、なんてことはしないほうがよさそう。少なくとも私は正確なものを入力しました。
んで次。
Database 12c Enterprise/Standard Editions のWindows用で容量約2.8GB。zipを解凍するので、だいたいこの2倍の容量が最初にいる。
これに加え、インストールには8GB強必要です。
Zipは解凍後に削除するにしても、余裕をもってだいたい15GBくらいは見ておきたい。
後は本に従ってインストールするだけなのですが、インストールには結構時間がかかる。しかもファイアウォールの許可ダイアログが途中で二回来るので、画面を見ておく必要があるという面倒くささ。
GUIでインストールするならこればかりは見ててね、という話ですけどちと面倒。
ハードルの高さについて
苦戦したことについて。
ググラビリティの中途半端な高さ
「Oracleを使う」という文脈だと、だいたいデータベースを指すことが多いと思うのですが、「Oracle」単体だと企業名になるため、Javaなんかの製品が混ざってくる。
検索にはOracle Database を使えばいいのですが、それだと記事に「Database」を含まないものが入ってこない恐れがあるので使い分けが必要……な気がする。
最新バージョンに関する情報が少ない
現時点の最新バージョンは19c。
さすがに最新バージョンの情報が少ないのは仕方ないとして、その前バージョンの18cも少なめ。
正確には、「新しい機能」の説明はチラホラはあるのですが、「基本的なSQLは分かるがoracleは初めて」というような「Oracle初学者」向けの情報が見つからず。
「特別な理由がない限り、まずは最新のものを使う」のが基本だと思っているので、最初は何も考えずに19cを入れてしまったのですが、入れ方や入れた後の手順が分からずこれで失敗。
最終的に、「いきなり新機能は使いこなせるわけないのだから、まずは情報が多い12から触ろう」という決断をくだすまでに時間がかかってしまった。
19cは容量がでかい
上でも書きましたけど、最初に
- まずは最新ものもを入れてみよう!19cだ!
- 不慣れなんだからGUI環境欲しいな!Oracle Enterprise Managerとやらを入れてみよう!
などとやっていたら25GB超えの容量が必要となってきて、古いマシンには容量不足で入らないという事態に。
「練習目的だから、データベースもそんな作らないし容量なんて大して食わないやろ」とか思っていたら大失敗。
そのあとで余裕があるマシンでやり直してやっぱり失敗するのを繰り返した。
Docker でやってみようぜ
Docker Hub にOracleLinuxというものが公開されているのですが、いかんせん「何が入っているどういうイメージなのか」の情報がサックリと手に入らず撤退。
ただし、これは私のLinux、Docker経験の少なさに起因している問題ので慣れている人ならいけるのではないかと予想。
慣れたらこっちにも挑戦したいね。
アンインストール失敗
19cをアンインストールしようとしたところ、専用のアンインストーラーexeがなく、バッチファイルをたたくという手順でした。
で、このバッチファイル、3つの落とし穴があります。
- 管理者権限で実行する必要がある
- 全部のファイルが消えるわけではない
- 対話式アンインストーラーだが、意味が分からない
はじめの2つはそりゃそうだよね・仕方ないよね、という感じ。
インストールに管理者権限がいるんだからアンインストールにも管理者権限は必要だよね、くらい。
問題は3つ目で、対話式で聞かれる用語の意味がOracle初学者には意味が分からない。基本的にはデフォルト値でいけるのですが、ところどころデフォルト値が無いものがあり何かを入れる必要があるのですが何を入れればよいのやら。
調べながら入力しましたが、本当に正しい手順だったのか確信が持てず。
きちんと勉強していけば分かるのでしょうが、インストールのトライアンドエラーすら難しいというのはなかなか辛い。
今後の展望
12cで基本を学べたら、19cやOracleLinuxにも挑戦したいところ。
何か月かかるか分かりませんが頑張りたい。