Oracle官方文档:http://www.oracle.com/pls/db112/homepage
1. 以root用户登录到Linux
2. 检查机器硬件要求
2.1 内存要求
- 至少需要1GB的内存
- 查看机器内存大小
- # grep MemTotal /proc/meminfo
2.2 swap空间要求
- 内存大小 swap空间大小
- 1 GB ~ 2 GB 内存大小*1.5
- 2 GB ~ 16 GB 内存大小
- > 16 GB 16 GB
- 查看swap空间大小
- # grep SwapTotal /proc/meminfo
2.3 空闲硬盘要求
- /tmp目录需要1 GB的空闲空间
- 查看/tmp目录的空闲空间
- # df -h /tmp
- 安装Oracle软件需要的硬盘空间
- Enterprise Edition 3.95(software files)+1.7(data files)
- Standard Edition 3.88(software files)+1.5(data files)
- 查看机器中每个磁盘的空闲空间
- # df -h
3. 检查操作系统软件要求
Oracle官方文档中包含了多个Linux系统的要求,详细请参考官方文档
Fedora 15 (RHEL 5.x)的软件要求列表如下:
- binutils-2.17.50.0.6
- compat-libstdc++-33-3.2.3
- elfutils-libelf-0.125
- elfutils-libelf-devel-0.125
- elfutils-libelf-devel-static-0.125
- gcc-4.1.2
- gcc-c++-4.1.2
- glibc-2.5-24
- glibc-common-2.5
- glibc-devel-2.5
- glibc-headers-2.5
- kernel-headers-2.6.18
- ksh-20060214
- libaio-0.3.106
- libaio-devel-0.3.106
- libgcc-4.1.2
- libgomp-4.1.2
- libstdc++-4.1.2
- libstdc++-devel-4.1.2
- make-3.81
- numactl-devel-0.9.8.i386
- sysstat-7.0.2
- 查看系统是否安装了该软件包
- # rpm -q package_name
- yum -y install binutils compat-libcap1 compat-libstdc++.i686 compat-libstdc++.x86_64 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libXext libXtst libX11 libXau libxcb libXi make sysstat unixODBC-devel.i686 unixODBC-devel.x86_64 unixODBC.i686 unixODBC.x86_64 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64
4. 创建安装Oracle需要的系统组和用户
- 创建Oracle Inventory 组
- # groupadd oinstall
- 创建OSDBA 组
- # groupadd dba
- 创建Oracle软件创建者
- # useradd -g oinstall -G dba oracle
- 修改oracle用户的密码
- # passwd oracle
5. 配置系统内核参数值
- 编辑/etc/sysctl.conf文件
- vim /etc/sysctl.conf
- 在打开的文件底部添加下面内容
- 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
- 改变当前系统内核参数值(让/etc/sysctl.conf立即生效)
- # sysctl -p
6. 检查Oracle安装用户(oracle)资源限制
- 修改/etc/security/limits.conf文件
- 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
7. 创建安装Oracle软件所需要的目录
- # mkdir -p /home/oracle_11/app/
- # chown -R oracle:oinstall /home/oracle_11/app/
- # chmod -R 775 /home/oracle_11/app/
8. 配置安装Oracle安装用户(oracle)的环境
- 编辑 /home/oracle/.bash_profile
- vim /home/oracle/.bash_profile
- 在打开的文件中添加下面内容
- umask 022
- export ORACLE_BASE=/home/oracle_11/app
- export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
- export ORACLE_SID=orcl --Oracle实例名,可修改
- export PATH=$PATH:HOME/bin:$ORACLE_HOME/bin
- 编辑 /etc/pam.d/login
- vim /etc/pam.d/login
- 在打开的文件中添加下面内容
- session required /lib/security/pam_limits.so
- session required pam_limits.so
- 编辑 /etc/profile
- vim /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
9. 查看系统是否支持图形界面
- 查看root用户下是否已设置DISPLAY变量
- # echo $DISPLAY
- 如果有值出现,则说明已设置DISPLAY变量;否则,就需要手动设置DISPLAY
10. 开始安装Oracle软件
- # cd /tmp
- # unzip linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip
- # xhost +
- # su - oracle
- $ export DISPLAY=:0
- $ cd /database
- $ ./runInstaller
- 接下来系统会启动Oracle图形安装界面,安装过程和Windows下一样
[oracle@localhost database]$ ./runInstaller
[1] oracle安装界面启动如下图所示,输入邮件地址及密码(oracle用户),以从oralce接收安全更新等信息
[2] 仅安装数据库软体
[3] 本实例中选择安装单实例数据库
[4] 选择语言
[5] 选择要安装的版本,这里选择 “Enterprise Edition”
[6] 指定Oracle Base 与 Software Location, 我们在oracle用户的profile文件里已设置此环境变量,此处保持默认
[7] 指定Inventory Directory, 本例保持默认
[8] 指定oralce特权用户组,本例保持默认
[9] 接下来,oralce安装程序会对安装环境进行检查,本例未检查到任何问题,显示安装信息如下。直接Finish, 开始安装。
[10] 静待oracle安装
[11] 当出现以下窗口时,另开一个终端,以root用户登陆,并执行下面的命令。执行完毕后,点击OK
[root@localhost ~]# /usr/oracle/oraInventory/orainstRoot.sh Changing permissions of /usr/oracle/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /usr/oracle/oraInventory to oinstall. The execution of the script is complete. [root@localhost ~]# /usr/oracle/app/product/11.2.0/dbhome_1/root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /usr/oracle/app/product/11.2.0/dbhome_1
[12] 至此oracle 11g R2数据库安装完毕。
Linux下的Oracle在安装结束后是处于运行状态的。重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务
- 以oracle用户下,执行下面的命令
- 进入sqlplus
- $ sqlplus /nolog
- 以sysdba的身份连接到数据库,并启动Oracle数据库引擎
- SQL> conn /as sysdba
- SQL> startup
- 退出sqlplus,运行Listener
- SQL> exit
- $ lsnrctl start
这样就可以连接到Oracle数据库了。如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:
- $ emctl start dbconsole
这样就可以通过http://localhost:1158/em/来访问EM控制台了。
使用dbstart和dbstop来启动Oracle服务
可能使用dbstart命令来启动数据库更方便一些,但初次安装完oracle之后使用dbstart命令会报这样的错误
- ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
- Usage: /u01/app/oracle/product/11.2/db/bin/dbstart ORACLE_HOME
出现这样错误的原因是由于没有设置ORACLE_HOME_LISTNER的原因,我们查看一下dbstart这个文件
- more /home/oracle_11/app/oracle/product/11.2/db/bin/dbstart
部分内容如下
- # First argument is used to bring up Oracle Net Listener
- ORACLE_HOME_LISTNER=$1
- if [ ! $ORACLE_HOME_LISTNER ] ; then
- echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
- echo "Usage: $0 ORACLE_HOME"
- else
- LOG=$ORACLE_HOME_LISTNER/listener.log
- # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to
- # a different ORACLE_HOME for each entry in the oratab.
- export ORACLE_HOME=$ORACLE_HOME_LISTNER
解决方案就算将$ORACLE_HOME赋值给$ORACLE_HOME_LINTNER,保存,退出
再一次执行dbstart,但是没有反映,没有报错,如果我们需要使用dbstart,则需要在/etc/oratab这个文件中的实例最后的N改成Y,如下
- orcl:/home/oracle_11/app/oracle/product/11.2/db:Y
OK,保存,再试一下dbstart命令,返回结果如下
- Processing Database instance "orcl": log file /home/oracle_11/app/oracle/product/11.2.0/db_1/startup.log
dbshut进行同样的设置.这样,以后就可以在启动监听之后直接使用dbstart和dbshut命令来启动和关闭数据了
将Oracle服务添加到Linux开机启动项,以root用户建立/etc/rc.d/init.d/oradb脚本文件,文件内容如下:
- #!/bin/bash
- # chkconfig: 2345 90 10
- export ORACLE_BASE=/home/oracle_11/app/
- export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
- export ORACLE_SID=orcl
- export PATH=$PATH:$ORACLE_HOME/bin
- ORCL_OWN="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 -- start, stop, restart
- # of the instance and listener or usage display
- case "$1" in
- start)
- # Oracle listener and instance startup
- echo -n "Starting Oracle: "
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"
- touch /var/lock/subsys/oradb
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"
- echo "OK"
- ;;
- stop)
- # Oracle listener and instance shutdown
- echo -n "Shutdown Oracle: "
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"
- rm -f /var/lock/subsys/oradb
- echo "OK"
- ;;
- reload|restart)
- $0 stop
- $1 start
- ;;
- *)
- echo "Usage: 'basename $0' start|stop|restart|reload"
- exit 1
- esac
- exit 0
将该文件添加到开机启动
- # chmod 755 /etc/rc.d/init.d/oradb
- # chkconfig --add oradb
重启服务
- # service oradb stop
- # service oradb start
下次启动机器的时候,Oracle服务会随机器一起启动。
Oracle数据库安装、配置完成。
===========================================================================
安装过程中遇到的问题:
1.Starting Oracle Universal Installer...
Checking Temp space: must be greater than 80 MB. Actual 10115 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before
continuing with the installation,at which time they will be rechecked.
Continue? (y/n) [n]
退出当前的root用户,改用Oracle用户来登录
2.安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined
出现这种错误是因为主机名和/etc/hosts 文件不一致,只需要把主机名和其IP 写入/etc/hosts 文件,就ok了。
1.修改/etc/sysconfig/network 文件
[root@localhost~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=oracle.hdsx
2.使用hostname 命令修改主机名,该修改重启会失效,但在第一步我们已经修改过。所以失效也没关系
[root@localhost ~]# hostname
localhost
[root@localhost ~]# hostname oracle.hdsx
[root@localhost ~]# hostname
oracle.hdsx
3.修改hosts 文件
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.0.200 oracle.hdsx
再次运行安装文件,顺利通过。