百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

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

sinye56 2024-10-10 10:41 5 浏览 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


相关推荐

CTO偷偷传我的系统性能优化十大绝招(万字干货)

上篇引言:取与舍软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、...

提升效率!VMware虚拟机性能优化十大实用技巧

我40岁,干跨境婚恋中介的。为服务各国用户,常得弄英语、日语、俄语系统环境,VMware虚拟机帮了不少忙。用久了发现优化下性能,效率能更高。今儿就来聊聊优化技巧和同类软件。一、VMware虚拟...

低延迟场景下的性能优化实践

本文摘录自「全球C++及系统软件技术大会」ScottMeyers曾说到过,如果你不在乎性能,为什么要在C++这里,而不去隔壁的Pythonroom呢?今天我们就从“低延迟的概述”、“低延迟系...

Linux性能调优之内存负载调优的一些笔记

写在前面整理一些Linux内存调优的笔记,分享给小伙伴博文没有涉及的Demo,理论方法偏多,可以用作内存调优入门博文内容涉及:Linux内存管理的基本理论寻找内存泄露的进程内存交换空间调优不同方式的...

优化性能套路:带你战胜这只后段程序员的拦路虎

来源|极客时间《卖桃者说》作者|池建强编辑|成敏你好,这里是卖桃者说。今天给大家推荐一篇文章,来自倪朋飞老师的专栏《Linux性能优化实战》,文章主要讲的是优化性能的套路,这几乎是每个后端程序员...

SK海力士CXL优化解决方案已成功搭载于Linux:带宽提升30%,性能提升12%以上

SK海力士宣布,已将用于优化CXL(ComputeExpressLink)存储器运行的自研软件异构存储器软件开发套件(HMSDK)中主要功能成功搭载于全球最大的开源操作系统Linux上,不但提升了...

Linux内核优化:提升系统性能的秘诀

Linux内核优化:提升系统性能的艺术在深入Linux内核优化的世界之前,让我们先来理解一下内核优化的重要性。Linux内核是操作系统的核心,负责管理系统资源和控制硬件。一个经过精心优化的内核可以显著...

Linux系统性能优化:七个实战经验

Linux系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常出现网页无法打开、打开速...

腾讯面试:linux内存性能优化总结

【1】内存映射Linux内核给每个进程都提供了一个独立且连续的虚拟地址空间,以便进程可以方便地访问虚拟内存;虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长的处理器,地址空间的范围也不同...

Linux文件系统性能调优《参数优化详解》

由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较高,除...

Nginx 性能优化(吐血总结)

一、性能优化考虑点当我需要进行性能优化时,说明我们服务器无法满足日益增长的业务。性能优化是一个比较大的课题,需要从以下几个方面进行探讨当前系统结构瓶颈了解业务模式性能与安全1、当前系统结构瓶颈首先需要...

Linux问题分析与性能优化

排查顺序整体情况:top/htop/atop命令查看进程/线程、CPU、内存使用情况,CPU使用情况;dstat2查看CPU、磁盘IO、网络IO、换页、中断、切换,系统I/O状态;vmstat2查...

大神级产品:手机装 Linux 运行 Docker 如此简单

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:灵昱Termux作为一个强大的Android终端模拟器,能够运行多种Linux环境。然而,直接在Termux上运行Docker并不可行,需要...

新手必须掌握的Linux命令

Shell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是...

Linux 系统常用的 30 个系统环境变量全解析

在Linux系统中,环境变量起着至关重要的作用,它们犹如隐藏在系统背后的“魔法指令”,掌控着诸多程序的运行路径、配置信息等关键要素。尤其在shell脚本编写时,巧妙运用环境变量,能让脚本如虎...

取消回复欢迎 发表评论: