次のページ 前のページ 目次へ

4. データベースの作成

4.1 概観

まだデータベースを作成しないようにという前節のアドバイスに 従っていただけたでしょうか?

多くの人々にとって、データベースの作成は次の言葉に要約できる かもしれません - 「'dbassist'を実行せよ」 Oracle を走らせるのが 初めてでなければ、'dbassist' が聞いてくる質問には難なく答えら れるはずです。

完全を期すために、私のやったことをドキュメントに残しますが、 まずは私の目指していたものを述べるのがベストだと思います。 要約 - これは仕事用のシステムでも「本格的な」(複数ユーザの、 または、常時使用の) 開発用ボックスでもないのです。私が 8i を インストールしたのは、8 以前のバージョンに比べてどこが新しい のか、あるいはどこが違っているのか、実際にいじくりまわしながら 調べるためなのです。

そういうわけで、なるべく 'dbassist' の安易なオプションを選びました。 別のディスク、またはせめて別のパーティションを使用することを 推奨されましたが、そうしませんでした。私の $ORACLE_HOME/home/oracle です。すべてのデータファイルとソフトウェアは まとまってそこにあり、1 つのパーティションの上に載っています。

4.2 ステップバイステップガイド

  1. コマンドプロンプトで下のようにタイプします。
    dbassist
    
  2. 私のマシンは "JNLS Exception: oracle.ntpg.jnls.JNLSException. Unable to find any National Character Sets." と言ってきます。 Oracle8i パッチマニュアルによると、これは既知の問題 (884001) なので無視して大丈夫です。
  3. "Create a database" ラジオボタンを選択し、"Next" を押します。
  4. ここで2つのオプションがあります。通常(Typical)とカスタム(Custom)です。 dbassist の操作がきちんとわかるぐらいなら、こんなところを読んではいない でしょうし、カスタムを選んでも楽勝でしょう。それはここでは取り扱いません。 代わりに、"Typical" を選択し "Next" を押したものとします。 (訳注: 日本語メッセージをインストールする場合は Custom を選択する必要があります。製品選択画面のところで右上の Language ボタンをクリックし、Japanese を追加してください)
  5. 次に CD からデータベースをコピーするかデータファイルを作成するか 聞いてきます。私が、最初のオプションを試したときは、 Oracle は CD プレーヤを見つけることに常に失敗していました。 (たった今そこからインストールしたばかりなのに!) ですので、 2番目のオプションをお勧めします。別に難しいわけではなく、 少し余計に時間がかかるだけでしょう
  6. データベースを走らせる環境を聞かれたとき、'Hybrid' を選択するのが おそらく無難でしょう。
  7. 今度は常時何人のユーザがデータベースを利用するか聞いてきます。 私は 5 と入れました。
  8. 次に新しいデータベースにどの製品を入れるか聞いてきます。 ここでも、自分が何を入れたいのかなんて私より読者の皆さんのほう がよくわかっていますよね!
  9. ここで、Oracle は 「グローバルデータベース名」 と "SID" を必要とします。 このデータベース名は、フルドメイン名のようなものです。 (しかし別物です) Oracle の達人なら何を入れるべきかわかるでしょうが、 そうでない場合、読者の会社にはなんらかの命名規則があるかもしれません。 私の場合は、'dev1' としました。(SID とデータベース名の両方に対して)
  10. さて、データベースを*いま*ここで作成しますか?それとも必要な情報を シェルスクリプトに保存させたほうがいいでしょうか?128MB の RAM では、 前者のオプションは苦痛だということがわかりました。私はシェルスクリプトを 作成し、X などメモリを大量に消費するものをすべて終了させて、そのスクリプトを 走らせました。そっちのほうがずっと手際がいいです。
  11. ドキュメントのどこにも見つからなかったのですが、これなしには データベースはまともに動きません! 'dbassist' が作成するデータベース自体は いいのですが、デフォルトでユーザロールバックセグメントがオフラインに なっています。(注釈 - 非システムユーザはトランザクションを必要とする 操作を実行できません) 以下のようにタイプします。
    cd $ORACLE_HOME/dbs
    
    ここで、"init<SID>.ora" という名前のファイルを編集する必要が あります。 (私の場合 "initdev1.ora" でした) ファイルの真ん中あたりで、こんな感じの行がコメントアウトされています。
    # rollback_segments = (r01, r02, r03, r04)
    
    この行のコメントを外して(シャープ記号を取り除く) ファイルを保存すれば 終わりです。
  12. これはメタステップとでも呼ぶべきものです。データベースがあって起動 できるはずだとしても、おそらくパスワードシステムについては何も知り ませんよね!知っておくべきことが2つあります。1つは SYSTEM のパスワード です。デフォルトは 'MANAGER' になっています。 (Oracle のパスワードは 大文字にするのが習わしのようです。実際には、大文字小文字の違いは認識 されません) SQL*Plus のプロンプトで password と タイプして、すぐにパスワードを変更することをお勧めします。 (ALTER USER コマンドじゃないかと思う人もいるでしょうが、これは 8i 付属バージョンの SQL*Plus の新コマンドです) 他に知る必要があるのは、 SYS のパスワードです。このデフォルトは 'CHANGE_ON_INSTALL' で、 その名の通りインストールしたらすぐに変更しましょう!
  13. 最後のステップです。これは、SQL*Plus へのログイン時の うっとうしい 'no profile' 警告を取り除きます。'system' ユーザとして ログインしてください。(sqlplus system/<password>) それから次のようにタイプします。
    @?/sqlplus/admin/pupbld.sql
    
    疑問符は $ORACLE_HOME ディレクトリのエイリアスです。
