• 在Linux 9上安装Oracle19c步骤详解
  • 发布于 2个月前
  • 231 热度
    0 评论
  • Storm
  • 1 粉丝 50 篇博客
  •   
Oracle 数据库 19c 在 Oracle Linux 9 上受支持,但必须运行在 UEK7 且数据库补丁版本为 19.19 或更高。本文介绍在 64 位 Oracle Linux 9(OL9)上安装 64 位 Oracle 数据库 19c 的过程。本文基于服务器安装,要求至少 2G 交换空间且将安全 Linux 设置为宽松模式,可在此处查看此类 Linux 安装示例。

一、下载软件
根据支持状态从 OTN 或 MOS 下载 Oracle 软件。
1.OTN:Oracle 数据库 19c(19.3)软件(64 位)及所需补丁。
2.edelivery:Oracle 数据库 19c(19.3)软件(64 位)
二、hosts 文件
“/etc/hosts”文件必须包含服务器的完全限定名,格式如下:
<IP 地址> <完全限定主机名> <主机名>
例如:
# 堆代码 duidaima.com
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.56.107  ol9-19.localdomain  ol9-19
在“/etc/hostname”文件中设置正确的主机名,如“ol9-19.localdomain”。

三、Oracle 安装先决条件
可执行自动设置或手动设置来完成基本先决条件,所有安装都需要进行额外设置。
(一)自动设置
如果计划使用“oracle-database-preinstall-19c”软件包完成所有先决条件设置,执行以下命令:
# dnf install -y oracle-database-preinstall-19c
也可以进行全面更新,但这并非严格必需:
# dnf update -y
运行手动设置部分列出的所有 DNF 命令也是值得的。根据所选的操作系统软件包组,可能还需要一些额外的软件包。如果使用 RHEL9,可以从 OL9 存储库获取 RPM 并安装,它会从常规存储库拉取依赖项:
curl -o oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm
dnf -y localinstall oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm
(二)手动设置
如果未使用“oracle-database-preinstall-19c”软件包完成所有先决条件,则需手动执行以下设置任务:
在“/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
# 或者
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
在“/etc/security/limits.d/oracle-database-preinstall-19c.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
安装以下列出的必需软件包,部分软件包安装失败不影响安装:
dnf install -y bc
dnf install -y binutils
dnf install -y compat-openssl11
dnf install -y elfutils-libelf
dnf install -y fontconfig
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libasan
dnf install -y liblsan
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXrender
dnf install -y libXtst
dnf install -y libxcrypt-compat
dnf install -y libgcc
dnf install -y libibverbs
dnf install -y libnsl
dnf install -y librdmacm
dnf install -y libstdc++
dnf install -y libxcb
dnf install -y libvirt-libs
dnf install -y make
dnf install -y policycoreutils
dnf install -y policycoreutils-python-utils
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y glibc-headers
dnf install -y ipmiutil
dnf install -y libnsl2
dnf install -y libnsl2-devel
dnf install -y net-tools
dnf install -y nfs-utils 
# 自行添加
dnf install -y gcc
dnf install -y unixODBC
创建新组和用户:
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
如果需要额外的组,请取消注释。

(三)额外设置
设置“oracle”用户的密码:
passwd oracle
编辑“/etc/selinux/config”文件,将 SELINUX 标志设置为“permissive”,使安全 Linux 处于宽松模式,完成后重启服务器或执行以下命令:
# setenforce Permissive
如果启用了 Linux 防火墙,需要禁用或配置它,如下所示,禁用命令为:
# systemctl stop firewalld
# systemctl disable firewalld
如果未使用 Oracle Linux 和 UEK,需要手动禁用透明大页,具体可参考https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64#disabling-transparent-hugepages。
创建 Oracle 软件安装目录:
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
将挂载点直接放在根目录下且不挂载单独磁盘通常不是个好主意,这里为简化操作而这样做,但在实际安装中,“/”存储应保留给操作系统。
除非在控制台操作或使用 SSH 隧道,否则以 root 用户登录并执行以下命令:
xhost +<机器名>
使用“cat”命令创建脚本,所有“字符需转义。如果手动创建这些文件而非使用命令,记得删除”字符前的“\”。创建“scripts”目录:
mkdir /home/oracle/scripts
创建名为“setEnv.sh”的环境文件,“$”字符用“\”转义。如果不是用“cat”命令创建该文件,则需要删除转义字符:
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle 设置
export TMP=/tmp
export TMPDIR=\$TMP

