在Oracle Linux 8(OL8 )上,安装oracle数据库19c

・12 分钟阅读

本文介绍了在64位Oracle Linux 8(OL8)上安装64位Oracle Database 19c的过程。

软件下载

根据你的支持状态从OTN或MOS下载Oracle软件。

OTN:Oracle Database 19c (19.3)(位)edelivery:Oracle Database 19c (19.3)软件(位)

主机文件

"/etc/hosts"文件必须包含服务器的主机名。


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

例如。


127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.56.107 ol8-19.localdomain ol8-19

在"/etc/hostname"文件中设置正确的主机名。

 
ol8-19.localdomain

Oracle安装先决条件

自动设置不适用于Oracle Linux 8,因此请执行"手动设置"和"附加设置"。

如果使用RHEL8或CentOS8,可以从OL7存储库获取PRM并安装它,它将从你的正常存储库中提取依赖。


# yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

手动设置

将以下行添加到"/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"file的文件中。


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-libcap1
dnf install -y compat-libstdc++-33
#dnf install -y dtrace-modules
#dnf install -y dtrace-modules-headers
#dnf install -y dtrace-modules-provider-headers
#dnf install -y dtrace-utils
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
#dnf install -y libdtrace-ctf-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y librdmacm-devel
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y net-tools # Clusterware
dnf install -y nfs-utils # ACFS
dnf install -y python # ACFS
dnf install -y python-configshell # ACFS
dnf install -y python-rtslib # ACFS
dnf install -y python-six # ACFS
dnf install -y targetcli # ACFS
dnf install -y smartmontools
dnf install -y sysstat

# Added by me.
dnf install -y unixODBC

# New for OL8
dnf install -y libnsl
dnf install -y libnsl.i686
dnf install -y libnsl2
dnf install -y libnsl2.i686

创建新组和用户。


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"文件将secure Linux设置为permissive,确保SELINUX标志按如下方式设置。

 
SELINUX=permissive

更改完成后,重新启动服务器或运行以下命令。


# setenforce Permissive

如果启用了Linux firewall,你需要禁用或配置它,如下所示这里,要禁用它,请执行以下操作。


# systemctl stop firewalld
# systemctl disable firewalld

如果不使用Oracle Linux和UEK,则需要手动禁用transparent huge pages

创建安装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 +<machine-name>

脚本使用cat命令创建,所有"$"字符都已转义,cat命令,记住在"" 字符之前删除"$"字符。

创建一个" scripts "目录。


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-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

在"setEnv.sh"文件的末尾添加对"/home/oracle/.bash_profile"文件的引用。


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


创建可从startup >shutdown服务调用的"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

安装

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


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

切换到ORACLE_HOME目录,直接将软件解压缩到此路径,并通过在Oracle Universal安装程序中发出以下命令启动(OUI),ORACLE_HOME交互模式将显示GUI安装程序屏幕以允许用户输入,而静默模式将安装软件而不显示屏幕,因为所有必需的选项都已在命令行上指定。


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

# Fake Oracle Linux 7.
export CV_ASSUME_DISTID=OEL7.6

# 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

出现提示时运行root脚本。


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

现在可以创建数据库了。

数据库创建

使用数据库配置助手(数据库)创建数据库,


# 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 
 -automaticMemoryManagement false 
 -totalMemory 2000 
 -storageType FS 
 -datafileDestination "${DATA_DIR}" 
 -redoLogFileSize 50 
 -emConfiguration NONE 
 -ignorePreReqs

安装后

编辑"/etc/oratab"文件将每个实例的restart标志设置为'Y'。


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

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


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

白洞 profile image