百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

手把手教你在OL6和OL7部署oracle 18c

ccwgpt 2024-11-30 19:21 54 浏览 0 评论


一、前置条件

1.1 系统要求

  • swap至少是2G
  • 关闭selinx
  • 关闭系统防火墙

1.2 下载软件

Oracle Database 18c (18.3) Software (64-bit)

1.3 Hosts File

<IP-address>  <fully-qualified-machine-name>  <machine-name>

例如本机软件名设置如下:

ol7-183.localdomain

二、安装前的设置

2.1 自动设置

2.1.1 安装自动设置程序包

可以通过安装官方提供的oracle 18c自动设置安装包来,来自动完成oracle的相关设置,主要包括

  • 系统内核参数
  • limit相关参数
  • 需要的依赖程序包
# yum install -y oracle-database-preinstall-18c

2.1.2 更新系统(可选)

# yum update -y

如果使用的是RHEL7或CentOS7,则可以从OL7存储库中选择PRM并进行安装。它将从常规存储库中提取依赖项。

2.2 手动设置

如果尚未使用“ oracle-database-preinstall-18c”软件包执行所有先决条件,则需要手动执行以下安装任务。

2.2.1 修改系统内核参数

将以下行添加到“ /etc/sysctl.conf”文件或名为“ /etc/sysctl.d/98-oracle.conf”的文件中。

fs.file-max = 6815744 
kernel.sem = 250 32000 100 128 
kernel.shmmni = 4096 
kernel.shmall = 1073741824 
kernel.shmmax = 4398046511104 
kernel.panic_on_oops = 1 
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net .core.wmem_default = 262144 
net.core.wmem_max = 1048576 
net.ipv4.conf.all.rp_filter = 2 
net.ipv4.conf.default.rp_filter = 2 
fs.aio-max-nr = 1048576 
net.ipv4.ip_local_port_range = 9000 65500

运行如下命令使参数生效:

/sbin/sysctl -p
# or
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf

参数说明:

  • kernel.shmall:设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了SHMALL参数的设置。这个值推荐设置为物理内存大小除以分页大小。例示:
    通过getconf获取分页的大小,用来计算SHMALL的合理设置值:
    SQL> select 32*1024*1024*1024/4096 from dual;
    32*1024*1024*1024/4096
    ----------------------
    8388608
    对于32G的内存,4K分页大小的系统而言,SHMALL的值应该设置为8388608。
  • kernel.shmmax:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。
  • kernel.shmmni = 4096:设置系统级最大共享内存段数量。Oracle11g推荐最小值为4096,可以适当比4096增加一些。

2.2.2 设置limit.conf文件

将以下行添加到名为“ /etc/security/limits.d/oracle-database-preinstall-18c.conf”的文件中。

oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728

评论中的人建议您可能还需要将前几行也添加到CentOS7的“ /etc/security/limits.conf”文件中。OL7绝对不需要这样做。

2.2.3 安装软件包

#OL6和OL7(RHEL6和RHEL7)
yum install -y bc     
yum install -y binutils 
yum install -y compat-libcap1 
yum install -y compat-libstdc ++-33 
yum install -y compat-libstdc ++-33.i686 
yum install -y elfutils-libelf.i686 
yum install -y elfutils-libelf 
yum install -y elfutils-libelf-devel.i686 
yum install -y elfutils-libelf-devel 
yum install -y fontconfig-devel 
yum install -y glibc.i686 
yum install -y glibc 
yum install -y glibc-devel.i686 
yum install -y glibc-devel 
yum install -y ksh 
yum install -y libaio.i686 
yum install -y libaio 
yum install -y libaio-devel.i686 
yum install -y libaio-devel
yum install -y libX11.i686 
yum install -y 
libX11 
yum install -y libXau.i686 
yum install -y libXau 
yum install -y libXi.i686 
yum install -y libXi 
yum install -y libXtst.i686 
yum install -y libXtst yum install -y libgcc.i686 
yum install -y libgcc 
yum install -y librdmacm-devel 
yum install -y libstdc ++。i686 
yum install -y libstdc ++ 
yum install -y libstdc ++-devel.i686 
yum install -y libstdc ++-devel 
yum install -y libxcbb .i686 
yum install -y libxcb 
yum install -y make 
yum install -y nfs-utils 
yum install -y net-tools 
yum install -y python 
yum install -y python-configshell
yum install -y python-rtslib 
yum install -y python-six 
yum install -y smartmontools 
yum install -y sysstat 
yum install -y targetcli 
yum install -y unixODBC

2.3 创建相关的用户和组

groupadd -g 54321 oinstall 
groupadd -g 54322 dba 
groupadd -g 54323 oper 
#groupadd -g 54324 backupdba 
#groupadd -g 54325 dgdba 
#groupadd -g 54326 kmdba 
#groupadd -g 54327 asmdba 
#groupadd -g 54328 asmoper 
#groupadd -g 54329 asmadmin 
#groupadd -g 54330 racdba 

useradd -u 54321 -g oinstall -G dba,oper oracle

2.4 关闭selinx和firewalld

2.4.1 关闭selinx

vim /etc/selinux/config,编辑如下:
SELINUX=disabled

2.4.2 关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld

2.5 创建相关目录

