自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
ここでは、自宅でORACLEデータベース環境を構築して、自己学習する方法を消化します。
ORACLEダウンロードから構築までの手順
1.ORACLEアカウントの作成
ORACLEのページに遷移しアカウントの作成を行います。
非常に簡単ですぐに終わります。ORACLEページはこちら
(1)まずはORACLEのトップ画面から「アカウント作成」を選択してください。
規約の詳細はこちら
(1)ファイルをダウンロードします。
最新バージョンの12cR2もありますが、ここでは12cR1を選択します。
2つのファイルをダウンロードすれば完了です。
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など勉強をやってみたい方はこちらを参考にしてください。
最後に
最後までお読みいただきありがとうございます。
SQLのチューニングについては、「SELECT文のSQLチューニング方法まとめ」で詳しく解説していますので、ぜひ参考にしてください。