CentOSにOracleを入れる

無料でOracleが使いたい。

ということで、Oracle Database Express Edition 11g Release 2CentOSに入れてみました。

環境

OS:CentOS6.4

要件
glibcは2.3.4-2.41以上
makeは3.80以上
binutilsは2.16.91.0.5以上
gccは4.1.2以上
libaioは0.3.104以上
下準備
インストール
$ yum install glibc
$ yum install make
$ yum install gcc
$ yum install binutils
$ yum install libaio
$ yum install libaio-devel
$ yum install bc

Hostsの設定

デフォルトの設定ではtnsname.oraがhost名になっているので、ホスト名とipが紐づいていない場合エラーになります。

ホスト名を127.0.0.1に設定します。

ホスト名の確認

$ hostname

centOS64mini

ホスト名の設定

$ sudo vim /etc/hosts

127.0.0.1   localhost  centOS64mini5 

デフォルトポートの解放

# 8080と1521を開ける
$ sudo /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT                       
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
# リスタート 
$ /etc/init.d/iptablesrestart
解凍 

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

インストール
スワップ領域を一時的に2GBに設定。2GB以上ある場合はこの作業は不要です。

SWAPサイズを一時的に増やす : Edo::World::Blogこちらを参考にすると変更できます。

# 現在の領域を削除
$ sudo swapoff -a
 
# 2GBの領域を作成する
$ sudo dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048
$ sudo mkswap /tmp/swapfile
$ sudo swapon /tmp/swapfile
 
# 確認
$ cat /proc/swaps
インストール
sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
sudo /etc/init.d/oracle-xe configure
swap領域を元に戻す
# 現在の領域を削除
sudo swapoff -a
# swap領域を元に戻す
sudo swapon /dev/mapper/VolGroup-lv_swap
# 確認
sudo cat /proc/swaps
# 作ったスワップファイルを削除
sudo rm /tmp/swapfile
インストール完了。
 
※エラーが出た場合はここにログが出るので確認する

/u01/app/oracle/product/11.2.0/xe/config/log/ 

ユーザ作成

ORACLE_HOMEの設定

$ cat ~/.bashrc
# .bashrc
# Source global definitions                                                
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
 
# User specific aliases and functions 
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/xe
export ORACLE_SID=XE
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib/:/lib:/usr/lib
export NLS_LANG=Japanese_Japan.AL32UTF8
 
$ source .bashrc

oracleユーザのパスワード変更

$ sudo passwd oracle 

oracleユーザでsqlplusにログイン

$ su oracle
$ sqlplus / as sysdba

# testユーザをパスワードpasswordで作成
SQL > create user test
identified by password
default tablespace USERS
temporary tablespace TEMP;
# 権限の付与
SQL > grant CONNECT to TEST;
SQL > grant create table to TEST;
# ログアウト
SQL > exit;

testユーザで テーブル作成

# ログイン

$ sqlplus test/password@XE

# テーブル作成

SQL >  create table test

(
  id NUMBER(3) ,
  name VARCHAR2(5),
  primary key( id )
);
windowsからログインしてみる 

A5:SQL Mk-2を使います。

データベース→データベースの追加と削除→追加→Oracle(OCI経由 or 直接接続)
こんな感じに設定をすればOKです。
 

f:id:katashiyo515:20131223191942j:plain

ポート番号やサービス名を変更したい場合はtnsnames.oraを修正するといいです。

/u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.ora