当前位置: 首页 > article >正文

在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库

目录

  • 在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库
  • 引言
  • 安装常见问题
    • vim粘贴问题
  • 环境情况
    • 环境信息
    • 安装包下载
  • 初始环境准备
    • 关闭 SELinux
    • 关闭 firewalld
  • 安装前初始化工作
    • 配置主机名
    • 安装依赖
    • 优化内核参数
    • 限制 Oracle 用户的 Shell 权限
    • 配置 PAM 模块
    • 配置swap
    • 创建用户组与用户,以及oracle所需目录
    • 配置oracle用户环境变量
      • 切换到 Oracle 用户
      • 编辑 .bash_profile
      • 解释各个环境变量
      • 使配置生效
      • 验证配置
    • 配置安装目录以及解压安装包
      • 切换到 Oracle 用户
      • 解压 Oracle 安装包
      • 移动解压后的文件
      • 复制响应文件
  • 修改安装配置项
    • 修改db_install.rsp
    • 修改dbca.rsp
  • 开始安装
    • 切换到 Oracle 用户
    • 安装Oracle软件
    • 执行扩展脚本
  • 配置监听
    • 切换到 Oracle 用户
    • 配置 Oracle Listener
  • 创建oracle实例以及创建新用户
    • 切换到 Oracle 用户
    • 创建实例
  • 开机自启
  • 其他
  • 总结


在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库

引言

Oracle 数据库作为一种高性能的关系型数据库管理系统,广泛应用于企业级应用中。尽管 Oracle 官方推荐使用其自家的 Linux 版本进行部署,但在 CentOS 上部署 Oracle 同样是一个常见的选择,尤其是在测试和开发环境中。

本文将带领大家一步步通过 CentOS 7 操作系统部署 Oracle 数据库的过程,从环境准备到数据库安装,确保在 CentOS 上成功运行 Oracle 数据库。我们将涵盖安装前的准备工作、必备依赖、配置优化以及常见的安装问题和解决方案。


安装常见问题

vim粘贴问题

关于 vim 编译粘贴带有 # 号的情况,可以描述为:在 vim 中进行编译或粘贴代码时,尤其是粘贴来自外部编辑器或文档的内容,如果内容前有 # 注释符号,可能会因为缩进或特殊字符导致格式错误。这时,可以使用 vim 的粘贴模式来避免这些问题。

具体操作步骤如下:

  1. 启用粘贴模式
    vim 中,使用以下命令启用粘贴模式:

    :set paste
    
  2. 粘贴内容
    粘贴操作时,vim 会忽略自动缩进和格式化,使得粘贴的内容按照原样保留,包括注释符号 #

  3. 关闭粘贴模式
    粘贴完成后,可以使用以下命令退出粘贴模式,恢复正常的格式化行为:

    :set nopaste
    

通过上述方法,粘贴代码时带有 # 的注释符号不会被误处理,避免格式错误。


环境情况

环境信息

对于Oracle 11g,建议至少有4核的CPU和8GB的RAM作为最小配置

项目详情
操作系统CentOS Linux release 7.9.2009 (Core)
CPU 核心数8 核(逻辑核心)
内存16G
Oracle版本11.2.0.4.0

官方安装参考


安装包下载

百度网盘下载oracle软件包
百度网盘页面
下边这两个文件夹别下载错了

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip


初始环境准备

在开始 Oracle 数据库的安装之前,我们需要对 CentOS 系统进行一些必要的配置。这些配置有助于确保安装过程顺利进行,并避免出现常见的安装问题。

关闭 SELinux

SELinux(Security-Enhanced Linux)是 Linux 系统的一种安全机制,但它可能会干扰 Oracle 安装过程。因此,我们需要在安装之前暂时关闭 SELinux。

执行以下命令查看 SELinux 状态:

sestatus

如果 SELinux 处于启用状态,使用以下命令关闭 SELinux:

setenforce 0

要永久禁用 SELinux,需要编辑 /etc/selinux/config 文件,将 SELINUX 设置为 disabled

vim /etc/selinux/config

修改:

SELINUX=disabled