export ORACLE_HOSTNAME=ol9-19.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.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
在“/home/oracle/.bash_profile”文件末尾添加对“setEnv.sh”文件的引用:
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
创建可在启动/关闭服务中调用的“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”后,应能以“oracle”用户运行以下脚本启动/停止数据库:
~/scripts/start_all.sh
~/scripts/stop_all.sh
可在此处查看如何创建 Linux 服务以自动启动/停止数据库。

四、安装
登录“oracle”用户,如果使用 X 模拟,则设置 DISPLAY 环境变量:
DISPLAY=<机器名>:0.0; export DISPLAY
切换到“ORACLE_HOME”目录,将软件直接解压到此路径,将补丁软件解压到备用路径,然后在“ORACLE_HOME”目录中执行以下命令之一启动 Oracle 通用安装程序(OUI)。交互模式将显示 GUI 安装屏幕以允许用户输入,而静默模式将在不显示任何屏幕的情况下安装软件,因为所有必需选项已在命令行中指定:
# 补丁名称和目录可能因补丁编号而异,请根据需要调整
export SOFTWARE_DIR=/u01/software
export OPATCH_FILE="p6880880_190000_Linux-x86-64.zip"
export PATCH_FILE="p35742413_190000_Linux-x86-64.zip"
export PATCH_TOP=${SOFTWARE_DIR}/35742413
export PATCH_PATH1=${PATCH_TOP}/35643107
export PATCH_PATH2=${PATCH_TOP}/35648110

# 解压软件
cd$ORACLE_HOME
unzip -oq ${SOFTWARE_DIR}/LINUX.X64_193000_db_home.zip
unzip -oq ${SOFTWARE_DIR}/${OPATCH_FILE}

cd${SOFTWARE_DIR}
unzip -oq ${SOFTWARE_DIR}/${PATCH_FILE}


# 模拟 Oracle Linux 8
# 在 19.21 DB RU + OJVM 组合情况下,不进行此操作安装会失败
cd$ORACLE_HOME
export CV_ASSUME_DISTID=OL8

# 交互模式
./runInstaller

# 静默模式,包括应用补丁
./runInstaller -ignorePrereq -waitforcompletion -silent                     \
    -applyRU ${PATCH_PATH1}                                                    \
    -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
按提示运行 root 脚本,以 root 用户执行以下脚本:
1. /u01/app/oraInventory/orainstRoot.sh
 2. /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
现在可以创建数据库,但如果有权访问 Oracle 支持,最好先对安装进行补丁更新。

五、补丁安装
要使安装受支持,需要达到 19.19 或更高的补丁级别。要获取补丁,需要有有效的 Oracle 支持 CSI,以便从 Oracle 支持下载。以下是在创建数据库之前,将 19.21 补丁应用于干净的独立安装(无 ASM)的示例。在软件安装过程中已经应用了主要的 RU,因此这里只需要修补 OJVM:
export SOFTWARE_DIR=/u01/software
export PATH=${ORACLE_HOME}/OPatch:${PATH}
export OPATCH_FILE="p6880880_190000_Linux-x86-64.zip"
export PATCH_FILE="p35742413_190000_Linux-x86-64.zip"
export PATCH_TOP=${SOFTWARE_DIR}/35742413
export PATCH_PATH1=${PATCH_TOP}/35643107
export PATCH_PATH2=${PATCH_TOP}/35648110

cd ${PATCH_PATH2}
opatch prereq CheckConflictAgainstOHWithDetail -ph./
opatch apply -silent
对于实际系统中的补丁,务必阅读补丁说明。

六、数据库创建
使用数据库配置助手(DBCA)创建数据库。交互模式将显示 GUI 屏幕以允许用户输入,而静默模式将在不显示任何屏幕的情况下创建数据库,因为所有必需选项已在命令行中指定:
# 启动监听器
lsnrctl start

# 交互模式
dbca

# 静默模式
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
七、安装后
编辑“/etc/oratab”文件,将每个实例的重启标志设置为“Y”:
cdb1:/u01/app/oracle/product/19.000/dbhome_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
希望这有所帮助。祝好,Tim...
用户评论