Исходные данные:
Тип сервера: виртуальная машина
ОС: 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
