如何在Linux CentOS7下安装Oracle11g的详细教程

科技   科技   2023-05-30 00:00   江苏  

1 基本环境介绍

Linux我们默认使用CentOS 7 x64

所以为了对应操作系统我们使用64位的Oracle 11g数据库

Oracle11g需要准备至少:2核CPU、2G内存、8GB的硬盘空间

  • 查看cpu详细信息

lscbu

  • 查看内存详细信息

free -h

  • 查看存储盘详细信息

lsblk

确保服务器能访问外网

  • 可以ping www.baidu.com进行测试


2 检测是否安装了Oracle

查看是否有 oracle 的进程

ps -ef | grep ora

检查是否有oracle用户

# 一般安装oracle的时候默认会建一个oracle用户

id oracle

3 卸载Oracle

3.1 重新做一次虚拟机

因为Oracle的卸载极其麻烦,从效率上讲甚至不如直接重新安装虚拟机

3.2 卸载Oracle

4 安装准备

Oracle的安装需要图形化界面,所以身为命令形式的Linux操作系统就需要安装图形化界面:VNC

为了安全起见,不建议使用root做为vnc用户,所以,安装oracle时要建立单独的用户去安装oracle相关

4.1 建立oracle用户和用户组

# 在Linux中创建名为oinstall的用户组

groupadd oinstall

# 创建dba用户组

groupadd dba

# 创建oper用户组

groupadd oper

# 为dba和oper用户组创建oracle用户

# -g 主用户组

# -G 附加组

useradd -g oinstall -G dba,oper oracle

# 将oracle用户的密码设置为oracle

echo "oracle"|passwd oracle --stdin


4.2 为Oracle的安装创建相关目录

# 建文件夹

mkdir -p /u01/app/oracle/product/11.2.0/db_1

# 改变属主和属组

chown -R oracle:oinstall /u01/app

# 为文件夹授权

chmod -R 775 /u01/app

4.3 优化OS内核参数

vim /etc/sysctl.conf

# 添加如下内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

# kernel.shmmax 参数设置为物理内存的一半

kernel.shmmax = 1200000000

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 = 1048576

# 因为刚自定义配置了shmmax、shmmni、shmall,所以注释掉原有自带的shmmax、shmall这些属性

保存并退出后,需要使使参数生效

sysctl -p

4.4 限制oracle用户的shell权限

为了优化性能,需要添加oracle用户的限制参数

vim /etc/security/limits.conf

# 在文件末尾添加下面四行

# 设置进程数软限制

oracle soft nproc 2047

# 设置进程数硬限制

oracle hard nproc 16384

# 设置文件数软限制

oracle soft nofile 1024

# 设置文件数硬限制

oracle hard nofile 65536

# 进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证

vim /etc/pam.d/login # 在文件最后添加下面一行

session required /lib64/security/pam_limits.so

# 一般都是64位系统,64位系统需要设置为/lib64/security/pam_limits.so 否则重启服务器后就会出现命令行无法登录,但是通过桌面方式能登录的情况

session required pam_limits.so

使参数生效

source /etc/profile


4.5 为Oracle用户添加Oracle环境变量

su - oracle

vim .bash_profile

# 添加如下内容

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

PATH=$PATH:$ORACLE_HOME/bin

ORACLE_SID=orcl

NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH



if [ $USER = "oracle" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

退出后需要刷新环境变量

source .bash_profile



source /home/oracle/.bash_profile

4.6 配置hostname(本机IP映射)

安装oracle时,一定要保证主机名出现在/etc/hosts中

vim /etc/hosts

# 添加如下内容

127.0.0.1 localhost

192.168.222.30 mydb

测试hostname

ping -c 3 mydb

/etc/sysconfig/network中的hostname要与/etc/hosts中的一致

vim /etc/sysconfig/network

# 添加如下内容

NETWORKING=yes

HOSTNAME=mydb

# 服务器IP

GATEWAY=192.168.222.30

NTPSERVERARGS=iburst

4.7 安装VNC&Oracle相关依赖


4.7.1 配置yum源

cd /etc

mv yum.repos.d yum.repos.d.bak

mkdir yum.repos.d

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清理缓存

yum clean all

# 建缓存

yum makecache

#安装epel源

yum -y install epel-release


4.7.2 安装依赖

#图形界面必备`X Window System`

yum -y groupinstall "X Window System"

#安装VNC+图形、oracle需要的依赖(软件)

yum -y install \

binutils \

compat-libcap1 \

compat-libstdc++-33 \

compat-libstdc++-33*.i686 \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc*.i686 \

glibc \

glibc-devel \

glibc-devel*.i686 \

ksh \

libgcc*.i686 \

libgcc \

libstdc++ \

libstdc++*.i686 \

libstdc++-devel \

libstdc++-devel*.i686 \

libaio \

libaio*.i686 \

libaio-devel \

libaio-devel*.i686 \

make \

sysstat \

unixODBC \

unixODBC*.i686 \

unixODBC-devel \

unixODBC-devel*.i686 \

libXp

4.7.3 检查依赖是否安装完成

rpm -q \

binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

expat \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"


4.7.4 如果安装失败的依赖进行单独安装

方法一:通过yum安装

yum -y install pdksh(安装失败的package)

方法二:wget命令直接下载pdksh的rpm包,下载到至/tmp/

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

# 安装pdksh

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm


4.7.5 安装语言包

服务器&VNC&Oracle安装包语言要统一,这里我使用的是中文安装包,为避免中文乱码,需要安装中文语言包(如果你都是英文可以忽略此步骤)

—————上传方法—————

# 1.切换至oracle安装目录

cd /u01/

# 2.将文件上传至服务器

rz/sz

# 或

shell工具拖拉拽

# 或

# ---------------------------------------------------------------

scp -r /Users/nan/Desktop/Oracle root@10.10.1.104:/opt/test/

# 解析

scp -r dir username@host:dir

命令 递归 要拷贝的文件路径 目的主机用户名@目的主机ip:目的路径

# ---------------------------------------------------------------

# 3.安装中文字体包

yum –y install pdksh-5.2.14-37.el5_8.1.x86_64.rpm


4.8 开放端口/关闭防火墙


4.8.1 开放端口

防火墙放行VNC端口5901和Oracle默认端口1521

编辑iptables, 开放1521端口:

sudo vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

重启防火墙

sudo service iptables restart

保存配置,以便linux重启后依然有效

sudo service iptables save

查看防火墙规则:

sudo iptables -L –n


4.8.2 关闭防火墙

service iptables stop

chkconfig iptables off

vim /etc/sysconfig/selinux

SELINUX=enforcing改成SELINUX=disabled


4.9 上传Oracle安装文件

切换用户并切换目录

xhost +

su - oracle

cd /u01/sw

上传Linux-x86-64_1of7.zip和Linux-x86-64_2of7.zip文件至/u01/sw目录上传方法

解压缩安装文件

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

完成后切换root用户,复制授权

su - root

mkdir /home/oracle/etc/

cp /db/database/response/* /home/oracle/etc/

chmod 777 /home/oracle/etc/*.rsp

登录oracle用户

su – oracle

vi /home/oracle/etc/db_install.rsp

# 信息如下:

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/db/app/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOSTNAME=oracle

ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1

ORACLE_BASE=/db/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.isCustomInstall=true

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=oinstall

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

oracle.install.db.config.starterdb.globalDBName=orcl

oracle.install.db.config.starterdb.SID=orcl

oracle.install.db.config.starterdb.memoryLimit=512

oracle.install.db.config.starterdb.password.ALL=oracle

DECLINE_SECURITY_UPDATES=true


4.10 安装

执行Oracle安装文件

su - oracle



./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

安装期间可以使用tail命令监看oracle的安装日志

cd /db/app/oracle/oraInventory/logs/

tail -f installActions2021-11-10_10-38-29AM.log

安装完成,提示Successfully Setup Software

使用root用户执行脚本

su - root/db/app/oracle/product/11.2.0/db_1/root.sh


4.10.1 增加或修改oracle的环境变量

su  - oracle



vi ~/.bash_profile


export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1

export TNS_ADMIN=$ORACLE_HOME/network/admin

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib

export ORACLE_OWNER=oracle

export SPFILE_PATH=$ORACLE_HOME/dbs

export ORA_NLS10=$ORACLE_HOME/nls/data

使配置生效

source ~/.bash_profile


4.10.2 配置监听程序

配置监听

# 确保在oracle目录的bin下

pwd

/db/app/oracle/product/11.2.0/db_1/bin

./netca /silent /responseFile /home/oracle/etc/netca.rsp

启动监听

# 确保在oracle目录的bin下

pwd

/db/app/oracle/product/11.2.0/db_1/bin

# 启动监听

lsnrctl start

# 查看监听状态

lsnrctl start



LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21


Copyright (c) 1991, 2009, Oracle. All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 25-MAY-2019 00:05:55

Uptime 0 days 0 hr. 7 min. 32 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /db/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1522)))

The listener supports no services

The command completed successfully

监听状态

lsnrctl start

# 显示如下

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))


5 创建数据库

编辑应答文件

vi /etc/dbca.rsp

GDBNAME="orcl.oracle"

SID="orcl"

SYSPASSWORD = "oracle"

SYSTEMPASSWORD = "oracle"

CHARACTERSET="AL32UTF8"

NATIONALCHARACTERSET="UTF8"

# 执行:

$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

建库

pwd

/db/app/oracle/product/11.2.0/db_1/bin



dbca -silent -responseFile etc/dbca.rsp

# 至此完成数据库实例的创建

设置Oracle开机启动

vim /etc/oratab

# 把“N”改成“Y”

orcl:/db/app/oracle/product/11.2.0/db_1:Y

5.1 删除实例

[oracle@oracle bin]$ vi /etc/oratab

orcl:/db/app/oracle/product/11.2.0/db_1:Y # //把“N”改成“Y”

# 保存退出

[oracle@oracle bin]$ pwd

/db/app/oracle/product/11.2.0/db_1/bin

# 通过dbstart 启动此实例,监听器

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

## Usage: ./dbstart ORACLE_HOME

[oracle@oracle bin]$ ./dbstart $ORACLE_HOME;

# oracle的进程关闭,监听器也停止;

[oracle@oracle bin]$ ./dbshut $ORACLE_HOME;

# 启动监听

[oracle@oracle bin]$ ./lsnrctl start;

# 查看监听

[oracle@oracle bin]$ ./lsnrctl status


5.2 登陆Oracle

[oracle@oracle bin]$ pwd

/db/app/oracle/product/11.2.0/db_1/bin

[oracle@oracle bin]$ ./sqlplus /nolog

# 进入系统管理用户

SQL> conn / as sysdba

Connected to an idle instance.

# 启动oracle实例

SQL> startup;

1、使用oracle用户登录桌面,打开终端运行安装程序

[root@oracledb ~] cd /ora/database

[root@oracledb ~] ./runInstaller

1)订阅邮件跳过

2)选择忽略更新(或者让选择桌面版还是服务器版,如果有选择服务器版)

3)这里选择仅安装数据库,稍后再配置初始化数据。

4):选择单实例安装。

5):语言,linux服务器上就别想什么中文这些了,就默认英文完事。

6):默认

7):这里就出现最开始创建的相应目录信息了,会自动读取。

8):下一步

9):选择group 组为之前创建好的oinstall

10):安装的过程中可能会出现如下的一些警告信息,如提示semmni为0 的问题,该问题一直没有找到原因,我们在上面修改内核的过程中就已经调整了kernel.sem = 250 32000 100 128 但是检测无法通过(暂时无解)、其他的一些依赖组件提示,其实我们已经安装好了,只是centos7上yum安装的依赖包要比oracle 11g 所需的包更新,版本更高,所以可以直接忽略这些提示(勾选 ignore all)。

3、安装到最后的时候会出现一个提示:需要用root权限执行2个shell脚本,那么我们在之前的root用户终端下运行提示中的对应脚本文件即可。

这里或者更早前的步骤就可能会出现一个很神奇(zhizhang)的问题,对话框可能无法正常弹出,测试在VM虚拟机或者云服务器,如阿里云等都这样,但是用鼠标可以拖开。是的,你没有看错,直接拖出对话框。这个问题不知道原因,有知道的朋友请留言告知,万分感谢。

还有可能出现一个压根儿就不能拖得对话框(阿里云上反复测试,就是会出现)最后没辙了,本地跑虚拟机一步步的模拟安装,发现是一个警告提示,一般按4次tab键即可切换到下一步选项回车即可。

4、安装完成后还需要创建数据库,还是同样在Oracle用户桌面环境下,重新打开一个终端,输入 dbca 命令即可弹出相应的数据库创建向导。

如果提示没有这个命令,那么请详细检查一下上述的依赖包是否正确安装,另外创建过程中如果出现提示oracle not available 检查是否已添加主机名到hosts文件中。

总结

到此这篇关于Linux CentOS7安装Oracle11g的文章就介绍到这了,更多相关Linux CentOS7安装Oracle11g内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

每天定时更新各种教程文章与线报福利!

SFS运维工具箱专注原创网络技术服务

禁止非法转载原创文章、如需转载请联系作者!否则后果自负!

本文章只提供参考学习!请勿用于商业用途!

“SFS运维工具箱”公众号诚邀广大技术人员

投稿投稿邮箱:sfstool@qq.com

转载商务合作邮箱:sfstool@qq.com

小编QQ:2841936347


吉硕博客
吉硕博客是分享:Linux shell PHP Python Node.js MySQL uniapp Kubernetes、Docker等运维优秀实践经验个人博客,由系统运维,脚本编程,自动化运维, 以及资源分享等分类组成,专注原创开发.