admin 管理员组

文章数量: 887021


2023年12月23日发(作者:html网站图标怎么弄)

CentOS安装Oracle 11g总结文档

目 录

一、硬件要求

二、软件

三、系统安装注意

四、安装Oracle前的系统准备工作

五、安装Oracle,并进行相关设置

一、 硬件要求

1、内存 & swap

Minimum: 1 GB of RAM

Recommended: 2 GB of RAM or more

检查内存情况

# grep MemTotal /proc/meminfo

# grep SwapTotal /proc/meminfo

2、硬盘

由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。

检查磁盘情况

# df -h

二、 软件准备

系统平台:CentOS 7.5(x86_64)

CentOS-7-x86_64-DVD-1804

Oracle版本:Oracle 11g

p13390677_112040_Linux-x86-64_、p13390677_112040_Linux-x86-64_

三、 系统安装注意

系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

四、 系统准备工作

第 1页 |共 16页

CentOS安装Oracle 11g总结文档

首先,请先以root账号登入作一些前置设定作业。

1、 关闭防火墙

//临时关闭

systemctl stop firewalld

//禁止开机启动

systemctl disable firewalld

2、安装依赖包

以下RPM包拷贝到/opt目录下,进入opt目录,执行以下命令。

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh libstdc++-7.x86_

rpm -ivh gcc-c++-7.x86_

rpm -ivh 7.x86_

rpm -ivh 5_8.1.x86_

rpm -ivh compat-libstdc++-6.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

rpm -ivh 7.x86_

3、创建Oracle用户与组

在这里只讨论单主机环境,不考虑RAC环境的配置。

执行以下指令以新增oracle安装时所需要的使用者与群组。

(1) 建立群组dba

# groupadd dba

(2) 新增使用者oracle并将其加入dba群组

# useradd -m -G dba oracle

(4) 测试oracle账号是否建立完成

# id oracle

(5) 建立oracle的新密码

# passwd oracle

Orcl123456

第 2页 |共 16页

CentOS安装Oracle 11g总结文档

4、将oracle使用者加入到sudo群组中

# vi /etc/sudoers

找到

root ALL=(ALL) ALL

这行,并且在底下再加入

oracle ALL=(ALL) ALL

输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter

5、配置系统内核参数

# vi /etc/

修改和添加以下内容:

-max-nr = 1048576

-max = 6815744

= 2097152#大于、等于Oracle建议

#

官方文档 = 536870912,实际软件中需要 = 980742144

= 4294967295#大于、等于Oracle建议

= 4096

= 250 32000 100 128

_local_port_range = 9000 65500

_default = 262144

_max = 4194304

_default = 262144

_max = 1048586

b_shm_group = 1001

第 3页 |共 16页

CentOS安装Oracle 11g总结文档

#oracle用户组dba id

为1001,以彻底解决ORA-27125错误。

# id oracle

可以看到oracle组dba id

为1001

会有一些与目前的参数重复的,就修改成文件上提供的。

编辑完之后,储存,然后执行:

# sysctl -p

启用刚刚所做的变更。

6、编辑/etc/security/

# vi /etc/security/

添加以下四行

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

7、编辑/etc/pam.d/login

# vi /etc/pam.d/login

添加以下两行

session required /lib64/security/pam_

session required pam_

第 4页 |共 16页

CentOS安装Oracle 11g总结文档

8、修改/etc/profile

# vi /etc/profile

将以下代码新增到profile档案中。

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

10、创建Oracle安装文件夹以及数据存放文件夹

#mkdir /data/oracle

#mkdir /data/oracle/112

#mkdir /data/oraInventory

#chown -R oracle:dba /data/oracle

#chown -R oracle:dba /data/oraInventory

第 5页 |共 16页

CentOS安装Oracle 11g总结文档

#chown -R oracle:dba /data

11、配置Linux主机

检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

增加以下配置IP地址

加主机名称

映射

192.168.5.229 omain

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

#su oracle

$ cd /home/oracle

$ vi .bash_profile

修改并加入以下內容

