Установка Oracle Database 21c на Rocky Linux 8.5

Исходные данные:

Тип сервера: виртуальная машина
ОС: Rocky Linux 8.5
Язык: Eng (US)
ЦПУ: 4 CPU
ОЗУ: 6 GB RAM
IP-адрес: 192.168.0.102
Gateway: 192.168.0.254

Админ: root
Пользователь: oracle
БД: MYORACLEBASE

Использованные инструкции:

https://docs.oracle.com/en/database/oracle/oracle-database/21/install-and-upgrade.html
https://oracle-base.com/articles/21c/oracle-db-21c-installation-on-oracle-linux-8
https://unixcop.com/how-to-install-oracle-database-21c-on-centos-8

Предварительная подготовка

Входим как root:

ssh root@192.168.0.102

Подключаем репозиторий epel:

yum install epel-release

Ставим mc:

yum install mc

Обновляем пакеты:

yum update -y

Устанавливаем пререквизиты для Oracle Database 21c:

dnf install -y oracle-database-preinstall-21c

Если пререквизиты не устанавливаются, скачиваем их:

curl -o oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/ oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

Находим скачанный пакет находим в каталоге /root:

cd /root

ll

Перемещаем пакет в каталог /soft:

mv oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm /soft/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

Переходим в каталог /soft:

cd /soft

Устанавливаем пакет:

yum -y localinstall oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm

Если не использовали пакет oracle-database-preinstall-21c для выполнения всех необходимых условий, вручную делаем следующие настройки.

Добавляем строки в файл /etc/sysctl.conf или в файл с именем /etc/sysctl.d/98-oracle.conf:

mcedit /etc/sysctl.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-21c.conf:

mcedit /etc/security/limits.d/oracle-database-preinstall-21c.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

Следующие пакеты обязательные. Не волнуемся, если некоторые из них не установятся. Это не помешает установке Oracle DB.

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

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

Устанавливаем SELINUX в разрешающий режим, отредактировав файл /etc/selinux/config и убедившись, что параметр SELINUX установлен следующим образом:

mcedit /etc/selinux/config

SELINUX=permissive

Как только изменение будет завершено, перезагружаем сервер или выполняем следующую команду:

setenforce Permissive

Если у нас включен брандмауэр Linux, нам нужно будет отключить или настроить его соответствующим образом. Для проверки статуса, остановки и отключения вводим команды:

systemctl status firewalld

systemctl stop firewalld

systemctl disable firewalld

Создаём каталоги, в которых будет установлено программное обеспечение Oracle DB:

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

Создаём каталог скриптов:

mkdir /home/oracle/scripts

Создаём файл среды под названием setEnv.sh. Символы «$» экранируются с помощью «\». Если мы не создаём файл с помощью команды cat, нам нужно будет удалить escape-символы

mcedit /home/oracle/scripts/setEnv.sh

export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=resf
export ORACLE_UNQNAME=MYORACLEBASE
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=MYORACLEBASE
export PDB_NAME=MYPDB
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

Добавляем ссылку на setEnv.sh файл в конце файла /home/oracle/.bash_profile:

echo «. /home/oracle/scripts/setEnv.sh» >> /home/oracle/.bash_profile

Создаём скрипты start_all.sh и stop_all.sh, которе можно вызвать из службы запуска/выключения. Убеждаемся, что права и разрешения указаны верно:

mcedit /home/oracle/scripts/start_all.sh

. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME

mcedit /home/oracle/scripts/stop_all.sh

. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME

Задаём права на каталоги со скриптами:

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

Устанавливаем графический интерфейс X Window System:

yum update

yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel

yum groupinstall -y «Development Tools»

Затем непосредственно установка:

yum groupinstall -y «X Window System»

Далее переходим, наконец, к установке Oracle DB 21c.

Установка Oracle DB 21c

Входим в систему под пользователем oracle:

ssh oracle@192.168.0.102

Перемещаемся в каталог для установки Oracle DB:

cd /u01/app/oracle/product/21.0.0/dbhome_1

Скачиваем архив LINUX.X64_213000_db_home.zip с сайта Oracle:

https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html

Копируем его в каталог /u01/app/oracle/product/21.0.0/dbhome_1.

Распаковываем архив:

unzip LINUX.X64_213000_db_home.zip

Запускаем установку Oracle DB 21c в интерактивном режиме:

./runInstaller

Откроется графическое окно установки Oracle DB 21c.

Выбираем создать и сконфигурировать одиночный инстанс:

Отмечаем серверный вариант установки:

Выбираем Enterprise Edition:

Подтверждаем пути установки:

Задаём тип конфигурирования:

Задаём глобальное имя базы и имя экземпляра (SID):

Выделяем допустимый размер потребления оперативной памяти:

Указываем хранилище:

Пропускаем специальные опции и опции восстановления (если они не требуются):

Задаём пароли системным учётным записям:

Настраиваем привилегии системным группам:

Указываем запуск скриптов из-под root’а:

Запускаем установку:

Если не согласиться в предыдущем пунктае с запуском скриптов из-под root’а, то при появлении соответствующего запроса при установке выполняем следующие сценарии от имени root’а из SSH-консоли:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/21.0.0/dbhome_1/root.sh

Либо соглашаемся на отработку скриптов от имени root’а в графическом режиме:

Дожидаемся успешного завершения установки СУБД:

Создание и конфигурирование базы данных

База данных создаётся и настраивается с помощью помощника по настройке базы данных (DBCA). В интерактивном режиме отображаются окна графического интерфейса, позволяющие вводить данные пользователем, в то время как беззвучный режим создаст базу данных без отображения каких-либо экранов, так как все необходимые параметры уже указаны в командной строке.

Из-под учётной записи oracle вводим в SSH-консоли:

dbca

Запустится графический интерфейс.

Выбираем настройку существующей БД:

Отмечаем нашу БД и вводим учётные данные системного пользователя СУБД:

Конфигурируем по необходимости:

После установки редактируем файл /etc/oratab, установив флаг перезапуска для каждого экземпляра на Y:

mcedit /etc/oratab

MYORACLEDB:/u01/app/oracle/product/21.0.0/dbhome_1:Y

Включаем Oracle Managed Files (OMF) и убеждаемся, что PDB запускается при старте экземпляра:

sqlplus / as sysdba

SQL > startup

Если получаем ошибку типа:

ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/u01/app/oracle/dbs/initMYORACLEDB.ora’

то проверяем содержимое каталога /u01/app/oracle/dbs:

cd /u01/app/oracle/dbs

ll

Там должен находиться одноимённый нашей БД файл initMYORACLEDB.ora. Если наименование файла отличается от нашей БД (например, имеет вид initMYORACLEBASE.ora), то переименовываем его в initMYORACLEDB.ora.

После этого вновь пробуем запустить БД:

sqlplus / as sysdba

SQL > startup

В случае успеха получаем вывод с сообщением о запуске БД:

ORACLE instance started

База данных создана и запущена.

Rindel
13-16.02.2022