意外と簡単!?Or acle Database 10g Release2
-
データベース構築から運用まで
-
「データベース構築の基礎編」
(Linux 版)
Creation Date: Feb 10, 2004 Last Update: Aug 8, 2005 Version: 1.3
はじめに
「意外と簡単!?」シリーズは、Oracle Database 10g を使用してこれからシステム構築を行 い、運用していく方向けに作成しており、初心者の方でも容易に構築/運用ができるよう全 編にわたり極力GUI ツールを利用した説明として構成しております。 システム構築の方法や運用にはさまざまな方法が存在しますが、「意外と簡単!?」シリーズ では特定のハードウェア上で小中規模のシステムを構築/運用することを目的とした実践的 な資料として構成している関係上、個々の機能の説明等は最小限に留めております。 また基本的にStandard Edition で利用可能な機能の範囲にて説明しております。 「意外と簡単!?」シリーズが皆様のシステム構築/運用の一助になれば幸いです。「意外と簡単!?」シリーズの資料構成
「意外と簡単!?」シリーズは、以下の 5 つの資料から構成しております。 1. データベース構築基礎(本書) 2. セキュリティ設定 3. バックアップとリカバリ 4. データベースの運用 − 監視 5. データベースの運用 − チューニング「意外と簡単!?」シリーズにおける H/W、S/W
構成
サーバー:DELL PowerEdge 2650 CPU:Xeon 3.06 GHz x 2 メモリ:6GBオペレーティング・システム:Red Hat Advanced Server3 RDBMS:Oracle Database 10g Release 2 Standard Edition for Linux
ソフトウェアのセットアップ
このセクションでは、Oracle Database 10g Release2 のセットアップを行います。今回は、 オペレーティング・システムとしてLinux を利用しますので、Linux OS のインストールか ら、ディスク・ボリューム等の各種設定、およびOracle Database 10g for Linux のインス トールまでをこのセクションにて行います。
システム要件の確認
ハードウェエア要件、ソフトウェア要件に関する最新情報は、日本オラクル ホー ムページの「オラクル製品 主なシステム要件」にてご確認ください。 http://www.oracle.co.jp/products/system/index.htmlOracle インストール前の各種設定
Oracle をインストールする前に、Linux OS にてユーザーの作成やカーネル・パラ メータ等の設定を行う必要性があります。これら各種設定については、マニュア ル「クイック・インストレーション・ガイド 10g リリース 1(10.2) for Linux x86」 を参照してください。マニュアルは、以下の URL よりダウンロード可能です。 http://otn.oracle.co.jp/document/products/oracle10g/Oracle Database 10g Release 2 のインストー
ル
Oracle のソフトウェアをインストールする前の各種設定が終了したら、以下の手順 に従って Oracle をインストールします。 1. CD-ROM マウントし、マウント・ポイントより以下のコマンドを実行してイ ンストーラーを起動します。 $ cd /tmp $ /mnt/cdrom/runInstaller 2. 以下のような画面が表示されます。「標準インストール」を選択し、以下のよ うに入力します。ここではデータベースの作成は行いませんので、「初期デー タベースの作成」のチェックをはずして、「次へ」ボタンをクリックしてくだ さい。 項目名 入力内容 Oracle ホームの場所 /app/oracle/product/10.2.0/db_1 インストール・タイプ Standard EditioinUNIX DBA グループ oinstall
3. 「インベントリ・ディレクトリと資格証明の指定」の画面が表示されます。 以下のように入力し、「次へ」ボタンをクリックしてください。
項目名 入力内容
4. 「製品固有の前提条件のチェック」の画面が表示されます。チェックが正常 に終了していることを確認し、「次へ」をクリックしてください。
5.
6. 「サマリー」画面が表示されます。内容を確認の上「インストール」をクリ ックするとインストールが開始されます。
7. インストールの最後に「構成スクリプトの実行」画面が表示されます。この 画面が表示された場合、別の端末ウィンドウより root ユーザーにて以下のス クリプトを実行してください。実行した後 OK ボタンをクリックしてくださ い。 /home/oracle/oraInventory/orainstRoot.sh /app/oracle/product/10.2.0.1/root.sh 8. インストールが終了すると、「インストールの終了」画面が表示されますので 「終了」をクリックしてインストーラーを終了してください。 終了画面には、いくつかのウェブ・アプリケーションにて使用するポート番 号も表示されていますが、これらのポート番号は、oracle_home/install/portlist.ini にも記録されています。
データベースの作成
このセクションでは、データベースを作成します。また、データベース作成後にEnterprise Manager を使用してデータベースの構成情報を確認したり、代表的なコマンド・ライン・ ツールであるiSQL*Plus についても説明します。データベースを作成する方法
データベースを作成する方法として、SQL 文を使用してコマンドにて作成する方 法と、DBCA(Database Configuration Assistant)という GUI ツールを利用して作成す る方法があります。今回は、GUI ツールである DBCA を利用してデータベースを 作成します。 実習: データベースの作成 DBCA を利用してデータベースを作成しましょう。 1. 以下のコマンドにより、DBCA を起動します。 $ cd $ORACLE_HOME/bin $ ./dbca 2. Welcome 画面が表示されますので、「次へ」をクリックします。 3. 操作を選択しますが、今回は「データベースの作成」を選択して、「次へ」 をクリックします。4. テンプレートを選択する画面が表示されます。テンプレートとは、構成済 みのデータベース設定のことです。商用のシステムではシステム要件にあ わせて構成するため使用することは少ないと思われます。今回は汎用的な 小規模データベースという事でテンプレートを使用します。「汎用」を選択 し、「次へ」をクリックします。 ポイント:本番のシステムでは既に表領域の設計等ができているはずで すので、「カスタム・データベース」を選択して設計した内容に従ってデ ータベースを作成してください。 5. グローバル・データベース名を決定します。”名前.ドメイン名” としてグロ ーバル・データベース名を付けます。ドメイン名はネットワーク・ドメイ ン名と一致しなくても構いません。「グローバル・データベース名」に値を 入力すると、最初のピリオドまでが「SID」にも入力されます。例えば、「グ ローバル・データベース名」に ora10g.jp.oracle.com と入力すると、「SID」 に自動的に ORA10G と入力されます。今回は、「ORA10G」という SID 名に て作成します。
6. データベースの管理方法を問い合わせる画面が表示されるが、とりあえず ここでは、デフォルト設定のまま「次へ」をクリックします。 7. パスワード管理の画面が表示されます。SYS はデータベースを起動/停止で きる他、データベース管理のすべての権限を持っています。各ユーザーに 対し個々に設定するか、全てのユーザーに同じパスワードを設定できます。 今回は、全てのアカウントに対して「ORACLE」というパスワードを設定 します。「次へ」をクリックします。 データベースファイルをどのような形式にて作成するかを選択できます。
今回はデフォルト設定のファイル・システムを選択して「次へ」をクリッ クします。 9. データベース・ファイルを作成する場所を指定します。ここでは、デフォ ルトの「テンプレートのデータベース・ファイルの位置を使用」を選択し、 「次へ」をクリックします。 ポイント:「カスタム・データベース」にてデータベースを作成した場合 には、テンプレートとして保存しておくと同様のデータベースを作成す る場合に便利です。 10. フラッシュバック・リカバリに利用する領域を指定します。ここではデフ ォルト設定のまま、「次へ」をクリックします。
11. サンプルをインストールするか選択する画面が出ます。本番環境では要ら ないのでインストールしませんが、ここでは、「サンプル・スキーマ」をチ ェックしてインストールするようにします。「次へ」をクリックします。 12. 初期化パラメータを設定する画面が表示されます。ここも今回は特に変更 する必要はありません。そのまま「次へ」をクリックします。 13. データベースを構成する制御ファイル、データファイル、REDO ログファ イルの場所などを変更することができます。今回は記述されているとおり の設定でも構いません。しかし、データベースの Oracle のソフトウェアと
データベースの各構成ファイルを別々のディスクに配置しないとディスク への I/O が集中してパフォーマンスのボトルネックになることがあります のでご注意ください。「次へ」をクリックします。 14. 今回の構成をテンプレートとして保存するか指定できます。今回は保存す る必要はないので、そのまま「完了」をクリックします。 15. 今回の構成で作成されるデータベースのサマリです。 確認したら「OK」をクリックしてデータベース作成を開始します。
ポイント:今回は、全ての項目を確認しながら DBCA を使用しましたが、 特にデフォルト値で問題ない場合や、テンプレートが作成されているよ うな場合は、データベースのデータファイル位置を設定する画面にて「終 了」をクリックすることにより、それ以降のウィザードのステップを省 略することが可能です。 16. 以下は、データベース作成中の実行画面です。 17. データベースの作成が終了すると、以下のように完了の画面が表示されま す。「終了」をクリックすると作成画面が終了します。
ポイント:DBCA でデータベースを作成した場合、管理者用のユーザー 以外のユーザーはロックされているので、UNLOCK する必要があります。 UNLOCK の方法は、後で実習します。 18. DBCA にてデータベースを作成した後は、データベースは起動された状態 になっています。
Enterprise Manager
Oracle9i 以前では、Enterprise Manager は、Java のクライアント/サーバーアプリケ ーションとして実装されていました。Oracle Database 10g では、完全にウェブ・ベ ースのインターフェースに変更され、ブラウザーさえあればどのマシンからも実 行することが可能であるのが特徴です。 特徴は、以下の通りです。 ウェブ・ベースの GUI インターフェース 各種データベースオブジェクトの作成/管理/表示 パフォーマンス統計の表示 バックアップや再編成などの各種メンテナンス操作 実習: Enterprise Manager を使ってロックされているアカウントを解除しよう データベースの作成のセッションにて、特定の管理者用のユーザー以外はロック されていることを説明しました。ロックを解除しないと該当のユーザーを利用す ることができません。今回は、サンプル・スキーマの「SCOTT」のロックを解除
1. Enterprise Manager を利用するには、データベース・サーバーにて DB コン ソールを使用するためのプロセスが起動していなければなりません。DBCA にてデータベースを作成すると自動的に起動されますが、以下のコマンド にて起動を確認できます。
%export ORACLE_SID=ora10g %emctl status dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. http://localhost.localdomain:1158/em/console/aboutApplication Oracle Enterprise Manager 10g is running.
--- Logs are generated in directory
/app/oracle/product/10.2.0.1/localhost.localdomain_ora10g/sysman/log
「Oracle Enterprise Manager 10g is running.」と表示されていれば、起動してい ます。もし、「Oracle Enterprise Manager 10g is not running」と表示された場合 は、以下のコマンドにて起動してください。
%emctl start dbconsole
2. Enterprise Manager を利用するには、リスナーが起動している必要がありま す。リスナーの詳細な設定は後ほど行うので、ここでは以下のコマンドに てリスナーを起動してください。 %lsnrctl start 3. ブラウザーを起動して以下の URL を入力します。ログイン・ページが表示 されますので、ユーザー名:SYS、パスワード:ORACLE、接続モード: SYSDBA と入力して ボタンをクリックしてください。 http://<host name>:<port>/em/ e.g) http://direct03.jp.oracle.com:1158/em/ ポイント: Enterprise Manager にアクセスする場合のポート番号が分から ない場合は、$ORACLE_HOME/install の下の portlist.ini ファイルを参照し てください。 4. ホーム画面より、「管理」→「ユーザー」をクリックします。「ユーザー」 の画面が表示されます。
5. 画面をスクロールして、ユーザー「SCOTT」を探します。アカウント・ス テータスが「EXPIRED & LOCKED」になっているはずです。「SCOTT」前 の選択ボックスを選択して、「編集」ボタンをクリックします。 6. 「ユーザーの編集」画面が表示されます。ステータスを「ロック解除」に し、パスワード入力およびパスワードの確認に「TIGER」を入力して、 をクリックします。 7. 「正常に変更されました」と表示されるはずです。再度ユーザー「SCOTT」 のアカウント・ステータスを確認してみてください。正常であれば、以下 のように「OPEN」になっています。 実習: Enterprise Manager を使って表の定義やデータを確認してみよう
Enterprise Manager を使用して、作成したデータベースのサンプル・データである 「SCOTT.EMP」表の定義内容を確認します。表の作成方法については、本資料の 別のセクションにて実習します。 1. この前の実習と同様の手順して、Enterpries Manager にログインします。 2. ブラウザーを起動して以下の URL を入力します。ログイン・ページが表示 されますので、ユーザー名:SYS、パスワード:ORACLE、接続モード: SYSDBA と入力して ボタンをクリックしてください。 http://<host name>:<port>/em/ e.g) http://direct03.jp.oracle.com:1158/em/ ポイント: Enterprise Manager にアクセスする場合のポート番号が分から ない場合は、$ORACLE_HOME/install の下の portlist.ini ファイルを参照し てください。 3. Enterprise Manager のホーム画面が表示されます。ホーム画面より「管理」、 スキーマから「表」をクリックしてください。 4. 「表」の画面が表示されます。スキーマとして「SCOTT」を入力し ボ タンをクリックすることで、スキーマ「SCOTT」が所有している表が表示 されます。
表示されている表の中から表名「EMP」に選択マークを付けて、 ボタ ンをクリックします。 ポイント:スキーマ名が分からない場合は、 アイコンをクリックするこ とで、スキーマの一覧表を表示させて選択することもできます。 5. EMP 表に対する現在の表定義が確認できます。 ボタンを押すことで表定義を変更することもできます。 6. 次に EMP 表の中にどのようなデータが入っているか確認してみましょう。 ボタンで前画面に戻りますので、再度 EMP に選択マークを付けて、ア クションのドロップダウン・リストボックスから「データの表示」を選ん で、 ボタンを押します。
どうでしょう。上記のように EMP 表のデータが確認できましたか? 確認が終わったら、「データベース」タブをクリックすることで、ホーム画 面に戻れます。
iSQL*Plus
SQL*Plus は、対話型の問い合わせツールで、コマンドライン・インターフェース の SQL*Plus とウェブベース・インタフェースの iSQL*Plus があります。基本的に 出来ることは一緒で、主に以下のような処理をする事が可能です。 対話形式でのレポート生成、バッチ形式でのレポート生成 問い合わせ結果の書式設定 表定義の表示 実習: iSQL*Plus を使ってみよう 先程は、Enterprise Manager を利用して表の定義とデータの中身を確認しました。 今度は、iSQL*Plus を利用して再度 EMP 表のデータを確認してみましょう。 1. まず、isqlplus を起動します。以下のコマンドにて isqlplus を起動してくだ さい。 $ cd $ORACLE_HOME/bin $ export ORACLE_SID=ora10g $ ./isqlplusctl start 2. ブラウザーを起動して以下の URL を入力します。ログイン・ページが表示 されますので、ユーザー名:SCOTT、パスワード:TIGER、接続識別子:未入力と入力して ボタンをクリックしてください。 http://<host name>:<port>/isqlplus/ e.g) http://direct03.jp.oracle.com:5560/isqlplus/ ポイント: iSQL*Plus にアクセスする場合のポート番号が分からない場合 は、$ORACLE_HOME/install の下の portlist.ini ファイルを参照してくださ い。 3. iSQL*Plus の画面が表示されます。 以下の SQL コマンドを入力して ボタンを押します。 select * from emp;
5. データ量が多い場合などは、出力結果の表示方法を調整することも可能で す。アイコン の「設定項目」をクリックし、出力ページ・サイズの項目 を「複数ページ」にして各ページの列数を「10」にして ボタンをク リックし、「作業領域」タブをクリックして元の画面に戻り、再度 ボ タンをクリックしてみましょう。 画面下に「次のページ」というボタンが出てくるはずです。このように出 力結果を複数ページに分割したり、また出力結果を別の HTML ファイルと して保存する事もできます。 結果を確認したら、ログアウト をクリックして、ブラウザーを終了し ましょう。
データベース作成後の主なデータベースの設定について
このセクションでは、データベース作成後の主な設定や作業として、「データベースの起 動/停止」や「データベースの運用モード」、データベースを構成するための「初期化パラ メータ」について説明します。データベースの起動と停止
Oracle では、データベースの稼動状態として以下のような 4 つの状態が存在します。 通常では、停止状態である「SHUTDOWN」か、稼動中である「OPEN」の状態に なっていると思います。「NOMOUNT」や「MOUNT」状態にするのはデータベー スをメンテナンスするような場合に、このような状態にします。 実習: データベースの起動/停止 Enterprise Manager を利用してデータベースを起動/停止してみましょう。 1. ブラウザーを起動して以下の URL を入力します。ログイン・ページが表示 されますので、ユーザー名:SYS、パスワード:ORACLE、接続モード: SYSDBA と入力して ボタンをクリックしてください。ポート番号 は、ステップ 1 のステータス確認の結果で確認できます。 http://<host name>:<port>/em/ e.g) http://direct03.jp.oracle.com:1158/em/ポイント:データベースの起動/停止権限があるユーザーでかつ、接続モ ードが「SYSDBA」でないとデータベースの起動/停止は出来ません。 2. Enterprise Manager のホーム画面が表示されます。画面左端の矢印に注目し てください。矢印が上を向いている場合は稼動中です。データベースを停 止します。 ボタンをクリックしてください。 3. 「起動/停止」の画面が表示されます。OS のユーザー/パスワードとデータ ベースのユーザー/パスワードを入力して ボタンをクリックしてくだ さい。
4. 以下のような、停止に対する確認画面が表示されますので、 をクリッ クしてください。 ポイント:デフォルトの停止オプションは IMMEDIATE で実行されます。 5. 停止中の画面が表示されます(停止には多少時間が掛かります)。しばらく 待ったあとに、 ボタンをクリックしてください。 6. 最終的に以下のようにデータベースが停止状態になり、スタータスが「使 用不可」になります。 7. 今度は、データベースを起動します。上記 6.の画面より、「リフレッシュ」 ボタンをクリックすると、下記画面が出ます。 ボタンをクリックして、 データベースを起動します。
8. データベースの停止と同様に資格証明の画面が表示されますので、必要項 目を入力し、 ボタンをクリックしてください。
9. 起動確認の画面が表示されるので、 をクリックしてください。
11. データベースが起動すると、ステップ 1.で表示されたログイン画面が表示 されます。同様にログイン処理をしてください。 12. 以下のようにステータスが「稼動中」となるはずです。
データベースの運用モード
Oracle では、データベースの運用方法として、「アーカイブログ・モード」と「ノ ー・アーカイブログ・モード」の 2 つの方法があります。これらは以下のような 特徴があります。データベースを作成した時点では、デフォルト設定として「ノアーカイブログ・モード 障害発生時に最新の状態までリカバリすることが可能 ノー・アーカイブログ・モード 障害発生時は、バックアップ取得時点までリガバリすることが可能 ポイント:デフォルトでは、フラッシュ・リカバリー領域にアーカイブ・ ログが作成されます。フラッシュ・リカバリー領域が足りなくなると、 アーカイブ・ログが作成できずに、トランザクションが停止します (ORA-16014)。適切なフラッシュ・リカバリー領域サイズの設定と、リ カバリ・マネージャーにて定期的にバックアップし、不用なファイルを 削除してフラッシュ・リカバリー領域の空き領域を維持するようにして ください。 実習: 運用方式をアーカイブ・ログ・モードに変更する 今回は、システム要件として「障害時に最新の状態まで戻せる」という可用性要 件であると想定して、Enterprise Manager を利用して運用モードを変更してみまし ょう。 1. それでは、アーカイブ・ログ・モードを変更します。ホーム画面より「高 可用性」の「使用可能なフラッシュ・リカバリ領域」の右のリンクをクリ ックしてください。 2. 「リカバリ設定の構成」の画面が表示されます。メディア・リカバリの
ARCHIVELOG のチェックボックスにチェックを入れ、 をクリックし ます。 3. 変更を適用するためにはデータベースの再起動が必要となるため、確認の 画面が表示されますので、 をクリックしてください。 4. データベースの起動/停止の操作と同様に、OS のユーザー/パスワードとデ ータベースのユーザー/パスワードを入力して、 をクリックしてくださ い。 5. さらに再起動の確認画面が表示されますので、 をクリックしてくださ い。
6. 次のような画面が表示され、再起動が実行されます。 ポイント:再起動後の状態が Enterprise Manager にて確認できるまでには、 多少時間が掛かる場合があります。 7. アーカイブ・ログ・モードが「ARCHIVELOG」に変わっているとこが確認 するには、ホーム画面の「高可用性」の部分では即時に確認できません。 即時に確認するには、「メンテナンス」タブをクリックし、「リカバリ設定」 をクリックしてください。以下の画面が表示されます。
初期化パラメータ
データベースを導入するシステム固有の条件に合わせるために、必要に応じて初 期化パラメータを設定/変更する必要性がある場合があります。Oracle ではデータ ベースの構成パラメータとして、初期化パラメータ・ファイルとサーバー・パラ メータ・ファイルの 2 種類があり、どちらかを利用することになりますが、それ ぞれは以下のような特徴があります。 初期化パラメータ・ファイル Oracle7 の頃から存在するテキスト形式のパラメータ・ファイルで、テキ スト・エディタでもパラメータを変更する。 サーバー・パラメータ・ファイル(デフォルト設定) Oracle8i より導入されたバイナリ形式のパラメータ・ファイル。コマンド もしくは GUI ツールよりパラメータを変更する。 実習:初期化パラメータより、Oracle10g の新機能である自動共有メモリー管理の 有効かどうかを確認します。 1. Enterprise Manager のホーム画面にて「管理」タブを選択し、「すべての初期 化パラメータ」をクリックします。以下のような初期化パラメータの画面 が表示されます。左上の「現行」タブが選択されていると思いますが、こ れは現在実行中のデータベースにて使用されているパラメータ値です。 2. フィルタ機能を利用して、自動共有メモリー管理のためのパラメータ 「SGA_TARGET」を表示して見ます。フィルタに「SGA_TARGET」を入力 して、 をクリックします。デフォルトでは、自動共有メモリー管理が 有効になっているため、値が「240M」になっているはずです。3. ホーム画面より「管理」タブをクリックし、「メモリー・パラメータ」をク リックしてください。この画面でも自動共有メモリー管理が有効にされた かどうかを確認できます。以下のような画面が表示され、自動共有メモリ ー管理が有効になっていることが確認できます。
ポイント:メモリー調整の自動化の設定は DBCA でデータベース作成時 に設定できます。Oracle Database 10g Release2 ではデフォルトで有効にな っています。
クライアントからの接続
Oracle では、データベース・サーバーとクライアント間の通信には、Oracle Net Services というネットワーク・ライブラリを使用します。
LISTENER.ORA と TNSNAMES.ORA
ネ ッ ト ワ ー ク の 設 定 情 報 は 、 サ ー バ ー 側 の リ ス ナ ー 情 報 を 構 成 す る LISTENER.ORA とクライアント側の接続情報を記述する TNSNAMES.ORA という ファイルに記述されています。これらは以下の図のような関係になります。 これらのファイルは、デフォルトでは、$ORACLE_HOME/network/admin の下に配 置されます。 実習:サーバーのリスナー情報の設定を行おう クライアントからデータベースに接続できるように、サーバー側のリスナー情報 の設定を行います。1. 以下のコマンドにより、Network Configuration Assistant を起動します。 %cd $ORACLE_HOME/bin %netca ポイント:ネットワークの設定は、Enterprise Manager からも実行できま す。しかし Enterprise Manager から編集できるのはエージェントが起動し て い るサ ーバ ー機 のみ であ るた め、 ここ では Network Configuration Assistant を使用しています。 2. Welcome 画面が表示されますので、「リスナー構成」を選択し、「次へ」を
3. 「実施する処理の選択」画面が表示されますので、「追加」をクリックしま す。 4. リスナー名の入力を求められます。デフォルトの「LISTENER」のまま「次 へ」をクリックします。 ポイント:既に「LISTENER」という名前のリスナーが存在している場合、 ステップ 3.にて「削除」を選択し、一旦、「LISTENER」を削除してから 再度「LISTENER」という名前のリスナーを作成してください。
5. ネットワーク・プロトコルの選択画面が表示されますので、「TCP」を選択 して「次へ」をクリックします。 6. 通信ポートの番号を入力する画面が表示されます。デフォルトの「1521」 を使用しますので、そのまま「次へ」をクリックします。 7. 他のリスナーを構成するか聞かれますので、「いいえ」を選択して「次へ」 をクリックします。 8. 「リスナーの構成が完了しました」と表示されますので「次へ」をクリッ
てください。 9. 構成を終了するとリスナーは自動的に起動されます。 10. リスナーが起動されているかを確認するには、Enterprise Manager のホーム 画面の一般の項目より「リスナー」を選択すると以下のような画面にて確 認できます。 実習:クライアントの接続情報の設定を行おう クライアントからデータベースに接続できるようにクライアント側の接続情報を 設定します。クライアントの接続情報は各クライアントにて行う必要があります が、今回は、サーバー機を擬似的にクライアントと想定して設定します。
1. 以下のコマンドにより、Network Configuration Assistant を起動します。 %cd $ORACLE_HOME/bin
%netca
2. Welcome 画面が表示されますので、「ローカル・ネット・サービス名構成」 を選択し、「次へ」をクリックします。
3. 「実行する処理の選択」画面が表示されますので、「追加」を選択して、「次 へ」をクリックします。 4. 「サービス名の入力」を求められます。サービス名は通常グローバル・デ ータベース名ですので、データベース作成時のグローバル・データベース 名を入力し、「次へ」をクリックします。ここでは、ora10g.jp.oracle.com と 入力します。 5. ネットワーク・プロトコルの選択画面が表示されますので、「TCP」を選択 して、「次へ」をクリックします。
6. ホスト名の入力画面が表示されますので、ご使用の DB サーバーのホスト 名を入力して、「次へ」をクリックします。PORT 番号は、リスナーの設定 にて変更していなければ、デフォルトの 1521 のままで構いません。 7. ウィザードにて設定した内容にて問題ないか接続テストの画面が表示され ます。「はい、テストを実行します」を選択して、「次へ」をクリックしま す。 8. 正常な接続が確認された場合、以下のような画面が表示されます。「次へ」 をクリックします。
ポイント:接続に失敗した場合は、「ログインの変更」より再度適切なユ ーザー名/パスワードにて再試行してみてください。 9. ネットワーク・サービス名の入力画面が表示されます。ここで指定する名 前がデータベース接続時の接続識別子になります。デフォルトは SID 名に なっています。 10. これで設定は終了です。他のネットワーク・サービス名の構成を行うかど うか聞かれますので、「いいえ」を選択して「次へ」をクリックし終了して ください。
表/索引の作成
このセクションでは、作成したデータベースに表/索引を作成して、作成した表の内容を変 更してみます。
表の作成
Oracle では表は、論理的な領域単位である表領域に作成します。表の作成には、 Enterprise Manager や HTML DB を利用して GUI で作成する方法や、iSQL*Plus 等のコマンドライン・ツールにより SQL 文で作成する方法があります。
実習:新しいユーザー(スキーマ)を作成しよう
新しくデータベース・ユーザーを作成します。
1. まず最初に新しくユーザーを作成します。Enterprise Manager に SYSDBA 権 限にてログインし、「管理」->「ユーザー」をクリックします。
2. ボタンをクリックするとユーザー情報の入力画面が表示されますので、 以下のように入力してください(まだ はクリックしないでください)。
項目名 入力内容
プロファイル DEFAULT 認証 パスワード 期限切れパスワード チェックしない デフォルト表領域 USERS 一時表領域 TEMP ステータス ロック解除 3. ここままでは作成したユーザーには、CONNECT ロールの権限しか付与さ れませんので、「ロール」タブをクリックし、「リストを編集」をクリック してください。 4. 「ロールの変更」の画面が表示されます。使用可能なロールから RESOURCE ロールを選択して、 をクリックしてください。ひとつ前の画面に戻り ますので、もう一度 をクリックするとユーザーが作成されます。 ポイント:本番環境では様々なセキュリティ要件を考慮してユーザーを 作成する必要があります。セキュリティに関しては「意外と簡単!?」シリ ーズの「セキュリティ編」を参照してください。 実習:新しい表を USERS 表領域に作成しよう 1. 表を作成します。「管理」->「表」をクリックすると「表」の画面が表示さ れますので、 をクリックしてください。
2. 「表を作成・表編成」の画面が表示されます。デフォルトの標準のまま をクリックします。 3. 「表の作成」の画面が表示されます。以下のサンプルを元に表を作成しま す。 プライマリー・キーを設定する場合、「制約」タブを選択して以下の画面よ り「PRIMARY」の横にある をクリックして該当の列を選択してくだ さい。 すべての入力/設定が終えたら、 をクリックすることで表が作成されま
す。
表名 列名 データ型 サイズ NOT NULL EMPLOYEES EMPLOYEE_ID NUMBER 6 Not Null、PrimaryKey
FIRST_NAME VARCHAR2 20
LAST_NAME VARCHAR2 25 Not Null EMAIL VARCHAR2 25 Not Null PHONE_NUMBER VARCHAR2 20
HIRE_DATE DATE Not Null JOB_ID VARCHAR2 10 Not Null SALARY NUMBER 8 COMMISSION_PCT NUMBER 2 MANAGER_ID NUMBER 6 DEPARTMENT_ID NUMBER 4 ・スキーマ:ステップ 2 で作成したユーザー名 ・表領域:USERS ポイント:列の入力行数が足りない場合には、 をクリックするこ とで、空の行を追加できます。 4. 同様に以下の部門表も作成してください。 表名 列名 データ型 サイズ NOT NULL DEPARTMENTS DEPARTMENT_ID NUMBER 4 Not Null、PrimaryKey
DEPARTMENT _NAME VARCHAR2 30 Not Null MANAGER_ID NUMBER 6 LOCATION_ID NUMBER 4 ・スキーマ:ステップ 2 で作成したユーザー名 ・表領域:USERS 実習:従業員表と部門表の関連付けを設定しよう 従業員表の DEPARTMANT_ID は部門表の DEPARTMENT_ID に関連付けられます ので、外部参照整合性制約を付加しましょう。
の EMPLOYESS 表を選択してください。 2. 「制約」タブを選択し、画面右端の PRIMARY を FOREIGN に変更して、 をクリックします。 3. 「FOREIGN 制約の追加」の画面が表示されます。以下のように設定して をクリックしてください。 参照表の使用可能な列は、参照表を入力後に をクリックすることで 表示されます。 項目 内容 表の選択した列 DEPARTMENT_ID 参照表 ORADIRECT.DEPARTMENTS 参照表の選択した列 DEPARTMENT_ID 属性 変更なし 4. 外部参照整合性制約が作成されます。
索引の作成
Oracle では、検索のパフォーマンスを向上させるために、以下のようなさまざまな 種類の索引が提供されています。 B*TREE 索引 ファンクション索引 逆キー索引 索引構成表 ビットマップ・インデックス(Enterprise Edition のみ) ビットマップ・ジョイン・インデックス(Enterprise Edition のみ) また、索引スキップ・スキャンという機能も実装されており、複合索引の場合に 検索条件としてカラムの第 1 列が指定されていなくても、索引を使用することが できます。 実習:索引を作成しょう 表の作成時にプリマリー・キー制約を作成しているのでその時点にてプライマリ ー・キー索引は作成されています。ここでは、従業員表の LAST_NAME 列に索引 を作成します。 1. Enterprise Manager のホーム画面から「管理」タブを選択し、「索引」をクリ ッ ク し て く だ さ い 。「 索 引 」 の 画 面 が 表 示 さ れ ま す 。 ス キ ー マ に 「ORADIRECT」を入力して、 クリックしてください。作成済みの表/ 索引が表示されます。「EMPLOYEES」表を選択し、 をクリックしてく ださい。 「索引の作成」の画面が表示されます。以下のように入力し、ックしてください。 項目 内容 名前 適切な索引の名前 スキーマ ORADIRECT 表領域 USERS 索引タイプ 標準-B ツリー 表名 ORADIRECT.EMPLOYEES 選択する列 LAST_NAME の順序に”1”を入力 をクリックすることで、索引を作成するための SQL 文を確認するこ ともできます。 3. 新しい索引が EMPLOYEES 表に対して作成されたことが確認できます。
データの入力と確認
このセクションでは、作成した表にデータを入力してみます。 データを入力する方法としては、以下のような方法がありますが、ここでは、SQL*Loader を利用する方法を実施します。 SQL(INSERT 文)による入力 HTML DB を利用したデータ入力 SQL*Loader を利用したデータ入力SQL*Loader
SQL*Loader は、Oracle が提供するデータロード・ユーティリティです。少量のデ ータであれば、INSERT 文でも可能ですが、大量の場合、SQL*Loader を利用する ことで、高速かつ容易にデータを Oracle にローディングすることが可能です。 実習:SQL*Loader にて従業員のデータを EMPLOYEES 表に入力しよう。 本実習にて使用する制御ファイルとデータは「意外と簡単!?」シリーズのウェブ・ サイトよりダウンロード可能です。必要であれば、サーバー・マシンにコピーし て使用してください。尚、EMPLOYEES 表と DEPARTMENTS 表には参照整合性制 約が付加されているので、EMPLOYEES 表からローディングするとエラーが発生 します。以下の手順では EMPLOYEES 表をローディングするよう記述されていま すが、実際の手順としては、先に DEPARTMENTS 表からローディングを実施して ください。 1. SQL*Loader を制御するために以下のような「制御ファイル」を作成します。 <employees.ctl> load data(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL,
PHONE_NUMBER,
HIRE_DATE DATE ‘YYYY-MM-DD’, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID) 2. Enterprise Manager のホーム画面より、「メンテナンス」タブを選択し、「ユ ーザー・ファイルからのデータのロード」をクリックします。「データのロ ード: 制御ファイルの生成または既存の制御ファイルの使用」の画面が表示 されます。「既存の制御ファイルを使用」を選択し、ホストユーザー名とパ スワードを入力して「続行」ボタンをクリックしてください。 3. 「データのロード: 制御ファイル」の画面が表示されます。制御ファイル名 をステップ 1 にて作成したファイル名に変更し、 をクリックします。 4. 「データのロード:データファイル」の画面が表示されます。今回、デー タのファイルが制御ファイルと別々に作成していますので、「データベー ス・サーバー・マシン上のファイル名をフルパスで指定します」を選択し、 「<適切なディレクトリ名/employees.dat」を入力後、 をクリックします。
5. 「データのロード:メソッド」の画面が表示されます。今回は「従来型パ ス」を選択し、 をクリックします。 6. 「データのロード:オプション」の画面が表示されます。オプション・フ ァイルの項目の「ログ情報を格納するログ・ファイルを生成」に適当なロ グ名を入力し、 をクリックします。 7. 「データのロード:スケジュール」の画面が表示されます。スケジュール は「即時」で、適当なジョブ名を入力して、 をクリックします。
8. 「データのロード:レビュー」の画面が表示されます。確認後、 を クリックしてください。
9. ジョブが発行されて、データのローディングが実行されます。実行した後、 ジョブ名をクリックして、成功するかどうかを確認してください。
11. 同様の方法にて、DEPARTMENTS 表にもデータをロードしましょう。 ポイント:HTML DB を利用すると、EXCEL のデータを直接コピー&ペ ーストにてデータベースに入力したりする事が可能です。 実習:入力した従業員のデータを確認しよう 1. Enterprise Manager のホーム画面より、「管理」タブを選択し、「表」をクリ ックします。スキーマに「ORADIRECT」と入力し、 をクリックしま す。表「EMPLOYEES」の選択のラジオ・ボタンを選択し、アクションの ドッロップダウン・リストボックスより「データの表示」を選択し、 を クリックします。 2. 先程入力した、EMPLOYEES 表のデータが確認できます。 3. さらに、列名をクリックすることで自動的に該当列の昇順/降順にてデータ を確認することができます。
データの移動
データベースのデータを他のデータベースに移動する場合、データをエクスポートしてイ ンポートする方法がよく取られます。このセクションではエクスポート/インポートについ て説明します。EXPORT/IMPORT
EXPORT/IMPORT ユーティリティは、Oracle のデータベースから表の定義やデー タをオンラインにてアンロード/ロードする機能を持っています。データの断片化 が発生した場合などは、EXPORT/IMPORT することにより断片化を解消できます。 実習:作成した EMPLOYEES 表をエクスポートしよう 1. Enterprise Manager に以下のユーザーにて接続します。 ユーザー:SYSMAN 接続モード:NORMAL 2. ホーム画面より、「メンテナンス」タブをクリックし、「エクスポート・フ ァイルへのエクスポート」をクリックします。「表」を選択し、ホスト資格 証明として OS のユーザーとパスワードを入力し をクリックします。 ポイント:EXPORT/IMPORT は、OS のファイルシステム上にデータをア ンロードするので、ホストの資格証明の入力が必要になります。 3. 「エクスポート:表」の画面が表示されます。エクスポートする表を選択 しますがまだ選択されていないので、 をクリックします。スキーマに 「 ORADIRECT 」 と 入 力 し 、 を ク リ ッ ク す る と 検 索 結 果 の 欄 に ORADIRECT の表が表示されますので、「EMPLOYEES」をチェックし、 をクリックします。4. EMPLOYESS 表が選択されているはずなので、確認の後 をクリックし ます。 5. 「エクスポート:オプション」の画面が表示されます。ログファイルの格 納先として、「DATA_FILE_DIR」が選択されていると思いますが、ここで は EXPORT 先を明示的に指定したい為、 をクリック してください。
6. 「エクスポート:ディレクトリ・オブジェクトの作成」の画面が表示され ます。以下のように入力後、 をクリックするとオプションの画面に戻 りますので、ログファイルのディレクトリ・オブジェクトを作成したディ レクトリ・オブジェクトに変更し、 をクリックしてください。 項目 内容 名前 適切な索引の名前 e.g) DUMP_DIR スキーマ OS の Oracle ユーザーがアクセスできるディレ クトリ 7. 「エクスポート:ファイル」の画面が表示されます。ディレクトリ・オブ ジェクトをステップ 6 にて作成したディレクトリ・オブジェクトに変更後、 をクリックしてください。
理をジョブとしてスケジュールすることができますが、ここでは即時に実 行しますので、開始を「即時」にして をクリックしてください。 9. 「エクスポート・レビュー」の画面が表示されます。内容を確認の後、 をクリックするとエクスポート処理が即時に実行されます。 10. 以下は、エクスポート処理中の画面です。 11. エクスポートが正常に終了すると以下の画面が表示されます。OS 上からも エクスポートのダンプファイルが作成されているかを確認してみましょう。
実習:エクスポートしたダンプファイルより EMPLOYEES 表にインポートしよう
1. iSQL*Plus 等により以下の SQL 文を実行して EMPLOYEES 表のデータを切 り捨てます。
TRUNCATE TABLE ORADIRECT.EMPLOYEES;
ポイント:TRUNCATE を実行しなくても IMPORT 処理はできます。ここ では、IMPORT の結果が確認しやすいようにするために実行しています。 2. Enterprise Manager に以下のユーザーにて接続します。 ユーザー:SYSMAN 接続モード:NORMAL 3. ホーム画面より、「メンテナンス」タブをクリックし、「エクスポート・フ ァイルからのインポート」をクリックします。「インポート:ファイル」の 画面が表示されます。ディレクトリ・オブジェクトをエクスポート時に作 成した名前に変更し、ホスト資格証明として OS のユーザーとパスワードを 入力し をクリックします。 4. 「インポート:再マッピング」の画面が表示されます。ここでは、インポ ートしたデータを別のスキーマや、別の表領域に割り当てることが可能で すが、今回は何も変更しませんので、そのまま をクリックします。
5. 「インポート:オプション」の画面が表示されます。以下のようにデフォ ルト値を設定しなおして をクリックします。 をクリックすること で拡張オプションが表示されます。 項目 内容 ディレクトリ・オブジェクト EXPORT 時に指定したディレクトリ ソース・データベースからのインポート対象 すべて コンテンツのインポート 全オブジェクトを含む 表が存在する場合に実行する処理 置換 6. 「インポート:スケジュール」の画面が表示されます。インポート処理を ジョブとしてスケジュールすることができますが、ここでは即時に実行し ますので、開始を「即時」にして をクリックしてください。
7. 「インポート:レビュー」の画面が表示されます。内容を確認の後、 をクリックするとインポート処理が即時に実行されます。 8. 以下はインポート処理中の画面です。 9. 処理が正常に終了すると以下の画面が表示されます。実習「入力した従業 員のデータを確認する」で実行した方法にてデータが正しくインポートさ れているか確認してみましょう。
日本オラクル株式会社
Copyright © 2005 Oracle Corporation Japan. All Rights Reserved. 無断転載を禁ず
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されること があります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、 本書の内容に関連したいかなる損害についても責任を負いかねます。
Oracle は米国 Oracle Corporation の登録商標です。文中に参照されている各製品名及びサ ービス名は米国Oracle Corporation の商標または登録商標です。その他の製品名及びサー ビス名はそれぞれの所有者の商標または登録商標の可能性があります。