保存并退出编辑器后,重启系统使配置生效:

reboot

关闭 firewalld

Oracle 数据库的安装和配置可能会受到防火墙的限制,因此需要关闭 CentOS 系统上的 firewalld 服务。

执行以下命令停止并禁用 firewalld:

systemctl stop firewalld
systemctl disable firewalld

检查 firewalld 状态,确保其已被禁用:

systemctl status firewalld

安装前初始化工作

配置主机名

使用 hostnamectl set-hostname db 来设置主机名为 db,然后将主机名与 IP 地址映射到 /etc/hosts 文件中,以便本地解析:

hostnamectl set-hostname db
echo "10.255.101.216 db" >> /etc/hosts
  • 注意:这里的 IP 地址 10.255.101.216 应替换为你实际的服务器 IP 地址。
    在这里插入图片描述

安装依赖

首先检查是否已经安装了所需的依赖,使用命令:

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

在这里插入图片描述

这将检查系统中是否已安装所需的软件包。如果没有安装,使用以下命令来安装:

yum -y install net-tools lrzsz telnet wget unzip zip binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

注意事项:

  1. 安装 gccglibc 等开发工具包和库对于数据库的安装和编译是必不可少的
  2. unixODBC 和其相关开发包通常用于与数据库进行连接(例如,ODBC 驱动程序)
    安装完再rpm检查,都有了
    在这里插入图片描述

优化内核参数

在 Oracle 安装前,我们需要调整一些内核参数,确保系统性能能够满足 Oracle 数据库的需求。可以通过修改 /etc/sysctl.conf 文件来设置这些参数。

  1. 计算 shmallshmmax 的值
  • kernel.shmall:表示系统共享内存总页数。计算方法是:shmall = total_memory / 4,其中 total_memory 是通过 free -k 命令获取的系统总内存(单位:KB)。

  • kernel.shmmax:表示共享内存段的最大值,计算方法是:shmmax = total_memory - 1,其中 total_memory 是通过 free -b 获取的总内存(单位:字节)。

假设你运行 free -k 得到的输出为:

              total        used        free      shared  buff/cache   available
Mem:       16425172      123732    16164392        8784      137048    16059168

然后计算:

kernel.shmall = total / 4 = 16425172 / 4 = 4106293

假设你运行 free -b 得到的输出为:

              total        used        free      shared  buff/cache   available
Mem:    16819376128   125624320 16553308160     8994816   140443648 16445612032

然后计算:

kernel.shmmax = total - 1 = 16819376128 - 1 = 16819376127

在这里插入图片描述

备份配置文件,防止错误时恢复

cp -p /etc/sysctl.conf /etc/sysctl.conf_bak

编辑 /etc/sysctl.conf 文件,并加入以下配置:

# 最大异步I/O请求数
fs.aio-max-nr = 1048576# 系统最大打开文件数
fs.file-max = 6815744# 共享内存段的最大数量
kernel.shmall = 4106293# 每个共享内存段的最大大小
kernel.shmmax = 16819376127# 系统中共享内存段的最大数量
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
  1. 应用内核参数更改

修改完成后,保存并退出文件,然后执行以下命令使更改生效:

sysctl -p

这些优化的内核参数将帮助 Oracle 数据库在 CentOS 上运行时获得更好的性能,特别是对于大规模并发访问和共享内存的需求。
在这里插入图片描述


限制 Oracle 用户的 Shell 权限

