环境:
1、vm6.5
2、redhat5
3、oracle11gR2
首先用ROOT用户登录:
1、在安装oracle之前,用命令检查必需的RPM软件包有没有安装
命令如下:
#rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
如果RPM包安装完全的话会如图所示
如果未安装完全会显示XXX is not installed,这个时候可以通过挂在RHEL5.4的光盘或镜像,在Server文件夹里寻找相应的RPM包安装。如图:
其实安装操作如下,切换到 RHEL5.4的光盘,然后yum命令进行安装:
#yum install RPM包名
注:在安装时,报一个warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 37017186的错误,按道理已经在配置文件里指定不检查KEY,不理这么多,直接绕过,
用#yum install --nogpgcheck RPM包名* 实现RPM包的安装。
例如:#yum install --nogpgcheck numact*
2、建立oracle系统用户和安装目录
创建一个主组oracle和一个副组dba
#groupadd oinstall
#groupadd dba
创建oracle安装文件夹
#mkdir -p /oracle
添加一个oracle用户, 根目录是 /oracle, 主的组是oinstall 副的组是dba
#useradd -g oinstall -G dba -d /oracle oracle
拷贝包含环境变量的文件到安装目录下,这个之后会用到
#cp /etc/skel/.bash_profile /oracle
#cp /etc/skel/.bashrc /oracle
#cp /etc/skel/.bash_logout /oracle
为oracle用户设置密码 123456
#passwd oracle
设置安装目录用户权限
#chown -R oracle:oinstall /oracle
检查 nobody 是否存在
#id nobody
缺省存在的,会显示nobody的uid、gid和groups,默认都是99。如果不存在可以输入以下命令
#/usr/sbin/useradd -g nobody
3、修改内核参数
#vi /etc/sysctl.conf
在sysctl.conf这个文件中加入以下内容,加在文件的末尾,打开vi界面,按i,为编辑此文件
(注意,OEL 5 已经为 kernel.shmall 和 kernel.shmmax 定义了值。如果默认值等于或大于要求值,则使用默认值。也可以注销掉已有参数)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
注:VI保存方式,按ESC键 跳到命令模式,然后输入:w , 此命令为保存文件但不退出vi
4、设置oracle用户的shell limit
#vi /etc/security/limits.conf
在limits.conf中加入以下内容,同样放在末尾,如图所示
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中,使shell limit生效
#vi /etc/pam.d/login 追加:
session required pam_limits.so
在此,重启一下电脑,使之前配置生效!
5、设置oracle 用户环境变量
首先切换到oracle用户下
#su – oracle
#vi .bash_profile
在隐藏的.bash_profile文件中,将原有的环境变量删除,加入以下环境变量,注意自己的根目录位置 ,其中ORACLE_SID为数据库实例名
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=ORCL
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
6、将oracle安装包解压后上传到linux中,准备开始安装
Oracle 11g Release 2 linux x86(32位)/linux.x64_11gR2(64位) 官方的安装包分两个文件,一个1.2G一个900+M,解压缩后会有一个database文件夹,把这个文件夹拷过去就可以了。复制完成后,改变oracle用户访问安装包的权限
#chown -R oracle:oinstall /usr/oracle_install/database
在这之前,默认redhat5分辨率为800*600,安装oracle时,若为800*600则下一步按钮一直在那闪屏,所以修改其分率为1024*768,在 系统—管理—显示—硬件—显示器类型—配置—选择LCD,改LCD 1024*768 后确定 ,重启系统在系统-首选项-屏幕分辨率1024*768
注销root用户,改用oracle用户登录,来的database文件夹下,开始安装
#./runinstaller
7、安装过程
弹出oracle 11g的图形安装界面
选择单实例数据库安装

这里会提示要创建一个清单目录,回到命令行下,输入以下命令,否则文件夹不存在会报错。
创建完文件夹后再点击下一步
#su - root
#mkdir /oraInventory
#cd /
#chown -R oracle:oinstall oraInventory
安装程序会检查物理内存和空间大小,由于虚拟机分的内存很小,所以oracle检查会提示失败,不过我们可以忽略它,在右上角打勾即可(真实的服务器内存非常大,一般不会出现此问题)
安装完毕, 提示执行两个脚本
./oraInventory/orainstRoot.sh
./oracle/oracle/root.sh
最后点finish,oracle安装完成!
8、开启oracle监听服务
首先在命令行上输入netca,会有可能出现此问题:
Oracle Net Services 配置:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa43ea4d4, pid=4341, tid=3086784720
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c4d4]
#
# An error report file with more information is saved as hs_err_pid4341.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
/u01/oracle/bin/netca: line 178: 4341 已放弃 $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $*
错误原因:
安装操作系统是,默认主机名localhost造成错误
修改方法:
#su
#vi /etc/sysconfig/network
编辑为如下内容:
HOSTNAME=linuxhostname
#su
# vi /etc/hosts
编辑为如下内容:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost linuxhostname
输入netca,弹出框:
一直默认下一步就可以了,最后点“完成”结束
9、创建oracle数据库
回到命令行,输入dbca,会弹出以下会话框
数据库名称和SID(注意要和环境变量中设置的SID一样)
用户设置统一口令
可以设置字符集!!!
注:当前用户为oracle,若创建数据库实例时,有时oracle软件要在/etc/下面创建文件,会报“无法创建/etc/oratab”这证明没有权限,则 打开终端,切换到root用户,然后创建所需的文件,接着在把这个文件的操作权限赋给oracle,如:
$su
#vi /etc/oratab (这个是创建oratab文件,然后按esc,输入:w,就可以保存)
#chown -R oracle:oinstall /etc/oratab (赋权限)
接着在点创建,就可以继续操作了!!!
10、数据库启动和停止命令
启动监听
$ lsnrctl start
数据库启动
$ sqlplus /nolog
SQL> conn /as sysdba //连接数据库
Connected to an idle instance. //oracle实例未开启
SQL> startup
ORACLE instance started.
Total System Global Area 238530560 bytes
Fixed Size 1335724 bytes
Variable Size 121638484 bytes
Database Buffers 113246208 bytes
Redo Buffers 2310144 bytes
Database mounted.
Database opened.
SQL> conn /as sysdba
Connected.
关闭监听
$ lsnrctl stop
数据库停止
$ sqlplus /nolog
SQL> conn /as sysdba //连接数据库
SQL> shutdown immeidate //关闭数据库
查看监听的状态
$ lsnrctl status
查看IP地址
$/sbin/ifconfig
Linux 下Oracle11g 自动随系统启动
安装完毕 Oracle 11g 每次都得手动启动 | 停止数据库(dbstart | dbshut)、监听器(lsnrctl)、控制台(emtcl)。
设置一下,若手动启动数据库的同时监听器没有启动(即启动数据库时自动启动监听器,停止数据库时停止监听器),则需要修改 dbstart 脚本文件
以oracle用户登录:
oracle安装后目录为/oracle/oracle
1、修改dbstart
$cd /oracle/oracle/bin
$cp dbstart dbstart_back
$vi dbstart
找到此段话,在最前端
# First argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$1
//需要将此处的 ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
2、需要修改 dbshut
$cd /oracle/oracle/bin
$cp dbshut dbshut_back
$vi dbshut
# The this to bring down Oracle Net Listener
ORACLE_HOME_LISTNER=$1
//需要将此处的 ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
3、切换到root,转到 /etc/init.d 目录, 使用 vi 命令,新建一个以 oracle 命名的文件,并将以下代码复制至文件
$ su
#cd /etc/init.d
#vi oracle
#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g AutoRun Services
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME=/oracle/oracle #oracle安装目录
export ORACLE_SID=ORCL #实例
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle" #oracle服务启动的用户
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
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
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
在编辑完成之后,使用 :w 命令保存此文件。 使用:q 退出vi
4、赋予执行权限
# chmod 750 /etc/init.d/oracle
链接:
# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle
# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle
执行以下命令:
# /sbin/chkconfig --level 345 oracle on
#/sbin/chkconfig --add oracle //添加到服务里
注意:
这样的脚本一般不会启动实例,如果想让实例也随脚本一起启动的话,就需要修改文件/etc/oratab
如果这个文件不存在,就要运行脚本文件产生它。
# vi /etc/oratab
ORCL:/orcale/oracle:N
将N改成Y,实例orcl是自动启动的(标识为Y)