在数据库服务器上,进行完以上步骤后,安装oracle。安装较为复杂。
1、 修改系统版本名称
Oracle不识别CentOS,因此改为RH
vi /etc/redhat-release
将CentOS release 6.3 (Final)这行注释掉,加上下面的
Red Hat Enterprise Linux 6
2、 安装依赖项
执行以下语句或者使用附件/4-oracle/install.sh进行安装
yum install \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33*.i686 \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc*.i686 \
glibc \
glibc-devel \
glibc-devel*.i686 \
ksh \
libgcc*.i686 \
libgcc \
libstdc++ \
libstdc++*.i686 \
libstdc++-devel \
libstdc++-devel*.i686 \
libaio \
libaio*.i686 \
libaio-devel \
libaio-devel*.i686 \
make \
sysstat \
unixODBC \
unixODBC*.i686 \
unixODBC-devel \
unixODBC-devel*.i686
3、 安装libXp
yum -y install libXp
4、 建立用户和组
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle
查看一下
id oracle
大致这样子:
uid=501(oracle) gid=501(oinstall) 组=501(oinstall),502(dba),503(oper)
5、 建立安装目录(OFA结构)
mkdir -p /u01/app/oracle/product/11.2.0/db_1
cd /u01/app
mkdir oraInventory
chown -R oracle:oinstall /u01/app/oracle(oraInventory)
chmod -R 775 /u01/app/oracle(oraInventory)
6、 修改内核参数
vi /etc/sysctl.conf
改为以下值
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 8388608
kernel.shmmax = 17179869184
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
其中计算公式如下:
Shmall(全部共享内存)=32*1024*1024/4=8388608(页)
Shmmax(最大共享内存)=32/2*1024*1024*1024=17179869184
最需要注意的是shmmax 这个参数,最小500M,最大比内存少一个字节就可以了,推荐比内存的一半大一点点
还有特别注意sysctl.conf中shmmax ,shmall 已经有了,要注释掉
改好后,使之生效
sysctl -p
7、 修改文件限制
vim /etc/security/limits.conf
增加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
8、 编辑/etc/pam.d/login
vi /etc/pam.d/login
将以下内容加到最后(注意64位系统为lib64)
session required /lib64/security/pam_limits.so
session required pam_limits.so
9、 修改/etc/profile
vi /etc/profile
将以下代码新增到profile档案中。在 pathmunge() {…}之后即可。
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
10、 修改oracle用户环境变量
vi ~oracle/.bash_profile
修改以下内容
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=ORCL
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export PATH
11、 安装
下载的oracle文件(已下载至附件/4-oracle)到/u01/app/oracle
xhost +
su - oracle
cd /u01/app/oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
unset LANG LANGUAGE
cd /u01/app/oracle/databse
./runInstaller
后面的安装过程基本简单,按照向导即可,检测失败全部忽略掉
12、 安装完成后,需要执行两个脚本(安装完后有提示)
/u01/app/Oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db_1/root.sh
注意需要以root身份执行
13、 以上步骤后,以下命令启动数据库:
lsnrctl start
sqlplus /nolog
conn / as sysdba
startup
14、 以上步骤启动通常会失败,大意是找不到initORCL.ora ,可以将默认的备份文件拷贝到提示目录即可。
备份文件位置:
/u01/app/oracle/admin/orcl/pfile
15、 本次在服务器上,还遇到了一个错误,提示:
ORA-00845: MEMORY_TARGET not supported on this system
解决办法:修改/etc/fstab文件,修改成下列形式(添加size=4G)
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
重启系统,或者,重新挂载:
umount /dev/shm
mount /dev/shm
df -k /dev/shm
16、 至此,oracle已经顺利启动。