CentOS7.9上安装Oracle11g详解

目录

  • 一、环境准备
    • 1.安装依赖
    • 2.查看libaiobaio版本
    • 3.修改host,绑定主机名
    • 4.关闭selinux
  • 二、安装配置
    • 1.创建组、用户
    • 2.修改内核参数
    • 3.配置Oracle用户参数
    • 4.修改/etc/pam.d/login 文件
    • 5.修改/etc/profile 文件
    • 6.创建数据库相关目录
    • 7.安装包上传、解压
    • 8.添加环境变量
  • 三、部署
    • 1.修改db_install.rsp
    • 2.安装数据库
    • 3.监听安装
    • 4.监听状态查看
    • 5.静默建库
    • 6.登录查看
  • 四、系统服务注册
    • 1.dbstart文件修改
    • 2.dbshut文件修改
    • 3.oratab文件修改
    • 4.系统服务文件编写

一、环境准备

1.安装依赖

在线安装
[root@localhost ~]#  yum install libnsl libnsl2-devel libaio-devel libcap-devel xorg-x11-utils xauth gcc make libstdc++-devel sysstat smartmontools glibc-compat-2.17

安装依赖

若服务器无法连接网络,可使用离线安装:在可以使用互联网的服务器上运行以下命令,将把相关依赖下载至/root/rpm目录下
[root@localhost ~]#  yum -y install yum-utils
[root@localhost ~]#  yumdownloader --destdir=/root/rpm --resolve libnsl libnsl2-devel libaio-devel libcap-devel xorg-x11-utils xauth gcc make libstdc++-devel sysstat smartmontools glibc-compat-2.17
--destdir 指定下载的软件包存放路径
--resolve 解决依赖关系并下载所需的包

在这里插入图片描述

2.查看libaiobaio版本

libaio库版本不能大于0.3.109,libaio版本太高,会造成编译错误

[root@localhost ~]# rpm -qa libaio
libaio-0.3.109-13.el7.x86_64[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)[root@localhost ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

在这里插入图片描述

若版本太高,需下载指定版本(libaio-0.3.109)
# 下载
[root@localhost ~]# wget http://mirrors.ustc.edu.cn/centos/7.9.2009/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm# 备份原来的libaio.so.1
[root@localhost ~]# mv /usr/lib64/libaio.so.1 /usr/lib64/libaio.so.1-bak# 解压
[root@localhost ~]# rpm2cpio libaio-0.3.109-13.el7.x86_64.rpm |cpio -idmv# 把解压后的文件拷贝到/usr/lib64下
[root@localhost ~]# cp -r /lib64/libaio.so.1 /usr/lib64
[root@localhost ~]# cp -r /lib64/libaio.so.1.0.1 /usr/lib64# 执行安装
[root@localhost ~]# rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm --force --nodeps

3.修改host,绑定主机名

修改 vim /etc/hosts文件

# 设置主机名
[root@localhost ~]# hostnamectl set-hostname db && bash# 查看主机名
[root@db ~]# hostname
db# 配置本地解析
[root@db ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.32.13 db

在这里插入图片描述
在这里插入图片描述

4.关闭selinux

设置SELINUX= enforcing 为SELINUX=disabled

#  修改
命令方式:
[root@db ~]# vim /etc/selinux/config
命令方式:
[root@db ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 重启服务器、查看是否修改成功
[root@db ~]# setenforce 0
setenforce: SELinux is disabled

在这里插入图片描述

二、安装配置

1.创建组、用户

添加oinstall 、dba 组,新建oracle用户并加入oinstall、dba组中

[root@db ~]# groupadd oinstall
[root@db ~]# groupadd dba
[root@db ~]# useradd -g oinstall -G dba oracle
[root@db ~]# passwd oracle

2.修改内核参数

[root@db ~]# vim /etc/sysctl.conf
在文档最后加入以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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让参数生效: 
[root@db ~]# /sbin/sysctl -p

在这里插入图片描述
在这里插入图片描述

3.配置Oracle用户参数

[root@db ~]# vim /etc/security/limits.conf
在文档最后加入以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

在这里插入图片描述

4.修改/etc/pam.d/login 文件

[root@db ~]# vim /etc/pam.d/login
在文档最后加入以下内容:
session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

在这里插入图片描述

5.修改/etc/profile 文件

[root@db ~]# vim /etc/profile
在文档最后加入以下内容:if [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384ulimit -n 65536else    ulimit -u 16384 -n 65536fi      
fi# 重新加载配置
[root@db ~]# source /etc/profile

在这里插入图片描述

6.创建数据库相关目录

创建安装目录app、静默安装目录etc

[root@db ~]# mkdir -p /apps/oracle/app/
[root@db ~]# mkdir -p /apps/oracle/etc/
[root@db ~]# chown -R oracle:oinstall /apps/oracle
[root@db ~]# chmod 775 /apps/oracle

7.安装包上传、解压

上传oracle安装包到:/apps/oracle/app/下,并解压,将生成一个database目录

切换oracle用户、上传安装包并解压
[root@db ~]# su - oracle
[oracle@db app]$ unzip p13390677_112040_Linux-x86-64_1of7.zip
[oracle@db app]$ unzip p13390677_112040_Linux-x86-64_2of7.zip# 安装包下载链接:
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_1of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_1of7.zip 
https://updates.oracle.com/Orion/Services/download/p13390677_112040_Linux-x86-64_2of7.zip?aru=16716375&patch_file=p13390677_112040_Linux-x86-64_2of7.zip 

在这里插入图片描述
拷贝/apps/oracle/app/database/response的.rsp文件到/apps/oracle/etc/目录下

[oracle@db app]$ cp /apps/oracle/app/database/response/* /apps/oracle/etc/

在这里插入图片描述

8.添加环境变量

# 切换oracle用户
[root@db ~]# su - oracle编辑环境变量,并生效
[oracle@db app]$ vim ~/.bash_profile内容如下:# oracle安装目录
export ORACLE_BASE=/apps/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
# oracle实例SID名称
export ORACLE_SID=orcl
# 同SID
export ORACLE_TERM=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 同SID
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export PATH
export SQLPATH=/apps/oracle/labs[oracle@db app]$ source ~/.bash_profile# 验证是否生效
[oracle@db app]$ echo $ORACLE_HOME
/apps/oracle/app/product/11.2.0(与~/.bash_profile中配置一致即生效)

在这里插入图片描述

三、部署

1.修改db_install.rsp

编辑/apps/oracle/etc/目录下db_install.rsp,参考下述配置,根据实际编写

[oracle@db app]$ cat /apps/oracle/etc/db_install.rsp | grep -v "#" | grep -v "^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=db
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/apps/oracle/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/apps/oracle/app/product/11.2.0
ORACLE_BASE=/apps/oracle/app
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

2.安装数据库

2.1、在路径:/apps/oracle/app/database/下执行命令

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

在这里插入图片描述
2.2、切换root用户执行(有时候可能只有一个root.sh,也是正常的)

以 root 用户的身份执行以下脚本

[root@db ~]# /apps/oracle/app/oraInventory/orainstRoot.sh
[root@db ~]# /apps/oracle/app/product/11.2.0/root.sh

在这里插入图片描述

3.监听安装

[oracle@db database]$ cd /apps/oracle/app/product/11.2.0/bin
[oracle@db bin]$ ./netca  /silent /responsefile /apps/oracle/etc/netca.rsp

在这里插入图片描述

若报错

UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /apps/oracle/app/product/11.2.0/lib/libnjni11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: jniGetOracleHomeat oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)at oracle.net.ca.NetCA.main(NetCA.java:427)Error: jniGetOracleHome
Oracle Net Services 配置失败。退出代码是1

解决方法

[oracle@db bin]$ cp /apps/oracle/appbase/stage/ext/lib/libclntsh.so.11.1 /apps/oracle/app/product/11.2.0/lib/

4.监听状态查看

[oracle@db bin]$ lsnrctl status

在这里插入图片描述

5.静默建库

5.1、编辑/apps/oracle/etc/目录下dbca.rsp,参考下述配置,根据实际编写

[oracle@db ~]$ cat /apps/oracle/etc/dbca.rsp | grep -v '#' | grep -v '^$'
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl" 
SYSPASSWORD = "sysdba"
SYSTEMPASSWORD = "sysdba"
SYSMANPASSWORD = "sysdba"
DBSNMPPASSWORD = "sysdba"
CHARACTERSET = "ZHS16GBK" 
TEMPLATENAME = "General_Purpose.dbc"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl"
INSTANCENAME = "orcl"
SYSDBAUSERNAME = "sys"

5.2、执行建库命令:

[oracle@db bin]$ cd /apps/oracle/app/product/11.2.0/bin
[oracle@db bin]$ ./dbca -silent -responseFile /apps/oracle/etc/dbca.rsp

在这里插入图片描述

6.登录查看

[oracle@db bin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 15 11:36:06 2024
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

在这里插入图片描述
在这里插入图片描述

四、系统服务注册

1.dbstart文件修改

[oracle@db ~]$ echo $ORACLE_HOME
/apps/oracle/app/product/11.2.0修改/apps/oracle/app/product/11.2.0/bin/dbstart文件
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/apps/oracle/app/product/11.2.0

在这里插入图片描述

2.dbshut文件修改

修改/apps/oracle/app/product/11.2.0/bin/dbshut文件
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/apps/oracle/app/product/11.2.0

在这里插入图片描述

3.oratab文件修改

修改/etc/oratab文件
将orcl:/apps/oracle/app/product/11.2.0:N修改为orcl:/apps/oracle/app/product/11.2.0:Y

在这里插入图片描述

4.系统服务文件编写

oracle.service(root用户)

[Unit]
Description=Oracle Database 11g Startup/Shutdown Service
After=syslog.target network.target[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/apps/oracle/app/product/11.2.0"
ExecStart=/apps/oracle/app/product/11.2.0/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=/apps/oracle/app/product/11.2.0/bin/dbshut $ORACLE_HOME 2>&1 &[Install]
WantedBy=multi-user.target

在这里插入图片描述
将oracle.service放置于/etc/systemd/system/目录下,即可搭配systemctl命令启停oracle服务

# 开机自启动oracle服务
[root@db ~]# systemctl enable oracle
# 查看oracle服务状态
[root@db ~]# systemctl status oracle
# 手动启动oracle服务
[root@db ~]# systemctl start oracle
# 手动停止oracle服务
[root@db ~]# systemctl stop oracle
# 禁止oracle服务开机自启动
[root@db ~]# systemctl disable oracle

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619850.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【报错解决】RuntimeError: Distributed package doesn‘t have NCCL built in

报错信息: raise RuntimeError("Distributed package doesnt have NCCL " "built in") RuntimeError: Distributed package doesnt have NCCL built in报错原因: windows系统不支持nccl,采用gloo; 报错解决&…

linux文件访问权限理解

目录 一,涉及指令: 二,权限的表示 三,权限命令使用 一,涉及指令: umask chmod chown/chgrp 二,权限的表示 rwx rwx r-x含义: 访问方式: r-可读;w-可写;x-可执行; 访问用户:u-所有者;…

酷得智能 无人机方案开发

东莞市酷得智能科技有限公司,是一家专业的技术服务公司,致力于为各类智能硬件提供高效、稳定、安全的底层驱动解决方案。拥有一支经验丰富、技术精湛的团队,能够为客户提供全方位的底层驱动开发服务。 无人机功能介绍: 1、自动跟…

悠络客亮相第十届智慧商业数字化运营高峰论坛

2024年4月12日,由中国零售(餐饮)CIO俱乐部、《智慧零售与餐饮》新媒体主办的“2024第十届智慧商业数字化运营高峰论坛暨中国零售CIO俱乐部春季思享会”在北京举办。 来自全国各地的商超、便利、生鲜、百货、购物中心、快消品、食品/酒水/鞋服…

Vue3——如何读取chatgpt的流式数据

一、实现效果图 二、读取数据 下图是gpt返回的流式数据的数据形式,那么我们怎么把这个数据放到页面中,以实现gpt的打字机效果呢? const response await fetch(baseURLs "/api/ut/plan/smartWriteStream", {method: "POST&qu…

STM32H7的DMA双缓冲控制IO输出脉冲

STM32H7的DMA双缓冲控制IO输出脉冲 keil的sct文件配置MPU配置初始化DMA双缓冲初始化TIM12用处触发DMAMUX的请求发生器 keil的sct文件配置 ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision ***…

YOLOV5检测界面搭建+bug解决

目录 一、环境搭建 二、界面运行bug解决 三、界面 先给出Github链接:https://github.com/Javacr/PyQt5-YOLOv5 大佬链接:大佬 一、环境搭建 下载完项目后,需要配置环境: conda create -n yolov5_pyqt5 python3.8 conda act…

milvus各组件的结构体分析

milvus各组件的结构体分析 各组件启动,需要构建各组件的结构体,一共8个。 runComponent(ctx, localMsg, wg, components.NewRootCoord, metrics.RegisterRootCoord) runComponent(ctx, localMsg, wg, components.NewProxy, metrics.RegisterProxy) run…

html--烟花3

html <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Canvas烟花粒子</title> <meta name"keywords" content"canvas烟花"/> <meta name"description" content"can…

亚马逊卖家如何选择合适的海外仓系统,如何利用海外仓系统进行退货换标?

在亚马逊的全球电商舞台上&#xff0c;如何选择一个合适的海外仓系统&#xff0c;高效管理海外仓库、优化退货换标流程&#xff0c;成为了卖家们亟待解决的问题。 今天&#xff0c;让我们就来聊聊怎么挑选海外仓系统&#xff0c;还有怎么利用它来处理退货换标的。 一、选择海外…

web3项目自动连接小狐狸以及小狐狸中的各种“地址”详解

刚做web3的时候&#xff0c;比较迷糊的就是人们口中说的各种地址&#xff0c;小狐狸钱包地址&#xff0c;私钥地址&#xff0c;跳转地址&#xff0c;接口地址&#xff0c;交易地址&#xff0c;等等XX地址&#xff0c;常常感觉跟做链的同事们说话不在一个频道。 这一小节&#x…

Java开发从入门到精通(十一):Java常用的API编程接口:ArrayList集合

Java大数据开发和安全开发 &#xff08;一&#xff09;Java的常用API:ArrayList集合1.1 什么是集合?1.2 有数组&#xff0c;为啥还学习集合?1.3 ArrayList集合该怎么学呢?1.3.1 创建ArrayList对象1.3.ArrayList的增删改查操作1.3.3 ArrayList集合的案例 &#xff08;一&…