centos 6.5下安装oracle 11gR2与Oracle自动启动的配置

注意:以下命令使用 root 用户操作

安装依赖包

主要思路为配置 oracle yum 仓库,直接使用 yum 命令来安装依赖包,避免手工逐个的安装依赖包。

配置 yum 仓库以下载 orcale 依赖包

注意:这里是centos 6.x 的 oracle 依赖仓库,其他版本不同的。

导入 gpg keys

wget https://public-yum.oracle.com/rpm-gpg-key-oracle-ol6 -o /etc/pki/rpm-gpg/rpm-gpg-key-oracle --no-check-certificate

安装 oracle 依赖

yum install oracle-rdbms-server-11gr2-preinstall

设置 hostname

打开文件 /etc/sysconfig/network,并修改 hostname。

vi /etc/sysconfig/network
networking=yes
hostname=oracle.buzheng.org

打开 /etc/host, 添加服务器本机ip地址 指向到 hostname

vi /etc/hosts
192.168.1.15 oracle.buzheng.org oracle

oracle 用户设置

当安装好 oracle 依赖之后, oracle 用户已经创建好了,不需要手工创建 oracle 用户和相关的用户组。

修改 oracle 用户密码

[root@oracle ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

修改系统限制

在文件 /etc/security/limits.d/90-nproc.conf 中添加如下的最后一行

[root@oracle ~]# vi /etc/security/limits.d/90-nproc.conf
# default limit for number of user's processes to prevent
# accidental fork bombs.
# see rhbz #432903 for reasoning.
*   soft nproc  1024
root  soft nproc  unlimited
*   -  nproc  16384

修改 selinux 为 permissive 模式

修改文件 /etc/selinux/config 如下所示

[root@oracle ~]# vi /etc/selinux/config
# this file controls the state of selinux on the system.
# selinux= can take one of these three values:
#  enforcing - selinux security policy is enforced.
#  permissive - selinux prints warnings instead of enforcing.
#  disabled - no selinux policy is loaded.
selinux=permissive
# selinuxtype= can take one of these two values:
#  targeted - targeted processes are protected,
#  mls - multi level security protection.
selinuxtype=targeted

重启机器

[root@oracle]# reboot

创建 oracle 安装目录,并授权

[root@oracle]# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
[root@oracle]# chown -r oracle:oinstall /u01
[root@oracle]# chmod -r 775 /u01

授权 oracle 用户能够访问 x server

[root@oracle]# xhost + # 要在主机上运行,不能是远程 shell

注意:以下命令使用 oracle 用户操作

配置 oracle 安装环境变量

切换到 oracle 用户, 编辑 .bash_profile 文件, 如下所示, 添加环境配置。

[root@oracle]# su oracle
[oracle@oracle]# vi .bash_profile
# oracle settings
tmp=/tmp; export tmp
tmpdir=$tmp; export tmpdir
oracle_hostname=oracle.buzheng.org; export oracle_hostname
oracle_unqname=orcl; export oracle_unqname
oracle_base=/u01/app/oracle; export oracle_base
oracle_home=$oracle_base/product/11.2.0/dbhome_1; export oracle_home
oracle_sid=orcl; export oracle_sid
path=/usr/sbin:$path; export path
path=$oracle_home/bin:$path; export path
ld_library_path=$oracle_home/lib:/lib:/usr/lib; export ld_library_path
classpath=$oracle_home/jlib:$oracle_home/rdbms/jlib; export classpath export path

下载 oracle 安装文件,解压缩后安装

下载 oracle

打开 oracle 下载页面,http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html , 下载下面两个文件到 /home/oracle

linux.x64_11gr2_database_1of2.zip
linux.x64_11gr2_database_2of2.zip

解压缩文件并运行

unzip linux.x64_11gr2_database_1of2.zip
unzip linux.x64_11gr2_database_2of2.zip
cd database
./runinstaller

若为中文系统,安装界面会出现中文乱码,需要先将环境变为英文,在安装

export lang=en_us
./runinstaller

没有截图, 安装步骤大致包括以下几步:

  1. create and configure a database
  2. server class
  3. single instance database installation
  4. advanced install
  5. language: english
  6. enterprise edition
  7. database type: general purpose / transaction processing
  8. memory: enable automatic memory management
  9. character sets: use unicode(al32utf8)

图性界面安装最后会提示以root 执行下面两个脚本

[root@oracle ~]# /u01/app/orainventory/orainstroot.sh 
changing permissions of /u01/app/orainventory.
adding read,write permissions for group.
removing read,write,execute permissions for world.
changing groupname of /u01/app/orainventory to oinstall.
the execution of the script is complete.
[root@oracle ~]# /u01/app/oracle/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= /u01/app/oracle/product/11.2.0/dbhome_1
enter the full pathname of the local bin directory: [/usr/local/bin]: 
 copying dbhome to /usr/local/bin ...
 copying oraenv to /usr/local/bin ...
 copying coraenv to /usr/local/bin ...
creating /etc/oratab file...
entries will be added to the /etc/oratab file as needed by
database configuration assistant when a database is created
finished running generic part of root.sh script.
now product-specific root actions will be performed.
finished product-specific root actions.

出现的问题

1, 当环境变量中的 oracle_sid 与 安装时实际配置不一致时,会导致 startup 出错,出错信息如下:

ora-01078: failure in processing system parameters
lrm-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initdb11g.ora'

2, 如果远程客户端连接是报错:ora-12514 tns 监听程序当前无法识别连接描述符中请求的服务,则需要配置 listener.ora,添加如下节点:

sid_list_listener = 
 (sid_list= 
 (sid_desc =
  (sid_name = orcl)
  (oracle_home = /u01/app/oracle/product/11.2.0/dbhome_1)
 )
 )

好了,到此已经安装完成,通过访问 web 管理界面可验证。下面步骤也很重要,请继续。

注意:以下命令使用 root 用户操作

配置防火墙规则,开放侦听端口

将 1521(你配置的 oracle 侦听端口) 端口添加到防火墙规则,以便远程用户能顺利的访问到 oracle 服务。

iptables -i input 4 -m state --state new -p tcp --dport 1521 -j accept
service iptables save
service iptables reload

设置 oracle 自动启动

完成 oracle 安装后,我们可以通过命令启动停止数据库,但是当机器重启时并不能随机器启动,这也给我们带来了一些不便,下面记录了,如何将 oralce 加入服务中,并随机机器启动。

修改配置文件 /etc/oratab

修改 /etc/oratab 的最后一行的最后一个字符,将 n 修改为 y。此举主要是为了使 oracle 的 dbstart 命令能在系统启动时能运行。如下所示:

[root@oracle ~]# vi /etc/oratab
#
# this file is used by oracle utilities. it is created by root.sh
# and updated by the database configuration assistant when creating
# a database.
# a colon, ':', is used as the field terminator. a new line terminates
# the entry. lines beginning with a pound sign, '#', are comments.
#
# entries are of the form:
#  $oracle_sid:$oracle_home:<n|y>:
#
# the first and second fields are the system identifier and home
# directory of the database respectively. the third filed indicates
# to the dbstart utility that the database should , "y", or should not,
# "n", be brought up at system boot time.
#
# multiple entries with the same $oracle_sid are not allowed.
#
#
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:y

创建 /etc/init.d/oracle

在 /etc/init.d/下创建文件 oracle,此为 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
oracle_home="/u01/app/oracle/product/11.2.0/dbhome_1"
ora_ownr="oracle"
# if the executables do not exist -- display error
if [ ! -f "$oracle_home/bin/dbstart" ]
then
echo "oracle startup: cannot start"
exit 1
fi
# parameter: start, stop, restart
case "$1" in
start)
# oracle listener and instance startup
su $ora_ownr -s /bin/bash $oracle_home/bin/dbstart $oracle_home
echo "oracle start succesful!ok."
;;
stop)
# oracle listener and instance shutdown
su $ora_ownr -s /bin/bash $oracle_home/bin/dbshut $oracle_home
echo "oracle stop succesful!ok."
;;
restart)
$0 stop
$0 start
;;
*)
echo $"usage: `basename $0` {start|stop|restart}"
exit 1
esac
exit 0

赋予启动脚本执行权限并链接好:

# 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

启动脚本设置好了之后,可以使用 service 命令来启动停止 oracle 了,这时候 oracle 已经是系统服务了。

service oracle start
service oracle stop
service oracle restart

设置 oracle 服务为自启动

# chkconfig --add oracle
# chkconfig --level 345 oracle on

总结

好了,重启机器试试吧。以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