CentOS5安裝Oracle 10g R2
一、基本條件
圖形介面除kde全裝
要裝個瀏覽器,能連網
最好不要啟動selinux
vim /etc/sysconfig/selinux
去掉不需的服務,如iptables, cups, postfix....
機器名hostname
/etc/sysconfig/network中的hostname要與/etc/hosts中的一致
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dbserver
GATEWAY=192.168.137.1
NTPSERVERARGS=iburst
就是上面的HOSTNAME=dbserver
vim /etc/hosts
127.0.0.1 localhost dbserver
::1 localhost dbserver
#ip dbserver
有人還加上最後一行的ip設定(我沒加)
二.準備安裝的軟體:(這個很重要,第一次安裝失敗就是因為軟體包沒有打全)
rpm -q xxx*
yum install xxx
rpm -ivh xxx.rpm
做成直接安裝的命令:
yum install \
binutils \
compat-libstdc++-33 \
compat-libstdc++-33*.i686 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc*.i686 \
glibc-common \
glibc-devel \
glibc-devel*.i686 \
glibc-headers \
ksh \
libaio \
libaio*.i686 \
libaio-devel \
libaio-devel*.i686 \
libgcc \
libgcc*.i686 \
libstdc++ \
libstdc++*.i686 \
libstdc++-devel \
make-3.81 \
sysstat*.i686 \
unixODBC*.i686 \
unixODBC-devel \
unixODBC \
libXp \
libXp*.i686
yum install libXp.so.6 libXt.so.6 libXtst.so.6
三.建立使用者和組
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle
四.建立目錄和許可權
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
五.編輯變數
可以用cat >> xxx << EOF
>
>
>EOF
來將輸入附加到要編輯的檔案
1.
vi /etc/sysctl.conf 注意這個檔案有兩個變數(最後兩個)要注釋掉的
kernel.shmall = 2097152
kernel.shmmax = 2147483648 記憶體一半大一點點
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
寫入核心:sysctl -p
2.
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
3.
vi /etc/pam.d/login
#session required /lib/security/pam_limits.so
session required pam_limits.so
4.
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
5.
vi ~oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle #可能要改的
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 #可能要改的
export ORACLE_SID=ORADB #可能要改的
export DISPLAY=192.168.1.XXX:0.0 #可能要改的
export PATH=$ORACLE_HOME/bin:$PATH
7.
vi /etc/redhat-release
將CentOS release 5 (Final) 修改成redhat-4或者Red Hat Enterprise Linux Server release 5.4 (Tikanga)
安裝時會提示以下內容:
檢查作業系統版本: 必須是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
六.解壓包
將安裝檔案放到目標機器上ftp,scp(filezilla)
放到/u01/app/oracle目錄下
注意:用oracle使用者進入運行下面的命令 su - oracle
Directions
1. Unzip the file: gunzip <filename>
2. Extract the file: cpio -idmv < <filename>
3. Installation guides and general Oracle Database 10g documentation can be found here.
4. Review the certification matrix for this product here.
這樣做,也可以,在圖形介面下開一個終端,
#>xhost +
#>su - oracle
#>unset LANG LANGUAGE #解決亂碼
之後,在此終端內運行安裝程式
進入終端
sh /ORACLE的目錄/runInstaller
檢查時要好好看看可有Failed,有的話好好檢查一下,再retry
安裝時有個錯誤"**** collector ***",continue
dbca時 ora-27125 問題
用root使用者
id oracle
uid=501(oracle) gid=501(oinstall) 組=501(oinstall),502(dba),503(oper)
注意dba的組是502
echo 502 > /proc/sys/vm/hugetlb_shm_group
再在安裝介面retry一下。
這個以後要加到開機運行裡
最後用root執行兩個命令,第二個命令有個選擇,直接斷行符號
七.安裝後運行
由於安裝後ORACLE不可以自動啟動,需要手動啟動ORACLE,方法有3種。
1、手動啟動
# echo 502 > /proc/sys/vm/hugetlb_shm_group
# su - oracle
$ sqlplus / as sysdba
SQL> startup
SQL> exit
$ lsnrctl start
$ emctl start dbconsole
2、開機啟動
vi /etc/rc.d/rc.local
echo 502 > /proc/sys/vm/hugetlb_shm_group
su - oracle -c "/u01/app/oracle/product/10.2.0/bin/lsnrctl start"
su - oracle -c "/u01/app/oracle/product/10.2.0/bin/dbstart start"
su - oracle -c "isqlplusctl start"
su - oracle -c "emctl start dbconsole"
vi /etc/oratab
ORADB:/u01/app/oracle/product/10.2.0:Y
3、自動啟動,有時候會出問題,不知道怎麼回事
vim /etc/init.d/oracle
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: Oracle 10g Server
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
echo 502 > /proc/sys/vm/hugetlb_shm_group
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
#export ORACLE_SID=ORADB
#export PATH=$PATHORACLE_HOME/bin
export ORACLE_OWNER="oracle"
# if the executables do not exist -- display error
if [ ! -d $ORACLE_HOME ]
then
echo "cannot find $ORACLE_HOME"
exit 1
fi
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "cannot find $ORACLE_HOME/bin/dbstart"
exit 1
fi
if [ ! -f $ORACLE_HOME/bin/dbshut ]
then
echo "cannot find $ORACLE_HOME/bin/dbshut"
exit 1
fi
if [ ! -f $ORACLE_HOME/bin/lsnrctl ]
then
echo "cannot find $ORACLE_HOME/bin/lsnrctl"
exit 1
fi
if [ ! -f $ORACLE_HOME/bin/emctl ]
then
echo "cannot find $ORACLE_HOME/bin/emctl"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
儲存退出
chmod u+x /etc/init.d/oracle
chkconfig oralce on
Usage: oracle start|stop|restart|reload
常用命令
$ dbca
$ netca
$ netmgr
$ lsnrctl start
$ emctl start dbconsole
$ sqlplus / as sysdba
SQL> startup
SQL> shutdown immediate
create tablespace xxx datafile '/u01/oracle/oradata/xxx_01.dbf' size 500m reuse autoextend on next 1024k maxsize unlimited extent management local uniform size 500K;
create user oa identified by oa default tablespace ecology temporary tablespace temp;
grant connect,resource,create view,dba to oa;