为了确保 Oracle 数据库的稳定运行,我们需要设置一些资源限制,以限制 Oracle 用户的进程数、打开文件数和栈大小等。通过修改 /etc/security/limits.conf 文件,可以有效地控制 Oracle 用户的资源使用。

  1. 编辑 /etc/security/limits.conf

    使用文本编辑器打开 /etc/security/limits.conf 文件:

    vim /etc/security/limits.conf
    

    然后在文件的末尾添加以下配置:

    # 限制 Oracle 用户的资源使用
    oracle              soft    nproc   2047        # 限制 Oracle 用户的最大进程数(软限制)
    oracle              hard    nproc   16384       # 限制 Oracle 用户的最大进程数(硬限制)
    oracle              soft    nofile  4096        # 限制 Oracle 用户的最大打开文件数(软限制)
    oracle              hard    nofile  65536       # 限制 Oracle 用户的最大打开文件数(硬限制)
    oracle              soft    stack   10240       # 限制 Oracle 用户的栈大小(软限制)
    
  2. 说明

    nproc: 限制 Oracle 用户可以创建的最大进程数。软限制和硬限制分别为 2047 和 16384,软限制可以由用户自行调整,而硬限制则是最大值,不允许超过。
    nofile: 限制 Oracle 用户可以打开的最大文件数。软限制为 4096,硬限制为 65536。
    stack: 限制 Oracle 用户的栈大小。软限制为 10240(单位为 KB)。

  3. 应用更改
    保存并退出文件后,重新登录系统使更改生效。Oracle 用户的资源限制将会按上述配置进行控制。

在这里插入图片描述


配置 PAM 模块

首先,备份原始的 login 配置文件:

cp -p /etc/pam.d/login /etc/pam.d/login-bak

然后,编辑 /etc/pam.d/login 文件,追加以下内容:

session required /lib64/security/pam_limits.so
session required pam_limits.so
  • pam_limits.so:该模块用于读取 /etc/security/limits.conf 中的资源限制,并将其应用于用户会话。通过这条配置,确保 PAM 模块在每个会话中加载资源限制。

配置swap

oracle安装程序要求至少有 150 MB 的交换空间swap

  1. 创建交换文件

    fallocate -l 1G /swapfile
    

    这将创建一个 1 GB 大小的交换文件。如果你需要更大的交换空间,可以根据需要调整文件大小。

  2. 设置交换文件格式

    mkswap /swapfile
    

    这会将交换文件格式化为交换空间。

  3. 启用交换空间

    swapon /swapfile
    

    这会立即启用交换空间。

  4. 使交换文件在重启后生效

    echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
    
  5. 交换空间(Swap)相关信息

    cat /proc/meminfo | grep Swap
    
    • SwapTotal:交换空间的总大小
    • SwapFree:当前未使用的交换空间
    • SwapCached:被缓存但未使用的交换空间

在这里插入图片描述


创建用户组与用户,以及oracle所需目录

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo oracle|passwd --stdin oraclemkdir -p /data/app/oracle/app /data/app/oracle/etc
chown -R oracle:oinstall /data/app/oracle /data/bag
chmod -R 775 /data/app/oracle /data/bag

在这里插入图片描述


配置oracle用户环境变量

切换到 Oracle 用户

首先,确保以 oracle 用户身份登录。你可以使用 su 命令切换到 oracle 用户:

su - oracle

编辑 .bash_profile

然后,编辑 oracle 用户的 .bash_profile 文件,通常位于 ~/.bash_profile,在文件末尾追加以下配置:

# oracle安装目录
export ORACLE_BASE=/data/app/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0# oracle实例SID名称
export ORACLE_SID=orcl# 同SID
export ORACLE_TERM=orcl# 设置Oracle的可执行文件路径
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH# 设置Oracle库文件路径
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib# 设置语言环境
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8# 同SID
export ORACLE_UNQNAME=orcl# 追加 Oracle 可执行文件路径
export PATH=$ORACLE_HOME/bin:$PATH
export PATH# 设置 SQLPATH
export SQLPATH=/data/app/oracle/labs

解释各个环境变量

  • ORACLE_BASE:指定 Oracle 安装的基础目录路径。
  • ORACLE_HOME:指定 Oracle 数据库软件的安装路径。通常,它位于 ORACLE_BASE 目录下的 product 子目录中。
  • ORACLE_SID:设置 Oracle 实例的 SID(System Identifier),这对应于你的 Oracle 数据库实例。
  • ORACLE_TERM:设置 Oracle 使用的终端类型,一般与 SID 名称相同。
  • PATH:确保 Oracle 的二进制文件路径被加入到 PATH 环境变量中,方便执行 Oracle 相关命令。
  • LD_LIBRARY_PATH:设置 Oracle 的库文件路径,确保 Oracle 能找到所需的共享库。
  • LANGNLS_LANG:指定语言和字符集设置。NLS_LANG=AMERICAN_AMERICA.AL32UTF8 用于指定数据库使用的语言环境和字符集(通常是 UTF-8)。
  • ORACLE_UNQNAME:同 ORACLE_SID,表示 Oracle 实例的唯一名称。
  • SQLPATH:指定 SQL 脚本的默认路径,方便执行 SQL 文件。

使配置生效

完成编辑后,保存并关闭文件。然后使用以下命令使修改生效:

source ~/.bash_profile

这会重新加载 .bash_profile 文件并使配置立即生效。

验证配置

你可以通过运行以下命令验证环境变量是否配置正确:

echo $ORACLE_BASE
echo $ORACLE_HOME
echo $ORACLE_SID
echo $PATH

这些命令应该会显示你刚刚设置的环境变量值。

在这里插入图片描述


配置安装目录以及解压安装包

切换到 Oracle 用户

确保以 oracle 用户身份登录。可以通过 su 命令切换到 oracle 用户:

su - oracle

解压 Oracle 安装包

假设你已经有了 Oracle 安装包文件,如 p13390677_112040_Linux-x86-64_1of7.zipp13390677_112040_Linux-x86-64_2of7.zip,并且这两个文件放在了同一个目录下/data/bag/

运行以下命令解压这些文件:

cd /data/bag/
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

解压后,你会得到一个 databases 目录,里面包含了 Oracle 安装所需的文件。
在这里插入图片描述


移动解压后的文件

将解压后的 database 目录移动到指定的路径 /data/app/oracle/app/

mv database /data/app/oracle/app/

在这里插入图片描述


复制响应文件

Oracle 安装过程中需要使用响应文件(response 文件)来配置安装选项。将响应文件从 cp /data/app/oracle/app/database/response/ 复制到 Oracle 的配置目录 /data/app/oracle/etc/

 cp /data/app/oracle/app/database/response/* /data/app/oracle/etc/

设置响应文件权限

chmod 700 /data/app/oracle/etc/*.rsp

具体来说:

  1. db_install.rsp:这个响应文件通常用于 Oracle 数据库安装过程中的自动配置。它包含了安装过程中的配置参数,如 Oracle 安装路径、数据库名称等

  2. dbca.rsp:这是 Oracle 数据库创建助手(DBCA)使用的响应文件,用于自动化创建数据库的过程。它指定了数据库配置,如字符集、数据库模板、监听器配置等

  3. netca.rsp:这是 Oracle 网络配置助手(NETCA)使用的响应文件,用于自动化配置 Oracle 网络设置,通常用于配置监听器、TNS 网络服务等

在这里插入图片描述


修改安装配置项

修改db_install.rsp

/data/app/oracle/etc目录下

主要是修改这几个参数,也可以直接吧下边的复制进去
INVENTORY_LOCATIONORACLE_HOMEORACLE_BASE

grep -v "^#" db_install.rsp |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=/data/app/oracle/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/app/oracle/app/product/11.2.0
ORACLE_BASE=/data/app/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=

修改dbca.rsp

/data/app/oracle/etc目录下

grep -v "^#" dbca.rsp |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"

开始安装

切换到 Oracle 用户

首先,确保以 oracle 用户身份登录。你可以使用 su 命令切换到 oracle 用户:

su - oracle

安装Oracle软件

cd /data/app/oracle/app/database
./runInstaller -silent -force -responseFile /data/app/oracle/etc/db_install.rsp -ignorePrereq

在这里插入图片描述

它不会直接回到命令行,需要按下回车


执行扩展脚本

回到 root用户

/data/app/oracle/app/oraInventory/orainstRoot.sh
/data/app/oracle/app/product/11.2.0/root.sh

在这里插入图片描述


配置监听

切换到 Oracle 用户

首先,确保以 oracle 用户身份登录。你可以使用 su 命令切换到 oracle 用户:

su - oracle

配置 Oracle Listener

在安装并配置 Oracle 数据库时,listener.ora 文件用于定义 Oracle Listener 的配置。Oracle Listener 是一个重要的组件,它允许客户端通过网络访问数据库实例。以下是如何配置和启动 Oracle Listener 的步骤:

  1. 配置 listener.ora

Oracle Listener 配置文件 listener.ora 通常位于 $ORACLE_HOME/network/admin 目录下。你可以编辑该文件来配置 Listener 的详细参数。

以下是一个配置示例,位于 /data/app/oracle/app/product/11.2.0/network/admin/samples/listener.ora

# listener.ora Network Configuration File: /data/app/oracle/app/product/11.2.0/network/admin/samples/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /data/app/oracle/app/product/11.2.0)(SID_NAME = orcl)))
LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = $(/sbin/ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}'))(PORT = 1521)))
ADR_BASE_LISTENER = /data/app/oracle

Listener 配置了:

  • SID_LIST_LISTENER:定义了 Oracle 数据库实例的 SID(System Identifier)以及数据库名称 orcl
  • LISTENER:定义了监听协议、主机地址和端口号。HOST 配置使用了动态命令来获取服务器的 IP 地址(非 127.0.0.1)。
  • ADR_BASE_LISTENER:配置了诊断日志的存储位置。
  1. 启动 Listener

配置完 listener.ora 后,可以使用 lsnrctl 命令来启动 Oracle Listener:

lsnrctl start

启动成功后,会显示如下信息:

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-FEB-2025 19:03:23
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Starting /data/app/oracle/app/product/11.2.0/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Log messages written to /data/app/oracle/app/diag/tnslsnr/db/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db)(PORT=1521)))
  1. 检查 Listener 状态

启动 Listener 后,可以使用以下命令检查其状态:

lsnrctl status

输出将类似于:

STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                25-FEB-2025 19:03:23
Uptime                    0 days 0 hr. 0 min. 12 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /data/app/oracle/app/diag/tnslsnr/db/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db)(PORT=1521)))
The listener supports no services
  • Listening Endpoints Summary 显示了监听的地址和端口。
  • The listener supports no services 表示当前 Listener 尚未注册任何数据库服务。这个问题可以通过配置数据库服务或启动数据库实例来解决。
    在这里插入图片描述

创建oracle实例以及创建新用户

切换到 Oracle 用户

首先,确保以 oracle 用户身份登录。你可以使用 su 命令切换到 oracle 用户:

su - oracle

创建实例

cd /data/app/oracle/app/product/11.2.0/bin/
./dbca -silent -responseFile /data/app/oracle/etc/dbca.rsp

在这里插入图片描述## 创建test用户

  1. 登录到 Oracle 数据库

首先,以 sysdba 身份登录到 Oracle 数据库:

sqlplus / as sysdba
  1. 创建新用户

使用以下 SQL 命令创建一个名为 test 的新用户,并为其设置密码 123456

create user test identified by 123456;
  1. 授予权限

接下来,授予新用户 test 以下权限:

  • connect:允许用户连接到数据库
  • resource:允许用户创建和管理资源(如表、视图、存储过程等)
  • dba:授予数据库管理员权限,允许执行所有管理任务

授予权限的 SQL 命令如下:

grant connect, resource, dba to test;
  1. 撤销权限

如果以后需要撤销某些权限,可以使用 revoke 命令。例如,要撤销 test 用户的 connectresourcedba 权限,可以使用以下命令:

revoke connect, resource, dba from test;
  1. 退出 SQL*Plus

完成操作后,可以退出 SQL*Plus:

exit

在这里插入图片描述

在这里插入图片描述

开机自启

切换到root用户
/etc/oratab 修改文件将N改为Y

orcl:/data/app/oracle/app/product/11.2.0:Y

配置/etc/systemd/system/oracle.service

[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=/data/app/oracle/app/product/11.2.0"
ExecStart=/data/app/oracle/app/product/11.2.0/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=/data/app/oracle/app/product/11.2.0/bin/dbshut $ORACLE_HOME 2>&1 &[Install]
WantedBy=multi-user.target
systemctl start oracle 
systemctl enable oracle

其他

在 Oracle 数据库中,常见的配置调整包括修改最大连接数、禁用回收站功能、关闭审计功能等。以下是如何执行这些操作的示例。

  1. 修改最大连接数

最大连接数决定了 Oracle 数据库可以同时处理的最大进程数。要修改此值,可以使用以下命令:

SQL> show parameter processes;

这将显示当前的 processes 参数。接下来,执行以下命令修改最大连接数(例如,将其设置为 2000):

SQL> alter system set processes=2000 scope = spfile;
  • scope = spfile:表示更改将生效于数据库的初始化参数文件(spfile),并将在下一次数据库重启时生效。
  1. 禁用回收站功能

Oracle 数据库的回收站功能类似于 Windows 操作系统中的回收站,它允许用户恢复删除的数据表。根据需求,你可以选择是否禁用回收站。要查看回收站的状态:

SQL> show parameter recyclebin;

要禁用回收站功能,可以执行以下命令:

SQL> alter system set recyclebin=off scope=spfile;
  • scope=spfile:表示更改会在下一次数据库重启时生效。

. 关闭审计功能

审计功能用于记录用户对数据库的操作,以便后续审查。根据需求,你可以选择关闭审计功能。首先,查看当前的审计设置:

SQL> show parameter audit;

然后,执行以下命令关闭审计功能:

SQL> alter system set audit_trail=NONE scope=spfile;
  • audit_trail=NONE:表示禁用审计功能。
  1. 查看内存参数设置

要查看 Oracle 数据库的内存参数设置,可以使用以下命令:

  • 查看 SGA(系统全局区)参数:

    SQL> show parameter sga;
    
  • 查看 PGA(程序全局区)参数:

    SQL> show parameter pga;
    
  • 查看所有内存相关参数:

    SQL> show parameter memory;
    

这些命令可以帮助你查看数据库的内存分配情况,方便进行性能调优。


总结

Oracle 数据库的部署过程涉及多方面的配置和调优。合理的安装、配置和优化能够确保数据库高效、稳定地运行。通过本博文中的步骤,你可以从安装 Oracle 数据库到配置数据库实例、管理用户权限、优化系统设置,最终实现一个可靠、高效的数据库系统。

部署 Oracle 数据库是一个需要细致操作和持续监控的过程,尤其在生产环境中。通过本篇博文的学习,希望能帮助你更好地理解并掌握 Oracle 数据库部署的各项技术,提升系统的稳定性、性能与安全性。

相关文章:

在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库

目录 在 CentOS 7.9上部署 Oracle 11.2.0.4.0 数据库引言安装常见问题vim粘贴问题 环境情况环境信息安装包下载 初始环境准备关闭 SELinux关闭 firewalld 安装前初始化工作配置主机名安装依赖优化内核参数限制 Oracle 用户的 Shell 权限配置 PAM 模块配置swap创建用户组与用户,…...

idea里的插件spring boot helper 如何使用,有哪些强大的功能,该如何去习惯性的运用这些功能

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

Docker 搭建 Redis 数据库

Docker 搭建 Redis 数据库 前言一、准备工作二、创建 Redis 容器的目录结构三、启动 Redis 容器1. 通过 redis.conf 配置文件设置密码2. 通过 Docker 命令中的 requirepass 参数设置密码 四、Host 网络模式与 Port 映射模式五、检查 Redis 容器状态六、访问 Redis 服务总结 前言…...

JAVAweb之过滤器,监听器

文章目录 过滤器认识生命周期FilterConfigFilterChain过滤器执行顺序应用场景代码 监听器认识ServletContextListenerHttpSessionListenerServletRequestListener代码 过滤器 认识 Java web三大组件之一,与Servlet相似。过滤器是用来拦截请求的,而非处…...

计算机毕业设计SpringBoot+Vue.js足球青训俱乐部管理系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知

写在前面 博文内容涉及 基于 Deepseek LLM 的本地知识库搭建使用 ollama 部署 Deepseek-R1 LLM知识库能力通过 Ragflow、Dify 、AnythingLLM、Cherry 提供理解不足小伙伴帮忙指正 😃,生活加油 我站在人潮中央,思考这日日重复的生活。我突然想&#xff0c…...

QSplashScreen --软件启动前的交互

目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码 使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类,用于显示启动画面。它通常在应用程序启动时显示,以向用户显…...

「软件设计模式」责任链模式(Chain of Responsibility)

深入解析责任链模式:用C打造灵活的请求处理链 引言:当审批流程遇上设计模式 在软件系统中,我们经常会遇到这样的场景:一个请求需要经过多个处理节点的判断,每个节点都有权决定是否处理或传递请求。就像企业的请假审批…...

蓝桥杯嵌入式客观题以及解释

第十一届省赛(大学组) 1.稳压二极管时利用PN节的反向击穿特性制作而成 2.STM32嵌套向量终端控制器NVIC具有可编程的优先等级 16 个 3.一个功能简单但是需要频繁调用的函数,比较适用内联函数 4.模拟/数字转换器的分辨率可以通过输出二进制…...

你对WebAssembly的看法是什么?

WebAssembly(Wasm)是一种新兴的技术,旨在通过提供一种新的低级字节码格式来提高 Web 应用程序的性能和效率。它与 JavaScript 互补,使得开发者可以将其他编程语言(如 C、C、Rust 等)编译为高效的字节码&…...

Qt在Linux嵌入式开发过程中复杂界面滑动时卡顿掉帧问题分析及解决方案

Qt在Linux嵌入式设备开发过程中,由于配置较低,加上没有GPU,我们有时候会遇到有些组件比较多的复杂界面,在滑动时会出现掉帧或卡顿的问题。要讲明白这个问题还得从CPU和GPU的分工说起。 一、硬件层面核心问题根源剖析 CPU&#x…...

vscode 版本

vscode官网 Visual Studio Code - Code Editing. Redefined 但是官网只提供最新 在之前的版本就要去github找了 https://github.com/microsoft/vscode/releases 获取旧版本vscode安装包的方法_vscode 老版本-CSDN博客...

low rank decomposition如何用于矩阵的分解

1. 什么是矩阵分解和低秩分解 矩阵分解是将一个矩阵表示为若干结构更简单或具有特定性质的矩阵的组合或乘积的过程。低秩分解(Low Rank Decomposition)是其中一种方法,旨在将原矩阵近似为两个或多个秩较低的矩阵的乘积,从而降低复…...

C# string转unicode字符

在 C# 中,将字符串转换为 Unicode 字符(即每个字符的 Unicode 码点)可以通过遍历字符串中的每个字符并获取其 Unicode 值来实现。Unicode 值是一个整数,表示字符在 Unicode 标准中的唯一编号。 以下是实现方法: 1. 获…...

51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器)计算T1的初值,装载TH1\TL1启动T1(编程TCON中的TR1位…...

Fisher信息矩阵与Hessian矩阵:区别与联系全解析

Fisher信息矩阵与Hessian矩阵:区别与联系全解析 在统计学和机器学习中,Fisher信息矩阵(FIM)和Hessian矩阵是两个经常出现的概念,它们都与“二阶信息”有关,常用来描述函数的曲率或参数的敏感性。你可能听说…...

有哪些开源大数据处理项目使用了大模型

以下是一些使用了大模型的开源大数据处理项目: 1. **RedPajama**:这是一个开源项目,使用了LLM大语言模型数据处理组件,对GitHub代码数据进行清洗和处理。具体流程包括数据清洗、过滤低质量样本、识别和删除重复样本等步骤。 2. …...

ubuntu离线安装Ollama并部署Llama3.1 70B INT4

文章目录 1.下载Ollama2. 下载安装Ollama的安装命令文件install.sh3.安装并验证Ollama4.下载所需要的大模型文件4.1 加载.GGUF文件(推荐、更容易)4.2 加载.Safetensors文件(不建议使用) 5.配置大模型文件 参考: 1、 如…...

机器学习数学通关指南——泰勒公式

前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 一句话总结 泰勒公式是用多…...

目标检测tricks

A. Stochastic Weight Averaging (SWA) 1. 基本思想 SWA 的核心思想是通过对训练过程中不同时间点的模型参数进行加权平均,从而获得一个更好的模型。具体来说,SWA 在训练过程的后期阶段对多个不同的模型快照(snapshots)进行平均…...

JNA基础使用,调用C++返回结构体

C端 test.h文件 #pragma oncestruct RespInfo {char* path;char* content;int statusCode; };extern "C" { DLL_EXPORT void readInfo(char* path, RespInfo* respInfo); }test.cpp文件 #include "test.h"void readInfo(char* path, RespInfo* respInfo…...

【算法】793. 高精度乘法

题目 793. 高精度乘法 思路 把b当作一个整体进行乘法&#xff0c;用A的每一位和b相乘&#xff0c;还要加上判断001的情况&#xff0c;把前面的0删掉。 代码 #include<iostream> #include<vector> using namespace std; vector<int>mul(vector<int>…...

解锁养生密码,拥抱健康生活

在快节奏的现代生活中&#xff0c;养生不再是一种选择&#xff0c;而是我们保持活力、提升生活质量的关键。它不是什么高深莫测的学问&#xff0c;而是一系列融入日常的简单习惯&#xff0c;每一个习惯都在为我们的健康加分。 早晨&#xff0c;当第一缕阳光洒进窗户&#xff0c…...

OpenCV(6):图像边缘检测

图像边缘检测是计算机视觉和图像处理中的一项基本任务&#xff0c;它用于识别图像中亮度变化明显的区域&#xff0c;这些区域通常对应于物体的边界。是 OpenCV 中常用的边缘检测函数及其说明: 函数算法说明适用场景cv2.Canny()Canny 边缘检测多阶段算法&#xff0c;检测效果较…...

spark的一些指令

一&#xff0c;复制和移动 1、复制文件 格式&#xff1a;cp 源文件 目标文件 示例&#xff1a;把file1.txt 复制一份得到file2.txt 。那么对应的命令就是&#xff1a;cp file1.txt file2.txt 2、复制目录 格式&#xff1a;cp -r 源文件 目标文件夹 示例&#xff1a;把目…...

OpenHarmony全球化子系统

OpenHarmony全球化子系统 简介系统架构目录相关仓 简介 当OpenHarmony系统/应用在全球不同区域使用时&#xff0c;系统/应用需要满足不同市场用户关于语言、文化习俗的需求。全球化子系统提供支持多语言、多文化的能力&#xff0c;包括&#xff1a; 资源管理能力 根据设备类…...

创建私人阿里云docker镜像仓库

步骤1、登录阿里云 阿里云创建私人镜像仓库地址&#xff1a;容器镜像服务 步骤2、创建个人实例 步骤&#xff1a;【实例列表】 》【创建个人实例】 》【设置Registry登录密码】 步骤3、创建命名空间 步骤&#xff1a;【个人实例】》【命名空间】》【创建命名空间】 注意&am…...

【LLM】本地部署LLM大语言模型+可视化交互聊天,附常见本地部署硬件要求(以Ollama+OpenWebUI部署DeepSeekR1为例)

【LLM】本地部署LLM大语言模型可视化交互聊天&#xff0c;附常见本地部署硬件要求&#xff08;以OllamaOpenWebUI部署DeepSeekR1为例&#xff09; 文章目录 1、本地部署LLM&#xff08;以Ollama为例&#xff09;2、本地LLM交互界面&#xff08;以OpenWebUI为例&#xff09;3、本…...

【考研】复试相关上机题目

文章目录 22机试回忆版1、判断燃气费描述输入格式输出格式输入样例输出样例 C o d e Code Code 2、统计闰年数量描述输入格式输出格式输入样例输出样例 C o d e Code Code 3、打印图形描述输入格式输出格式 C o d e Code Code 4、密文数据描述输入格式输出格式输入样例输出样例…...

vue3除了pinia/vuex的其他通讯方式还有那些

1. Props 和 Events Props&#xff1a;父组件通过 props 向子组件传递数据。 Events&#xff1a;子组件通过 $emit 向父组件发送事件。 <!-- ParentComponent.vue --> <template><ChildComponent :message"parentMessage" update-message"updat…...