Oracle DB Developer VMにサンプルスキーマをセットアップする
なぜサンプルスキーマをセットアップするのか
Oracle関連のドキュメントにはサンプルスキーマを例にしたものが多数あるため、用意しておいた方が手軽に試行できるため何かと都合が良い。Oracleの学習を進める上でも、自由に使え、かつ、それなりに複雑なDB*1として便利。実際に複数テーブルを設計して実装して、というのは、もちろん勉強する上では将来的には必要だが、まず最初にすることとしては敷居が高く、手間がかかる。
サンプルスキーマを入れるには?
Oracle DBのインストール時に、オプションで選べるようだ。しかし、Oracleのインストールは、それ自体それなりに手間がかかることなので、すでにOracleがセットアップされている仮想マシンイメージ「Developer VM」を使う場合も多いだろう*2。というわけで、すでにあるOracle環境にサンプルスキーマを後からインストールすることを考える。
既存の手順
ネットでOracleインストール後にサンプルスキーマをインストールする方法を調べたところ、「Oracle Database Examplesをインストールすることでサンプルスキーマインストールスクリプトが所定の場所に配置される」という記述が見つかったが、実際試したところ、そうならなかった。いろいろ調べたところ、OracleのGitHubでインストールスクリプトが配布されていることがわかった。もしかしたら配布方法が変わって、Examplesには同梱されなくなったのかもしれない。
実際の手順
以下はoracleユーザで行う。
作成するスキーマのパスワードは全てoracleとする。
cd ~ wget https://github.com/oracle/db-sample-schemas/archive/master.zip unzip master.zip cd db-sample-schemas-master/ perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat mkdir log sqlplus system/oracle@localhost:1521/orcl @mksample oracle oracle oracle oracle oracle oracle oracle oracle users temp /home/oracle/db-sample-schemas-master/log/ localhost:1521/orcl
なお、上記コマンドラインは、試行錯誤して導き出した最短で完了する手順であるが、完全にこの通りに実際に実行したわけではないのでどこかに漏れや誤りがあるかも知れない。一行ずつ、そのコマンドの意味を把握して実行していくことをオススメする。
2017/8/20 追記
やっぱり間違っていた。最後のコマンドの引数でスクリプトの実行ログを保存するディレクトリを指定するが、そのパスが間違っていた(修正済み)。まあ、ログが保存されないだけで、処理自体は成功しているようだが。