自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法

ORACLEダウンロードから構築までの手順

1.ORACLEアカウントの作成

ORACLEのページに遷移しアカウントの作成を行います。
非常に簡単ですぐに終わります。ORACLEページはこちら

(1)まずはORACLEのトップ画面から「アカウント作成」を選択してください。

(2)利用者情報を入力して「プロファイル作成」を押してください。
 これでORACLEアカウントが作成できます。簡単ですよね。

2.ORACLEのダウンロード

ORACLEは個人での学習用や検証用として、ORACLE DataBaseの無償版を提供してくれています。
もちろん本番環境としての利用は禁止されています。規約の詳細はこちら

ORACLE DataBaseダウンロードページはこちら

(1)ファイルをダウンロードします。
 最新バージョンの12cR2もありますが、ここでは12cR1を選択します。
 2つのファイルをダウンロードすれば完了です。

3.ORACLE DataBaseの構築

DataBase構築の流れを書き出すと結構長いのですが、実は構築ガイドもORACLEが無償で提供してくれています。

(1)先ほどのDataBaseをダウンロードしたページの一番下、見落としそうなところにあります。
 クリックすると次のページに遷移します。

(2)お好きな構築手順を選んでクリックしてください。
 まずはシンプルに上の手順で構築することをおススメします。こちらにORACLEの仮想マシンのダウンロードから設定、ORACLE DataBaseのインストール、そして構築までの手順が一通り書かれています。まずは手順に従って構築したいという方に最適の資料だと思います。

>>おすすめのORACLE参考書まとめ




ORACLEダウンロードから構築までの手順で悩んだ時

手順、何度か繰り返しやってみましたが、いくつか注意点を追記しておきます。

・P60のchmod -R 775 /u01
ここは775だとその後のインストールか構築だかでエラーになります。
正しくは、権限を777にrootで設定してください。

・rootユーザでのスクリプト実行
LINUX初心者の方もいらっしゃると思います。
手順の中にはoracleユーザで接続しているときに、「rootユーザで実行してください」ということが度々があります。
このときは、「su – 」でrootユーザに切り替えて実行してください。

・データベースを作成しても接続できない
データベース作成して接続するときは、LISTENERを起動してください。
パスが通っていれば「lsnrctl start」で実行できます。

もしリスナーが正しく作成されていない場合は、リスナーを作りなおしてください。
この場合は、「cd $ORACLE_BASE/bin」にカレントディレクトリを変更し、「./netca」を実行してください。
oracle net configuration assistanceが起動しますので、手順に沿ってリスナーを作成してください。

・P89のoracleユーザの初期ログイン時の設定
ここでTEMPやTMPDIRに設定している「$HOME/tmp」ディレクトリは事前に作成してください。
「mkdir tmp」で作成できます。

ORACLEの構築後の自己学習手順

一通りデータベースのインストールからインスタンス構築まで終わったら、色々やってみましょう。
参考までに私が試したコマンドを紹介します。初めての方は試してみてください。

・表領域作成
CREATE BIGFILE TABLESPACE hwdtbs DATAFILE ‘/u01/app/oracle/oradata/CDB/datafile/hwdtbs01.dbf’ SIZE 5G;

・ユーザ作成
create user hwduser identified by “oracle” default tablespace hwdtbs TEMPORARY TABLESPACE temp;

GRANT DBA TO hwduser;
GRANT UNLIMITED TABLESPACE TO hwduser;
grant SELECT ANY DICTIONARY to hwduser;

・テーブル作成
CREATE TABLE hwd_emp(
emp_id VARCHAR2(8)
,emp_name VARCHAR2(100)
,emp_age NUMBER(3,0)
,CONSTRAINT PK_emp PRIMARY KEY(emp_id)
)TABLESPACE hwdtbs;

・データ作成
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000001′,’user1’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000002′,’user2’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000003′,’user3’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000004′,’user4’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000005′,’user5’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000006′,’user6’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000007′,’user7’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000008′,’user8’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000009′,’user9’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000010′,’user10’,20);
insert into hwd_emp(emp_id,emp_name,emp_age) values (‘00000011′,’user11’,20);

・データのコミット
commit;

・データの確認
select * from hwd_emp;

・データの更新
update hwd_emp set emp_age = 30 where emp_id = ‘00000003’;

・データの削除
delete from hwd_emp where emp_id = ‘00000011’;

・データの確認
select * from hwd_emp;

・バックアップ
RMAN TARGET /
show all;
backup database;

・リストア
SQL> alter tablespace hwdtbs offline immediate;

RMAN> restore datafile ‘/u01/app/oracle/oradata/CDB/datafile/hwdtbs01.dbf’;

RMAN> recover datafile ‘/u01/app/oracle/oradata/CDB/datafile/hwdtbs01.dbf’;

SQL> alter tablespace hwdtbs online;

・エクスポート前処理
mkdir dmp_dir
chmod 777 dmp_dir

SQL>create or replace directory dmp_dir as ‘/home/oracle/dmp_dir’;

・表単位のエクスポート、インポート
expdp hwduser/oracle dumpfile=dmp_dir:expdat_tb.dmp tables=HWD_EMP
impdp hwduser/oracle dumpfile=dmp_dir:expdat_tb.dmp tables=HWD_EMP TABLE_EXISTS_ACTION=REPLACE

・スキーマ単位のエクスポート、インポート
expdp hwduser/oracle dumpfile=dmp_dir:expdat_scm.dmp schemas=hwduser
impdp hwduser/oracle dumpfile=dmp_dir:expdat_scm.dmp schemas=hwduser TABLE_EXISTS_ACTION=REPLACE

・表領域単位のエクスポート、インポート
expdp hwduser/oracle dumpfile=dmp_dir:expdat_tbs.dmp tablespaces=hwdtbs
impdp hwduser/oracle dumpfile=dmp_dir:expdat_tbs.dmp tablespaces=hwdtbs TABLE_EXISTS_ACTION=REPLACE

最後に

これでシングルインスタンスの基本的な構築手順は学べます。
さらにORACLEはRAC環境の構築手順も公開してくれているので、そちらもぜひやってみてください。

また、更にORACLEのSQLなど勉強をやってみたい方はこちらを参考にしてください。
>>おすすめのORACLE参考書まとめ





【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法