mkdir -p /u01/app/oracle/product/18.0.0/dbhome_1
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02

2.6 xhost(视情况)

除非您是从控制台进行操作或使用SSH隧道,否则请以root用户身份登录并发出以下命令。

xhost +<machine-name>

2.7 创建相关脚本

1、创建名为script目录。

mkdir /home/oracle/scripts

2、创建一个环境文件名为“setEnv.sh”

cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=ol7-183.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/18.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=cdb1
export PDB_NAME=pdb1
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH

export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOFcat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=ol7-183.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/18.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=cdb1
export PDB_NAME=pdb1
export DATA_DIR=/u02/oradata

export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH

export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF

3 设置oracle用户环境文件

echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

4、创建可从启动/关闭服务调用的“ start_all.sh”和“ stop_all.sh”脚本。确保所有权和权限正确。

cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart \$ORACLE_HOME
EOF


cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut \$ORACLE_HOME
EOF

chown -R oracle:oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh

一旦完成了数据库的完成,就可以编辑"/etc/oratab",同时你就可以用start/stop来启动和关闭数据库。

~/scripts/start_all.sh
~/scripts/stop_all.sh

三、开始安装

3.1 安装oracle软件

3.1.1 设置display输出

登录到oracle用户。如果使用的是X仿真,则设置DISPLAY环境变量。

DISPLAY=<machine-name>:0.0; export DISPLAY

3.1.2 解压并安装

# Unzip software.
cd $ORACLE_HOME
unzip -oq /path/to/software/LINUX.X64_180000_db_home.zip

# Interactive mode.
./runInstaller

# Silent mode.
./runInstaller -ignorePrereq -waitforcompletion -silent                        \
    -responseFile ${ORACLE_HOME}/install/response/db_install.rsp               \
    oracle.install.option=INSTALL_DB_SWONLY                                    \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME}                                         \
    UNIX_GROUP_NAME=oinstall                                                   \
    INVENTORY_LOCATION=${ORA_INVENTORY}                                        \
    SELECTED_LANGUAGES=en,en_GB                                                \
    ORACLE_HOME=${ORACLE_HOME}                                                 \
    ORACLE_BASE=${ORACLE_BASE}                                                 \
    oracle.install.db.InstallEdition=EE                                        \
    oracle.install.db.OSDBA_GROUP=dba                                          \
    oracle.install.db.OSBACKUPDBA_GROUP=dba                                    \
    oracle.install.db.OSDGDBA_GROUP=dba                                        \
    oracle.install.db.OSKMDBA_GROUP=dba                                        \
    oracle.install.db.OSRACDBA_GROUP=dba                                       \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false                                 \
    DECLINE_SECURITY_UPDATES=true

出现提示时运行根脚本。

As a root user, execute the following script(s):
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/oracle/product/18.0.0/dbhome_1/root.sh

3.2 创建数据库

您使用数据库配置助手(DBCA)创建数据库。交互模式将显示GUI屏幕以允许用户输入,而静默模式将创建数据库而不显示任何屏幕,因为所有必需的选项已在命令行上指定。

# Start the listener.
lsnrctl start

# Interactive mode.
dbca

# Silent mode.
dbca -silent -createDatabase                                                   \
     -templateName General_Purpose.dbc                                         \
     -gdbname ${ORACLE_SID} -sid  ${ORACLE_SID} -responseFile NO_VALUE         \
     -characterSet AL32UTF8                                                    \
     -sysPassword SysPassword1                                                 \
     -systemPassword SysPassword1                                              \
     -createAsContainerDatabase true                                           \
     -numberOfPDBs 1                                                           \
     -pdbName ${PDB_NAME}                                                      \
     -pdbAdminPassword PdbPassword1                                            \
     -databaseType MULTIPURPOSE                                                \
     -memoryMgmtType auto_sga                                                  \
     -totalMemory 2000                                                         \
     -storageType FS                                                           \
     -datafileDestination "${DATA_DIR}"                                        \
     -redoLogFileSize 50                                                       \
     -emConfiguration NONE                                                     \
     -ignorePreReqs

3.3 安装后的设置

编辑“ / etc / oratab”文件,将每个实例的重新启动标志设置为“ Y”。

cdb1:/u01/app/oracle/product/18.0.0/db_1:Y

启用Oracle托管文件(OMF),并确保在实例启动时启动PDB。

sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF


相关推荐

一个基于.Net Core遵循Clean Architecture原则开源架构

今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...

AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%

写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...

OneCode低代码平台的事件驱动设计:架构解析与实践

引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...

国内大厂AI插件评测:根据UI图生成Vue前端代码

在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...

AI+低代码技术揭秘(二):核心架构

本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...

GitDiagram用AI把代码库变成可视化架构图

这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...

30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...

AI写代码越帮越忙?2025年研究揭露惊人真相

近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...

一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具

一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...

5分钟掌握 c# 网络通讯架构及代码示例

以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...

从复杂到优雅:用建造者和责任链重塑代码架构

引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...

低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈

专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...

框架设计并不是简单粗暴地写代码,而是要先弄清逻辑

3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...

大佬用 Avalonia 框架开发的 C# 代码 IDE

AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...

轻量级框架Lagent 仅需20行代码即可构建自己的智能代理

站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...

取消回复欢迎 发表评论: