分类: Oracle
2012-02-16 14:09:02
一、安装
安装Oracle之前需要对目前系统的安装包检查:
1.
需要安装的包有:
binutils
compat-libstdc++
elfutils-libelf
elfutils-libelf-devel
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
libaio
libaio-devel
libgcc
libstdc++
libstdc++-devel
make
sysstat
unixODBC
unixODBC-devel
pdksh
可以使用rpm命令检查,用yum安装。例如:
rpm -qa | grep binutils
yum install binutils
a
2.
创建 Oracle 用户和组以及安装目录
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
验证nobody用户:
创建数据库文件夹,如果/ 空间够大,可以不另外挂载新分区到/db
mkdir /db
改变/db的所有者
chown oracle:oinstall /db
创建软件存放目录:
mkdir /db/sw
3.为oracle用户设置环境变量
4.更改内核参数
可以参考上面的数值,查询本机的参数是否符合。例如:/sbin/sysctl -a | grep sem
将小于以上的参数添加到 /etc/sysctl.conf
使刚修改的参数生效:
5.为oracle 用户设置shell 限制
在/etc/pam.d/login 输入以下内容:
在/etc/profile 输入以下内容:
6.用oracle用户将oracle 安装包上传到/db/sw内,解压缩,安装
unzip oracle_11g.zip
进入database目录执行./runInstaller
如果报错无法继续。声明一个DISPLAY变量尝试:
xhost +
执行./runInstaller
因为安装需要图形界面,必须使用oracle用户登录主机,并且是图形界面。
按照需求安装oracle
注:oracle 安装包最好不要使用rar压缩或者解压缩
二、开机启动
1.首先修改/etc/oratab 文件
将$ORACLE_SID:$ORACLE_HOME:N 这一行的最后N修改为Y
2.切换oracle用户,进入$ORACLE_HOME/bin 文件夹
修改dbstart 和dbshut修改方法一样
将ORACLE_HOME_LISTNER=$1 修改为: ORACLE_HOME_LISTNER=$ORACLE_HOME
3.在/etc/init.d/下面建立oracle11 脚本
4.建立软链接,加入启动服务:
ln -s /etc/init.d/oracle11 /etc/rc.d/rc3.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc4.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc5.d/S99oracle11
报错:
INS-20802
修改/etc/sysconfig/network /etc/hosts hostname 不能为默认localhost
显示init.ora参数错误可以修改$oracle_home/dbs/init$oracle_sid.ora文件内的
ora-00845 MEMORY_TARGET not supported on this system
执行: mount -o remount,size=4G /dev/shm
64位:
[root@centos219 ~]# cat /home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
#alias sqlplus = 'rlwrap sqlplus'
# User specific environment and startup programs
ORACLE_SID=mainsite
ORACLE_BASE=/db/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2
ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE_SID ORACLE_BASE ORACLE_HOME ORACLE_HOME_LISTNER
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
[root@centos219 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
[root@centos219 ~]# sed '/^#/d' /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[root@centos219 ~]# cat /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session include system-auth
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
session required /lib64/security/pam_limits.so
session required pam_limits.so
[root@centos219 ~]# cat /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