これで終わりです。これで、SQL*Plus を使ってログインできて、 すぐに使えるデータベースができているはずです。

4.3 Q&A

本当にそんなに簡単なんですか?

答えはイエスでありノーでもあります。ただ遊んだり、8i の新しい特徴を 学ぶため、自分自身用にデータベースを構築するなら、答えはイエスです。 上の指示に従ってできるデータベースは完全で、うまく動作します。

しかし、Oracle について知識があるなら、デフォルトのコンフィギュレーションは あきれるほどひどいものだとすぐに気づくでしょう。もし本格的な仕事用の システムを作っているなら、"Custom" オプションを使ったほうがいいでしょう。

私のお遊びのシステムに対してさえ、いくらかひねりを入れました。大部分の テーブルスペースのサイズを増やし、かつそれが自動的に増えないようにしました。 (利口ぶるソフトウェアは嫌いです)

本当にすべてのファイルを別々のディスクに入れる必要がありますか?

必要はありません。そうしなくても動作します。しかし、そうだとしても、 すべてのファイルを同じディスクに入れるのは勧めません。

ファイルをいくつかのディスクに分散して置くと、たとえデータファイルと ロールバックセグメントを別々にするだけでも、著しいパフォーマンス上の 利点があります。詳しくは、Oracle DBA book を読んでください。

dbassist を起動できません

最初にインストールした時にいくつかある長さ 0 のファイルが原因です。 パッチを当てると問題は解決します。

"ORA-01034: ORACLE not available" と言われます

簡単に言うと、おそらく、$ORACLE_SID が正しく設定されていないか、 あるいはまったく設定されていないか、です。'dbassist' で与えたものと 同じ値に設定されていて、かつエクスポートされていることを確認して ください。 (つまり B シェル互換シェルでは、export ORACLE_SID)

"ORA-01012: Not logged in" と言われます

これはとてもありふれたエラーで、いろいろな原因があります。

まず、共有サーバ構成 (MTS と呼ばれることもある) ではないことを確認して みたほうがいいでしょう。専用サーバ構成を使ってデータベースを作成し、 後でそれを変換します。 (訳注:共有サーバ構成では、は一つのサーバープロセスが複数のユーザー セッションの処理を受け持つのに対し、専用サーバー構成では、ユーザー のセッション1つに対して Oracle のサーバープロセスが一つ 生成されます)

これが原因でなければ、NLS_LANG 環境変数をチェックします。一番簡単なのは、 それを unset することです。もし本当に使いたいなら、必ず完璧に正しく設定します。 1 (いち) と l (エル) を取り違えないように気をつけてください! (訳注:EUC 使用の日本語環境では japanese_japan.ja16euc を使います。 ただし環境変数 ORA_NLS33 も正しく設定しないと日本語メッセージは使えません)


次のページ 前のページ 目次へ