20180928-----by skyfans
说明:本文档仅支持与cos6.5系统下安装oracle,若实际环境为其他操作系统版本,仅供参考!!!!!!!
- 数据库安装与配置
1.1. 环境要求
数据库:Oracle 11g Linux64位版
操作系统:Red Hat Enterprise Linux 64bit 5.5 以上或CentOS Linux 64bit6.5 或以上
1.2. 安装数据库前的系统设置
在root用户下执行以下步骤(注:若使用otacle用户时,文中会着重指出,为指出的默认全部使用root用户!)
1.2.1. 修改用户的SHELL的限制
修改/etc/security/limits.conf文件,
vi /etc/security/limits.conf
按i键进入编辑模式,将下列内容加入该文件:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑完成后按Esc键,输入“:wq”存盘退出
1.2.2. 修改/etc/pam.d/login 文件
输入命令:
vi /etc/pam.d/login
按i键进入编辑模式,将下列内容加入该文件:
session required /lib/security/pam_limits.so
session required pam_limits.so
编辑完成后按Esc键,输入“:wq”存盘退出
1.2.3. 修改linux内核,修改/etc/sysctl.conf文件
输入命令:
vi /etc/sysctl.conf
按i键进入编辑模式,将下列内容加入该文件:
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
编辑完成后按Esc键,输入“:wq”存盘退出
1.2.4. 要使 /etc/sysctl.conf 更改立即生效
执行以下命令。输入:
sysctl -p
显示如下:
上图中的如下提示可忽略:
error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key
error: “net.bridge.bridge-nf-call-iptables” is an unknown key
error: “net.bridge.bridge-nf-call-arptables” is an unknown key
1.2.5. 编辑 /etc/profile
输入命令:
vi /etc/profile
按i键进入编辑模式,将下列内容加入该文件:
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
编辑完成后按Esc键,输入“:wq”存盘退出
1.2.6. 创建相关用户和组,作为软件安装和支持组的拥有者。
创建用户,输入命令:
group add oinstall
group add dba
创建Oracle用户和密码,输入命令:
useradd -g oinstall -g dba -m oracle
passwd oracle
然后系统会提示输入密码,密码任意输入2次,但必须保持一致,建议使用数字+字母+符号的组合,回车确认。
密码统一:skyfans
1.2.7. 创建数据库软件目录和数据文件存放目录,目录的位置,
根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:
输入命令:
mkdir /home/oracle/app
mkdir /home/oracle/app/oracle
mkdir /home/oracle/app/oradata
mkdir /home/oracle/app/oracle/product
1.2.8. 更改目录属主为Oracle用户所有,
输入命令:
chown -R oracle:oinstall /home/oracle/app
1.2.9. 配置oracle用户的环境变量
首先,切换到新创建的oracle用户下,
输入:
su - oracle
然后直接在输入:
vi .bash_profile
按i编辑 .bash_profile,进入编辑模式,增加以下内容:
umask 022
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=
PATH:
ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
编辑完成后按Esc键,输入“:wq”存盘退出
1.2.10. Oracle官方文档要求的安装包
将oracle依赖包通过ftp进行上传,然后用yum进行批量安装
#rpm -ivh .rpm
最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。
使用
yum install libXp
或命令
rpm -ivh --nodeps --forcelibXp.rpm
注:上图只是列出了部分依赖包;若测试通过后,在安装过程中出现编译错误,可能是由于部分安装包相关的依赖包没有安装造成,请查看错误日志确认缺少的包。
1.3. 进行Oracle数据库安装
-
当上述系统配置操作全部完成后,退出oracle用户,输入:
exit
在root用户下执行:
Xhost + -
在图形界面以Oracle用户登陆。
-
首先将下载的Oracle安装包复制到linux中,推荐用Xmanager 或其他ftp工具拷贝。
-
打开一个终端,运行unzip命令解压oracle安装文件,输入命令:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压完成后为database赋予权限
输入命令:
chmod -R 755 database
进入文件夹,输入命令:
cd database
使用ls命令可以查看解压后database所包含的文件,如下图:
ls
- 执行安装,输入命令:
./runInstaller
如果出现中文安装界面,并且有乱码请使用命令LANG=en-US ./runInstaller
点击 Yes忽略邮件地址的提示
安装到这一步,可以看到错误提示中,提示有很多的依赖包没有,我们可以从安装linux的光盘或ISO中查找所缺的包,使用ftp上传到linux中,然后使用
rpm –ivh xxx.rpm --nodeps –force
来进行安装(其中加上–nodeps – force 代表强制安装,是在直接使用rpm –ivh xxx.rpm安装不成功的情况下用的)安装过程略。
等到把包全部都安装好的情况下,再次在oracle图形界面中,执行安装过程2,下来在环境检查过程中,就通过了。
安装完成后,系统会提示你需要用root权限执行2个shell脚本。按照其提示的路径,找到其所在的路径: /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh(安装位置不同,路径会有差异,请使用实际安装的路径)
su – root
cd/home/oracle/app/oracle/product/11.2.0/dbhome_1
shroot.sh
执行到下图红线处,直接回车使用默认值。
su – root
cd /home/oracle/app/oraInventory
sh orainstRoot.sh
1.4. 创建数据库
1)在oracle用户的图形界面中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。
输入统一密码(也可以分别设置其密码)
密码统一:skyfans
数据库存放位置,这里采用默认
不指定快速恢复和归档
去掉不常用的模块
内存分配及指定字符集(请根据自己实际的服务器内存情况进行分配内存)
开始数据库创建,等,等等,等等,等等等等!!
经过漫长的等待,当看到此界面,说明oracle建库完成(一定要记住自己创建时输入的sys密码)
可以用sqlplus来检验下,新开启一个命令窗口,输入sqlplus,然后输入用户名和密码,可以测试下,这里就不做过多的介绍了。
1.5. 配置监听及本地网络服务
启动监听:lsnrctl start
查看监听:lsnrctl status
停止监听:lsnrctl stop
1)在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面。
2)创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)
3)配置本地网络服务名(充当oracle客户端,连接别的oracle服务器–-注:一般不用配置,根据实际项目需求确认是否配置)
输入连接的oracle服务器的数据库的实例名
输入oracle服务器的ip地址
选中测试
点击change Login 输入所连接oracle服务器的其中某一个用户名和密码,点击OK
看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的oracle服务器是否启动,监听是否启动等原因)
为你所设置的本地网络服务名起个名字
然后下一步,下一步即可
这样oracle服务器安装配置基本就完成了。
1.6. 自动启动Oracle服务设置
1.6.1. 修改dbstart和dbshut启动关闭脚本
使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器):
vi /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
找到下面的代码,在脚本代码的前面
First argument is used to bring up Oracle Net ListenerORACLE_HOME_LISTNER=$1
下面的 ORACLE_HOME_LISTNER= ORACLE_HOME
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:
ORACLE_HOME_LISTNER/listener.log
如下图:
同样也修改dbshut脚本:
vi /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
The this to bring down Oracle Net Listener
ORACLE_HOME_LISTNER=$1
下面的 ORACLE_HOME_LISTNER= ORACLE_HOME
ORACLE_HOME_LISTNER=$1
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo “ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener”
echo "Usage:
ORACLE_HOME_LISTNER/listener.log
把lsnrctl start和dbstart添加到rc.local文件中:
vi /etc/rc.d/rc.local
su oracle -lc “/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start”
su oracle -lc /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
注意:第一个命令有空格,所以要用引号的,并且注意路径要和实际安装的数据库路径一致
1.6.2. 新建Oracle服务启动脚本:
注意修改前面对应的变量部分
su - root
vi /etc/init.d/oracle
新建一个以oracle命名的文件(也可以命名为oracle11g等,建议使用自己能记住的名字。),并将以下脚本代码复制到文件里(里面的oracle目录路径需根据自己的实际安装路径修改):
#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
exportORACLE_BASE=/home/oracle/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
exportORACLE_SID=ORCL
exportPATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="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"
exit1
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}"
exit1
esac
exit0
1.6.3. 赋予脚本可执行权限
chmod 750 /etc/init.d/oracle
1.6.4. 建立链接
ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle
ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle
1.6.5. 把oracle启动脚本添加到系统服务里并设置自启动:
chkconfig --add oracle
chkconfig --level 345 oracle on
1.6.6. 需要修改文件/etc/oratab
这样的脚本一般不会启动实例,如果想让实例也随脚本一起启动的话,就需要修改文件/etc/oratab 如果这个文件不存在,就要运行下面脚本文件产生它。
$ORACLE_HOME/root.sh
修改/etc/oratab文件
vim /etc/oratab
将orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N 改为
orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y
注意:ORACLE_HOME要改成实际安装的路径
到此,手动安装oracle已经OK了,并且可以测试是否可以开机自动启动监听服务及oracle服务了!~~~~