Oracle 21c 是一个创新版本,因此它可能不适合大多数生产系统。在将 Oracle 21c 用于任何真实的事情之前,请阅读此内容。
本文介绍了在 Oracle Linux 8 (OL8) 64 位上安装 Oracle Database 21c 64 位。本文基于具有最少 2G 交换和安全 Linux 设置为许可的服务器安装。可以在此处查看此类 Linux 安装的示例。
目录
下载软件
根据您的支持状态,从 OTN 或 MOS 下载 Oracle 软件。
主机文件
<IP-address> <fully-qualified-machine-name> <machine-name>
<完全限定机器名称> <机器名称>
例如。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.56.107 ol8-21.localdomain ol8-21
在“/etc/hostname”文件中设置正确的主机名。
ol8-21.localdomain
Oracle 安装先决条件
执行自动设置或手动设置以完成基本先决条件。所有安装都需要附加安装程序。
自动设置
在撰写本文时,oracle-database-preinstall-21c 包尚未发布,但 19c 包可替代它。
如果您计划使用“oracle-database-preinstall-19c”包来执行所有先决条件设置,请发出以下命令。
# dnf install -y oracle-database-preinstall-19c
也可能值得进行完整更新,但这严格来说并不是必需的。
# yum update -y
值得运行手动设置部分中列出的所有 DNF 命令。根据您选择的操作系统软件包组,可能还需要一些额外的软件包。
如果您使用的是 RHEL8 或 CentOS8,您可以从 OL8 存储库中获取 RPM 并安装它。它将从您的正常存储库中提取依赖项。
curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
yum -y localinstall oracle-database-preinstall-19c-1.0-2.el8.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
# Or
/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
oracle soft data unlimited
oracle hard data unlimited
以下软件包根据需要列出。如果有些没有安装,请不要担心。它不会阻止安装。
dnf install -y bc
dnf install -y binutils
dnf install -y compat-openssl10
dnf install -y elfutils-libelf
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libXrender
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y libnsl
dnf install -y libstdc++
dnf install -y libxcb
dnf install -y libibverbs
dnf install -y make
dnf install -y policycoreutils
dnf install -y policycoreutils-python-utils
dnf install -y smartmontools
dnf install -y sysstat
# Added by me.
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
取消注释您需要的额外组。
附加设置
(adsbygoogle = window.adsbygoogle || []).push({});
为“oracle”用户设置密码。
passwd oracle
通过编辑“/etc/selinux/config”文件将安全 Linux 设置为许可,确保 SELINUX 标志设置如下。
SELINUX=permissive
更改完成后,重新启动服务器或运行以下命令。
# setenforce 许可
如果你有Linux的防火墙启用,您将需要关闭或配置,如图所示这里。要禁用它,请执行以下操作。
# systemctl stop firewalld
# systemctl disable firewalld
如果您不使用 Oracle Linux 和 UEK,则需要手动禁用透明大页面。
创建将安装 Oracle 软件的目录。
mkdir -p /u01/app/oracle/product/21.0.0/dbhome_1
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
将挂载点直接放在根目录下而不将单独的磁盘安装到它们通常是一个坏主意。为简单起见,此处已完成,但对于实际安装,应为操作系统保留“/”存储。
除非您从控制台工作或使用 SSH 隧道,否则请以 root 身份登录并发出以下命令。
xhost +<machine-name>
脚本是使用cat命令创建的,所有“”字符都被转义了。如果要手动创建这些文件,而不是使用`cat`命令,请记住删除“”字符之前的“\”字符。
创建一个“脚本”目录。
mkdir /home/oracle/scripts
创建一个名为“setEnv.sh”的环境文件。“$”字符使用“\”进行转义。如果您不使用该cat命令创建文件,则需要删除转义字符。
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=ol8-21.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/21.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=<machine-name>:0.0; export DISPLAY
切换到该ORACLE_HOME目录,将软件直接解压缩到此路径中,然后通过在ORACLE_HOME目录中发出以下命令之一来启动 Oracle Universal Installer (OUI) 。交互模式将显示 GUI 安装程序屏幕以允许用户输入,而静默模式将安装软件而不显示任何屏幕,因为所有必需的选项都已在命令行中指定。
# Unzip software.
cd $ORACLE_HOME
unzip -oq /path/to/software/LINUX.X64_213000_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/21.0.0/dbhome_1/root.sh
您现在已准备好创建数据库,但如果您有权访问 Oracle 支持,最好先修补安装。
数据库创建
您可以使用数据库配置助手 (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
您可以在此处阅读有关静默数据库创建的更多信息。
安装后
编辑“/etc/oratab”文件,将每个实例的重启标志设置为“Y”。
cdb1:/u01/app/oracle/product/21.0.0/db\_1:Y
启用 Oracle Managed Files (OMF) 并确保 PDB 在实例启动时启动。
sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF
只读 Oracle 主目录
从 Oracle 21c 开始,只读 Oracle 主目录是默认设置。此功能在以下文章中进行了描述。
有关更多信息,请参阅:
- Oracle Database 21c:Linux 安装指南
- 在 Linux 上自动启动和关闭数据库
- Oracle 通用安装 (OUI) 静默安装
- 数据库配置助手 (DBCA):在静默模式下创建数据库
希望这可以帮助你。
文章来源:https://oracle-base.com/articles/21c/oracle-db-21c-installation-on-oracle-linux-8




