“//”后是注释,“#”代表root用户下操作,“$”代表oracle用户下操作。
#chkconfig iptables off //永久关闭防火墙或
#service iptabels stop //暂时关闭防火墙,重启系统后会自动打开
1.硬件检查:
1.1 内存要求:
内存大于1G(使用虚拟机安装时内存要稍微大一些,否则安装检查不通过)
#cat /proc/meminfo //查看内存大小
1.2 交换分区要求:
交换分区是内存的1.5倍,可根据实际情况调整
#grep SwapTotal /proc/meminfo //查看交换分区大小
1.3 硬盘空间要求
硬盘空间要满足所需软件的大小,要求/tmp 分区不少于 400M ,安装目录应大于4G:
#df –h //查看磁盘空间使用情况
#du –ch //查看目录空间大小
2.软件检查:
2.1 检查安装oracle所依赖的组件包是否安装上:
#rpm–qa |grep 软件包名称 //检查软件包是否安装上
1.binutils-2.17.50.0.6
2.compat-libstdc++-33-3.2.3
3.elfutils-libelf-0.125
4.elfutils-libelf-devel-0.125
5.elfutils-libelf-devel-static-0.125
6.gcc-4.1.2
7.gcc-c++-4.1.2
8.glibc-2.5-24
9.glibc-common-2.5
10.glibc-devel-2.5
11.glibc-headers-2.5
12.kernel-headers-2.6.18
13.pdksh-5.2.14
14.libaio-0.3.106
15.libaio-devel-0.3.106
16.libgcc-4.1.2
17.libgomp-4.1.2
18.libstdc++-4.1.2
19.libstdc++-devel-4.1.2
20.make-3.81
21.numactl-devel-0.9.8.i386
22.sysstat-7.0.2
23.unixODBC-2.2.11
24.unixODBC-devel-2.2.11
2.2 安装缺少的软件包:
#rpm –ivh 软件包名称 //使用本地光盘镜像安装软件包
#yum install 软件包名称 //使用yum联网安装
3.配置系统环境
3.1修改内核参数:
#vi /etc/sysctl.conf
fs.file-max= 6815744
fs.aio-max-nr=1048576
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
kernel.sem= 250 32000 100 128
kernel.shmall= 2097152(可以按照系统默认,不修改)
kernel.shmmax= 536870912(可以按照系统默认,不修改)
#sysctl –p //让内核参数生效
3.2修改进程数和最大会话数
#vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
3.3关联设置
#vi /etc/pam.d/login
session required pam_limits.so
3.4修改/etc/profile
#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
4.创建安装用户、组和目录
4.1创建安装用户和组
#groupadd oinstall //创建oinstall组
#groupadd dba //创建dba组
#useradd -g oinstall -G dba oracle //新建用户oracle,设定其主组为oinstall,副组为dba
#id oracle //检查结果
#passwd oracle //设置oracle用户密码
4.2创建软件安装目录
#mkdir -p /home/oracle_11/app/ //创建安装根目录
#chown -R oracle:oinstall /home/oracle_11/ //安装根目录所属用户和组为oracle用户和oinstall组
#chmod -R 755 /home/oracle_11/ //修改目录的访问权限为所属用户完全控制,所属组和其他用户可读和执行
4.3设置用户环境变量
#vi /home/oracle/.bash_profile
exportORACLE_BASE=/home/oracle_11/app //软件安装基目录
exportORACLE_SID=orcl //实例名
exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 //软件安装产品目录
exportPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
#source /home/oracle/.bash_profile //加载文件使配置生效
#env|more //查看配置的环境变量是否正确
5.安装oracle
安装过程和在windows上安装一样。
用WinScp上传oracle安装文件到Linux目录下,并解压
#unzip linux_11gR2_database_1of2.zip
#unzip linux_11gR2_database_2of2.zip
#xhost + //如果没有执行,将无法启动图形安装界面
#su – oracle //切换到oracle用户,注意加“-”,不然用户环境变量不会改变
$cd /home/database
$./runInstaller
5.1配置安全更新
5.1.1 配置安全更新,选择不接受更新:
5.1.2 提示不用管,点击yes,直接下一步:
5.2 安装选项选择创建和配置数据库:
5.3系统类选择服务器类:
5.4选择安装单实例数据库:
5.5安装类型选择高级安装:
5.6选择产品语言:
5.7数据库版本选择企业版:
5.8 选择安装位置:
把安装基目录更改成前面用户环境变量所配置的基目录,软件产品安装目录更改成前面用户环境变量所配置的软件产品目录,这里软件产品目录没有更改,后面启动oracle出了一些问题,所以一定要改成和用户环境变量配置的一致:
5.9选择资料目录:
5.10配置类型选择一般用途/事务处理:
5.11输入实例名称和全局标识符,和前面用户环境变量配置的一致:
5.12指定配置选项
5.12.1指定配置选项,启用自动配置内存管理:
5.12.2指定配置选项,字符集使用默认值:
5.12.3指定配置选项,安全性使用断言所有新安全设置:
5.12.4指定配置选项,实例方案不创建具有实例方案的数据库:
5.13管理选项使用DatabaseControl 管理数据库:
5.14数据库存储选项使用默认值:
5.15指定恢复选项,不启用自动备份:
5.16指定方案口令:
5.16.1 指定方案口令,对所有账户使用相同的口令:
5.16.2 如果密码不是复杂密码,会提示不符合推荐的标准,不用管点击yes,直接下一步:
5.17特殊的用户组:
5.18执行先决条件检查
5.18.1执行先决条件检查,如果检查不通过,点击取消,执行所需条件,然后再重新安装即可:
5.18.2所提示的软件包已经安装过了(因为系统是64位的,所以软件包也只安装了64位的,如果想要检查通过,应该需要把32位的软件包也安装上,影响不大),勾选全部忽略,点击下一步:
5.19概要:
5.20 安装过程
5.20.1 开始安装:
5.20.2安装过程,配置数据库:
5.20.3数据库安装完成,点击ok:
5.20.4需要切换到root用户执行2个脚本文件:
5.20.5切换到root用户执行脚本1:
5.20.6切换到root用户执行脚本2:
5.21安装完成
5.21.1安装完成,点击关闭:
5.21.2安装完成,终端提示安装日志的保存位置:
安装完成,可以打开https://localhost:1158/em来看看具体的情况,使用CentOS自带的火狐浏览器不能够访问,可以在其他机器上使用IE浏览器登录。
6.服务启动
6.1手动开启服务
Linux下的Oracle在安装结束后是处于运行状态的。重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务。
重启之后,以oracle用户登录:
$sqlplus //进入sqlplus
$lsnrctl start //启动监听程序
$emctl start dbconsole //启动EM控制台
运行这些命令都提示没有该命令,应该是用户环境变量出现问题:
6.1.1 启动EM控制台
$echo $ORACLE_SID //如果没有打印正确的SID,则表明环境变量设置错误或没有加载
$cd /home/oracle //进入到oracle用户的主目录
$source .bash_profile //加载oracle的个人属性文件
$echo $ORACLE_SID //如果还是没有打印,则肯定是没有设置SID变量了,直接vi这个文件,然后设置
$cd $ORACLE_HOME/bin //进入到oracle的安装目录下的bin目录
bash:cd:/home/oracle_11/app/oracle/product/11.2.0/db_1/bin:No such file or directory //提示没有这个文件或者目录,应该是软件安装目录和环境变量里面设置的不一样导致的,先不管,手动输入oracle安装目录下的bin目录
$cd /home/oracle_11/app/product/11.2.0/dbhome_1/bin //手动输入oracle安装目录下的bin目录
$./emctlstart dbconsole //启动EM控制台
EM控制台启动成功,通过http://localhost:1158/em/来访问EM控制台。
进入EM控制台之后发现数据库实例和监听都是关闭状态。
6.1.2启动监听程序:
6.1.2.1 启动监听程序,提示错误
$./lsnrctlstart //启动监听程序
6.1.2.2查看监听程序的配置文件,发现没有问题
$cat /home/oracle_11/app/product/11.2.0/dbhome_1/network/admin/listener.ora
6.1.2.3 更改用户环境变量
启动EM控制台时,怀疑oracle安装目录和用户环境变量里面设置的oracle产品安装目录不一致,查看用户环境变量,确实是这个问题,更改用户环境变量验证一下:
$vi /home/oracle/.bash_profile
6.1.2.4 再次启动监听程序
$./lsnrctlstart //启动监听程序,启动成功
6.1.3启动数据库实例有2种方法:
6.1.3.1 登录到sqlplus开启数据库实例
$./sqlplus /nolog //登录到sqlplus
SQL>startup //启动数据库实例,提示错误,没有权限,切换到sysdba用户
SQL>conn /as sysdba //切换到sysdba用户
SQL>startup //启动数据库实例
SQL>exit //数据库实例启动成功,exit退出sqlplus
6.1.3.2 用命令dbstart开启数据库实例
$./dbstart //启动数据库实例
ORACLE_HOME_LISTNERis not SET, unable to auto-start Oracle Net Listener
Usage:./dbstart ORACLE_HOME
出现这样错误是由于没有设置ORACLE_HOME_LISTNER,解决方案将$ORACLE_HOME赋值给$ORACLE_HOME_LISTNER,保存,退出:
$vi $ORACLE_HOME/bin/dbstart
找到ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
再运行dbstart命令,已经不报错了,但是没有任何反应,用netstat –tlnup查看端口连接,发现1158(Oracle提供的EM管理器默认端口号)端口已经打开,1521( Oracle数据库的默认端口号)端口没有打开,说明oracle实例没有正常启动。
此时的原因是/etc/oratab的设置问题,查看/etc/oratab文件发现最后一行
orcl:/home/oracle_11/app/product/11.2/db_home:N
最后设置的是“N”(此环境只有一个实例,所以只有一行配置语句),需要把“N”修改成“Y”。保存退出。
再运行dbstart命令,返回结果如下:
ProcessingDatabase instance "orcl": log file
/home/oracle_11/app/product/11.2.0/dbhome_1/startup.log
数据库实例已经启动成功。
dbshut文件进行同样的设置。以后就可以在启动监听之后直接使用dbstart和dbshut命令来启动和关闭数据库实例了。
6.1.4 登录EM控制台查看状态:
以上开启数据库实例和监听程序还有另外一种办法:先开启EM控制台,然后在EM控制台里面开启数据库实例和监听程序,开启时需要输入用户名和密码,注意要输入oracle用户的用户名和密码。
EM控制台、监听程序、数据库实例都启动成功,使用EM控制台https://IP:1158/em登录查看所有状态都正常:
6.2开机自动启动服务
手动开启服务的方法已经知道了,如果每次重启服务器都要手动开启服务就太麻烦了,那就需要把服务添加到开机自动启动。
6.2.1:修改$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut文件:
$vi $ORACLE_HOME/bin/dbstart
$vi $ORACLE_HOME/bin/dbshut
找到ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
6.2.2:修改/etc/oratab文件:
$vi /etc/oratab
找到最后一行:
orcl:/home/oracle_11/app/product/11.2/db_home:N
最后设置的是“N”(此环境只有一个实例,所以只有一行配置语句),需要把“N”修改成“Y”。保存退出。
6.2.3:测试命令是否可以启动oracle服务:
$cd $ORACLE_HOME/bin //进入oracle产品安装目录的bin目录
$./emctlstart dbconsole //开启EM控制台
$./lsnrctlstart //开启监听程序
$./dbstart //开启数据库实例
6.2.4:修改/etc/rc.d/rc.local文件
把emctl start dbconsole 、lsnrctl start和dbstart添加到rc.local文件中,命令如下:
#vi /etc/rc.d/rc.local
添加:
suoracle -lc "home/oracle_11/app/product/11.2.0/dbhome_1/bin/emctl startdbconsole" //填写可执行程序的完整路径
suoracle -lc " home/oracle_11/app/product/11.2.0/dbhome_1/bin/lsnrctl start"
suoracle -lc home/oracle_11/app/product/11.2.0/dbhome_1/bin/dbstart
注意:命令有空格,要用引号
重启系统后服务自动开启。
oracle11g R2安装完成,重启之后查看所有状态都正常。