ORACLE_BASE=/data/oracle #上面创建的Oracle安装文件夹

ORACLE_HOME=$ORACLE_BASE/112

ORACLE_SID=orcl

LD_LIBRARY_PATH=$ORACLE_HOME/lib

PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

#PATH=$PATH:$HOME/bin

#export PATH

保存后使用如下命令,使设置生效:

$ source /home/oracle/.bash_profile

五、 安装Oracle

1、解压缩安装文件

将下载的p13390677_112040_Linux-x86-64_、p13390677_112040_Linux-x86-64_放至即将安装oracle的文件夹/data/oracle

回到终端模式并且进入到oracle文件夹:

$ cd /data/oracle

解压缩

$ unzip p13390677_112040_Linux-x86-64_

$ unzip p13390677_112040_Linux-x86-64_

接着会看到一连串的解压缩动作。

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

$ cd database

准备执行数据库安装,如果你的操作系统是中文环境,安装时会出现中文乱码,请使用以下指令

第 6页 |共 16页

CentOS安装Oracle 11g总结文档

$ export LANG=en_-8

一定不能少了.UTF-8,否则会提示以下错误:

[oracle@database database]$ export LANG=en_US

[oracle@database database]$ ./runInstaller

ERROR: Unable to convert from "UTF-8" to "ISO-8859-1" for NLS!

redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2

/tmp/OraInstall2013-09-06_09-17-04AM. [oracle@database database]$

接着执行

$ ./runInstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:

说明:export DISPLAY=

192.168.1.2:0.0(在192.168.1.2上显示图像界面)

说明:xhost + (授权显示图形界面,前提是客户端192.168.1.2上要安装Xmanager)

# export DISPLAY=192.168.3.6:0.0 #客户端显示界面

# export DISPLAY=:0.0 #本机显示界面

# xhost +

切换回ORACLE用户

$ ./runInstaller

开始执行安装程序。

最后出现Install Summary画面,此时只要按下Install按钮,系统即开始安装。

选择“高级安装”,以指定字符集ZH16GBK。

第 7页 |共 16页

CentOS安装Oracle 11g总结文档

指定数据库的字符集,一般选择ZHS16GBK(简体中文字符集)

第 8页 |共 16页

CentOS安装Oracle 11g总结文档

安装完成前,出现以下的设置脚本:

第 9页 |共 16页

CentOS安装Oracle 11g总结文档

开启一个新的终端,su到root。

将要求执行的两段script依序执行。

/data/oraInventory/

/data/oracle/112/

执行完后,回到安装窗口按下OK完成所有的oracle安装。安装完成会出现以下画面。

此时,您可以以上述网址,作为测试,登入账号可以为sys或system

第 10页 |共 16页

CentOS安装Oracle 11g总结文档

db:1158/em

以上画面都成功代表oracle已经正常安装了。

六、 创建多实例

参考文档。

七、 参考资料

6.1 监听开机自启动

1) 执行dbstart和dbshut(数据库启动而监听器没有自启动)

[oracle@ocptest ~]$ dbstart

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

Usage: /u01/app/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME

Processing Database instance "orcl": log file /u01/app/oracle/product/11.2.0/db_1/

修改dbstart和dbshut文件:

[oracle@ocptest ~]$ cd $ORACLE_HOME/bin

[oracle@ocptest bin]$ vi dbstart

第 11页 |共 16页

CentOS安装Oracle 11g总结文档

找到这行修改为:

ORACLE_HOME_LISTNER=$1->ORACLE_HOME_LISTNER=$ORACLE_HOME

同上修改dbshut文件。

2) 以root账号修改/etc/文件,在touch /var/lock/subsys/local增加如下指令:

su - oracle -lc /data/oracle/112/bin/dbstart

su - oracle -lc /data/oracle/112/bin/lsnrctl start

强制保存:w ! sudo tee %

6.2 实例开机自启动

1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。

第 12页 |共 16页

CentOS安装Oracle 11g总结文档

# vi /etc/oratab

找到: orcl: /data/oracle/112:N

修改为: orcl: /data/oracle/112:Y

(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:

# Entries are of the form:

# $ORACLE_SID:$ORACLE_HOME::

6.3 服务开机自启动

在 /etc/init.d/ 下创建文件oracle

# vi /etc/init.d/oracle

将以下脚本复制到文件中,保存退出(:wq),内容如下:

#!/bin/sh

# chkconfig: 2345 61 61

# description: Oracle 11g R2 AutoRun Servimces

# /etc/init.d/oracle

#

# Run-level Startup script for the Oracle Instance, Listener, and

# Web Interface

export ORACLE_BASE=/data/oracle #oracle安装位置

export ORACLE_HOME=$ORACLE_BASE/112 #Oracle安装路径

第 13页 |共 16页

CentOS安装Oracle 11g总结文档

export ORACLE_SID=orcl

export PATH=$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"

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

2. 添加执行权限

更改oracle脚本的执行权限

# chmod a+x /etc/init.d/oracle

检查脚本能否执行

# /etc/init.d/oracle start #启动oracle脚本

# /etc/init.d/oracle stop #关闭oracle脚本

# /etc/init.d/oracle restart #重启oracle脚本

3. 添加服务

建立链接 将启动脚本添加到系统服务并设置自启动

# chkconfig --add oracle

修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别

第 14页 |共 16页

CentOS安装Oracle 11g总结文档

# chkconfig --level 2345 oracle on

说明:设置oracle脚本在运行级别为2、3、4、5时,都是on(开启)状态,off为关闭

查看oracle自动启动设置

# chkconfig –list oracle

oracle 0:关 1:关 2:开 3:开 4:开 5:开 6:关

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:无网络连接的多用户命令行模式

等级3表示:有网络连接的多用户命令行模式

等级4表示:不可用

等级5表示:带图形界面的多用户模式

等级6表示:重新启动

5. oracle的启动或关闭管理

# service oracle start //启动oracle

# service oracle stop //关闭oracle

# service oracle restart //重启oracle

至此,Oracle服务启动&停止脚本与开机自启动设置完毕。

6.4 扩容Swap分区

1、查看当前内存使用情况和swap的大小

[root@localhost ~]# free -m

total used free shared buff/cache available

Mem: 128648 2075 124917 16 1655 125875

Swap: 4095 0 4095

2、创建一个空文件,大小自己决定,一般swap大小是内存的两倍,我的内存16G,swap给4G也是可以的

[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1G count=32

记录了32+0 的读入

记录了32+0 的写出

34359738368字节(34 GB)已复制,29.3218 秒,1.2 GB/秒

bs指的是Block Size,就是每一块的大小。这里的例子是1M,意思就是count的数字,是以1M为单位的。

count是告诉程序,新的swapfile要多少个block。这里是1024,就是说,新的swap文件是5G大小。

注意:可能需要点时间完成此步,耐心等待完成。

3、将此分区转换为Swap分区

[root@localhost ~]# mkswap /swapfile

正在设置交换空间版本 1,大小 = 33554428 KiB

无标签,UUID=6894d644-f54a-4599-86ca-07d8fb98881c

4、将此分区加入Swap

[root@localhost ~]# swapon /swapfile

第 15页 |共 16页

CentOS安装Oracle 11g总结文档

swapon: /swapfile:不安全的权限 0644,建议使用 0600。

5、让swap在启动的时候,自动生效。打开/etc/fstab文件,加上以下命令。然后保存。

[root@localhost ~]# nano /etc/fstab

/swapfile swap swap default 0 0

6、查看swapon大小

[root@localhost ~]# swapon -s

文件名 类型 大小 已用 权限

-1

-2 file 33554428 0

/dev/dm-1 partition 4194300 0

/swapfile

7、再次查看当前内存使用情况和swap的大小

[root@localhost ~]# free -h

total used free shared buff/cache available

Mem: 125G 2.0G 89G 16M 34G 122G

Swap: 35G 0B 35G

八、 集群部署

第 16页 |共 16页


本文标签: 安装 系统 脚本 执行