Linux CentOS 7安装Oracle11g超完美教程[通俗易懂]

Linux CentOS 7安装Oracle11g超完美教程[通俗易懂]Oracle部署文章目录Oracle部署1基本环境介绍2检测是否安装了Oracle3卸载Oracle3.1重新做一次虚拟机3.2卸载Oracle4安装准备4.1建立oracle用户和用户组4.2为Oracle的安装创建相关目录4.3优化OS内核参数4.4限制oracle用户的shell权限4.5为Oracle用户添加Oracle环境变量4.6配置hostname(本机IP映射)4.7安装VNC&Oracle相关依赖4.7.1配置yum源4.7.2安装依赖4.7.3检

大家好,又见面了,我是你们的朋友全栈君。

Oracle部署

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命令直接下载pdkshrpm包,下载到至/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.zipLinux-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
    

    img

  • 安装完成,提示Successfully Setup Software

    img

  • 使用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
    

    img

  • 监听状态

    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)订阅邮件跳过

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

4):选择单实例安装。

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

6):默认

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

8):下一步

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

3、安装到最后的时候会出现一个提示:需要用root权限执行2个shell脚本,那么我们在之前的root用户终端下运行提示中的对应脚本文件即可。
  这里或者更早前的步骤就可能会出现一个很神奇(zhizhang)的问题,对话框可能无法正常弹出,测试在VM虚拟机或者云服务器,如阿里云等都这样,但是用鼠标可以拖开。是的,你没有看错,直接拖出对话框。这个问题不知道原因,有知道的朋友请留言告知,万分感谢。

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

CentOS7安装Oracle11G完整版图文教程一(基础安装)

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159765.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 网吧管理软件激活成功教程

    网吧管理软件激活成功教程——————————————————————————-网吧管理软件激活成功教程作者:韦良君何利萍/Popunet 来源Conline网管软件不仅是存在漏洞而已,它们本身不是无懈可击的。有些漏洞会让它们彻底地失去作用。现在就一起来看看网管软件的致命伤。  《美萍》很受伤  受伤原因:…

  • hexdump用法_linux dump命令

    hexdump用法_linux dump命令本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net转自:http://blog.chinaunix.net/uid-20528014-id-4087756.html开发时经常会…

  • jquery中失去焦点事件_easyui失去焦点事件没触发

    jquery中失去焦点事件_easyui失去焦点事件没触发触发焦点:$("Element").focus()触发每一个匹配元素获得焦点事件。$("Element").focus(function)事件会在获得焦

  • Python一日一练05—-怒刷点击量[通俗易懂]

    Python一日一练05—-怒刷点击量

  • 解决MyQL数据库中1045错误的方法——Windows系统

    解决MyQL数据库中1045错误的方法——Windows系统在各种各样的适用场所,MySQL会出现各种各样的问题,经过足足半年的长跑,我的数据库终于修复了Bug,可以重新使用了。数据库出问题,那可能是家常便饭了。经过这足足半年的煎熬,我决定在以后的日子里,记录下我在使用数据库时遇到的色彩缤纷的问题,以及这些问题的解决方法。由此,今天写了这篇博客。首先,给大家看看,这个问题是什么样子的。我在这里用到的MySQL可视化工具为Navicat。这个错误…

  • Python 获取文件后缀详解「建议收藏」

    Python 获取文件后缀详解「建议收藏」文章目录1概述2语法3扩展3.1os模块详解1概述#mermaid-svg-p01C6BlZHxzyBcdz.label{font-family:’trebuchetms’,verdana,arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-p01C6BlZHxzyBcdz.labeltext{fill:#333}#mermaid-svg-p01C6BlZHxzyBcdz.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号